我想使用Appium在多个iOS设备上并行运行我的自动化脚本。我可以在Android系统上执行这个并行测试,但不能在iOS上。
我们有没有办法在iOS上执行此操作。
我使用的工具有:SeleniumGrid、Appium和TestNG框架。
下面的代码应该可以跨android和ios运行。但是appium服务器应该在MAC上运行。
//Have your setup(Eclipse,Android SDK, ioswebkit proxy, Appium) installed in MAC for instance 10.10
//create an instance with your thread to generalize for both android and ios
public LaunchAppiumServer(){
public synchronized void startiOSWebKitProxy(String UDID,String debugProxy,String platform){
if(Settings.getProperty("testbed").equals("localbrowser") && !Settings.getProperty("LOCAL_SETTINGS").contains("Emulator")){
if(platform.equals("ios")){
//Webkit Proxy command
CommandLine iOSProxyCommand = new CommandLine("ios_webkit_debug_proxy");
iOSProxyCommand.addArgument("-c");
iOSProxyCommand.addArgument(UDID+":"+debugProxy);
iOSProxyCommand.addArgument("-F");
DefaultExecuteResultHandler iOSProxyresultHandler = new DefaultExecuteResultHandler();
DefaultExecutor iOSProxyexecutor = new DefaultExecutor();
iOSProxyexecutor.setExitValue(1);
try {
iOSProxyexecutor.execute(iOSProxyCommand, iOSProxyresultHandler);
Thread.sleep(5000);
System.out.println("iOS Proxy started in :"+ deviceName);
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public synchronized void startAppiumServer(String UDID,String port,String platform,String debugProxy) throws Exception{
CommandLine command = new CommandLine("appium");
command.addArgument("--udid");
command.addArgument(UDID);
command.addArgument("--address", false);
command.addArgument("127.0.0.1");
command.addArgument("--port", false);
command.addArgument(port);
command.addArgument("--webkit-debug-proxy-port");
command.addArgument(debugProxy);
command.addArgument("--tmp");
command.addArgument("/tmp/appium-"+port);
command.addArgument("--full-reset", true);
command.addArgument("--log-level", false);
command.addArgument("error");
command.addArgument("--log", false);
Timestamp currentTimestamp = new java.sql.Timestamp(Calendar.getInstance().getTime().getTime());
command.addArgument("/Users/sethu/Documents/appiumLogs/appium"+currentTimestamp.toString().replace(" ", "")+".log");
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
executor.setExitValue(1);
try {
executor.execute(command, resultHandler);
} catch (IOException e) {
System.out.println("Unable to Launch Appium Server: ");
e.printStackTrace();
} catch (InterruptedException e) {
System.out.println("Unable to Launch Appium Server: ");
e.printStackTrace();
}
}
}
是的,可以使用Selenium网格。但您必须知道,苹果有一个限制,即只有一台iOS设备可以连接到一台MAC设备。因此,例如,如果您有3个iOS设备,每个设备都连接到单独的MAC,则必须在每个MAC上为特定设备启动appium节点,并将其链接到中心Selenium网格实例。在那之后,只需启动测试,就像在Android的情况下一样。
目标:因为我是新来Appium的。我正在尝试在Ubuntu上使用Appium网格在多个android设备上并行自动化Appium测试 我成功启动了一个网格中心服务器和两个具有不同端口的节点 问题:无法同时在两台设备上运行测试用例(我确信问题出在我如何设计框架上)。我不知道如何传递两个设备的能力,同时启动设备(主要问题)。我必须为此使用多线程吗?如果是,那么如何使用 实际:当我在同一个设备上运行多个
嗨,我想在appium上使用ios模拟器并行运行ios测试用例。我知道MAC会有限制,因为只有一个模拟器会启动,但有没有后门入口可以让它们并行运行,我不想使用网格,因为有一些原因,所以有没有办法在ios模拟器上并行运行ios测试用例。 如果我一次运行两个不同端口和地址的appium服务器,只有一个ios模拟器会启动,因为它会关闭另一个。 我使用的是1.6.4 appium服务器和Xcode 8。
我是Appium的新手,尝试使用Appium和Selenium(Java)并行运行2台android设备,但只有1台设备在运行我的测试脚本。下面是我的测试脚本(junit),我很难尝试解决这个问题。我没有同时使用任何网格或云网格(SauceLabs/BrowserStack),因为我现在想在本地监视它。 我不是很确定我需要在这里补充什么细节,但我很乐意回答任何问题和建议,将非常感谢。 提前谢谢!!
我正在使用Jenkins CI构建我的iOS项目。对于这个任务,我使用sh脚本通过运行xcodebuild直接从git repo构建二进制文件,这很好。目前,我使用eclipse中的appium运行JUnit测试来测试我的应用程序,但我也想将它们集成到Jenkins中。我找到了一些使用ant脚本将JUnit测试集成到jenkins中的教程,但我没有使用ant来构建我的项目。没有ant脚本,我如何将
我想使用appium在特定的xpath上执行向左滑动。不管怎样,我能做到吗?
我使用的是Appium Version1.9.1和基于Appium Java TestNG的框架构建,但是当我在真实设备上的AWS设备场上执行I时,我会得到以下错误: WebDriverException:处理命令时发生未知的服务器端错误。原始错误:未处理的endpoint:/session/bc6e4901-43a6-4c66-913a-ebaf8482dd4b/wda/screen-http: