Selenium 应用程序-并行执行(网格)

Selenium 应用程序-并行执行(网格),selenium,parallel-processing,appium,Selenium,Parallel Processing,Appium,有没有办法像selenium网格一样在appium中运行并行测试? 如何在appium中设置不同的节点?使用TestNg可以做到这一点,也可以使用多线程实现 在selenium网格中,需要运行一个集线器和不同的节点,但在这种情况下,您可以在不同的-2端口中运行多个Appium服务器这可以使用TestNg实现,也可以使用多线程实现 在selenium Grid中,需要运行一个集线器和不同的节点,但在本例中,您在不同的2端口运行多个Appium服务器,问题在于Appium仅使用iosSimulato

有没有办法像selenium网格一样在appium中运行并行测试?
如何在appium中设置不同的节点?

使用TestNg可以做到这一点,也可以使用多线程实现


在selenium网格中,需要运行一个集线器和不同的节点,但在这种情况下,您可以在不同的-2端口中运行多个Appium服务器

这可以使用TestNg实现,也可以使用多线程实现


在selenium Grid中,需要运行一个集线器和不同的节点,但在本例中,您在不同的2端口运行多个Appium服务器,问题在于Appium仅使用iosSimulator或Genymotion VM,而不是真正设计为在一台机器上并行运行。但是,您可以使用自己的appium运行实例设置多个VM(我觉得这会很慢,但理论上是一个选项),或者使用BrowserStack、Sauce Labs或类似的工具,以便同时运行多个测试。

问题是appium只使用iosSimulator或Genymotion VM,并不是设计用来在一台机器上并行运行的。但是,您可以使用自己的appium运行实例设置多个VM(我觉得这会很慢,但理论上是一个选项),或者使用BrowserStack、Sauce Labs或类似的工具一次运行多个测试。

是的,我们可以像使用网格概念的Selenium一样实现并行执行

您需要通过在ur json文件中放置以下内容来启动节点

    { "capabilities": 
    [ 
    { "browserName": "<e.g._iPhone5_or_iPad4>",
     "version":"<version_of_iOS_e.g._7.1>",
     "maxInstances": 1, 
     "platform":"<platform_e.g._MAC_or_ANDROID>" 
    } 
    ],
     "configuration":
     { 
    "cleanUpCycle":2000, 
    "timeout":30000, 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "url":"http://<host_name_appium_server_or_ip-address_appium_server>:<appium_port>/wd/hub",
   "host": <host_name_appium_server_or_ip-address_appium_server>,
   "port": <appium_port>,
   "maxSession": 1,
   "register": true, 
  "registerCycle": 5000,
  "hubPort": <grid_port>,
  "hubHost": "<Grid_host_name_or_grid_ip-address>"
     } }
{“能力”:
[ 
{“浏览器名称”:“”,
“版本”:“,
“最大实例”:1,
“平台”:”
} 
],
“配置”:
{ 
“清洁周期”:2000年,
“超时”:30000,
“代理”:“org.openqa.grid.selenium.proxy.DefaultRemoteProxy”,

“url”:“http://:

是的,我们可以像使用网格概念的Selenium一样实现并行执行

您需要通过在ur json文件中放置以下内容来启动节点

    { "capabilities": 
    [ 
    { "browserName": "<e.g._iPhone5_or_iPad4>",
     "version":"<version_of_iOS_e.g._7.1>",
     "maxInstances": 1, 
     "platform":"<platform_e.g._MAC_or_ANDROID>" 
    } 
    ],
     "configuration":
     { 
    "cleanUpCycle":2000, 
    "timeout":30000, 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "url":"http://<host_name_appium_server_or_ip-address_appium_server>:<appium_port>/wd/hub",
   "host": <host_name_appium_server_or_ip-address_appium_server>,
   "port": <appium_port>,
   "maxSession": 1,
   "register": true, 
  "registerCycle": 5000,
  "hubPort": <grid_port>,
  "hubHost": "<Grid_host_name_or_grid_ip-address>"
     } }
{“能力”:
[ 
{“浏览器名称”:“”,
“版本”:“,
“最大实例”:1,
“平台”:”
} 
],
“配置”:
{ 
“清洁周期”:2000年,
“超时”:30000,
“代理”:“org.openqa.grid.selenium.proxy.DefaultRemoteProxy”,
“url”:“http://:

您可以参考此

至于在网格中运行Appium,请按照以下步骤操作

Step1: add the Appium in Environment Vairable 
Step2: Run the Grid for Hub  
Step3: Run the Appium through command prompt using the selective commands 
Step4: Run you java code through Maven command 'mvn'
你可以参考这个

至于在网格中运行Appium,请按照以下步骤操作

Step1: add the Appium in Environment Vairable 
Step2: Run the Grid for Hub  
Step3: Run the Appium through command prompt using the selective commands 
Step4: Run you java code through Maven command 'mvn'

为了通过Appium实现并行测试,我使用了Selenium网格和TestNG以及Appium

步骤:

  • 启动Selenium服务器。(这将是Selenium网格的中心)
  • 在默认端口上启动Appium服务器(这将是Appium网格配置的中心)
  • 现在,在不同的端口上,使用TestNG.xml/Properties文件中定义的匹配功能初始化节点(Node1、Node2)。(两个节点配置必须在单独的json.cfg文件中定义)
  • 在testNG.xml中添加一个参数parallel=“tests”

  • 确保连接了具有匹配功能的设备/模拟器。

    为了通过Appium实现并行测试,我使用了Selenium Grid和TestNG以及Appium

    步骤:

  • 启动Selenium服务器。(这将是Selenium网格的中心)
  • 在默认端口上启动Appium服务器(这将是Appium网格配置的中心)
  • 现在,在不同的端口上,使用TestNG.xml/Properties文件中定义的匹配功能初始化节点(Node1、Node2)。(两个节点配置必须在单独的json.cfg文件中定义)
  • 在testNG.xml中添加一个参数parallel=“tests”

  • 确保连接了具有匹配功能的设备/模拟器。

    以下命令可用于启动多个Appium服务器

    appium -p 10000 # server 1
    appium -p 10001 # server 2
    

    以下命令可用于启动多个Appium服务器

    appium -p 10000 # server 1
    appium -p 10001 # server 2
    

    这是我在上一家公司使用的方法…使用在不同端口上运行的多个Appium服务器,并将其与SeleniumGrid结合。这在Android上是可能的(使用Linux或类似Unix的机器运行Appium服务器).但仍然无法使用iOS,因为iOS在使用真实设备或模拟器运行自动化测试时只使用一个实例工具。这是我在上一家公司使用的方法…使用在不同端口上运行的多个Appium服务器,并将其与SeleniumGrid相结合。这在Android上是可能的(使用运行appium服务器的Linux或类似Unix的机器)。但仍然无法使用iOS,因为在使用真实设备或模拟器运行自动化测试时,iOS仅使用一个实例工具。我将Appium与Genymotion一起使用,并并行运行两个模拟器。设置非常简单,而且运行多个虚拟机不应影响Appium功能,可能会减慢系统速度。此外,我还将与Genymotion相比,浏览器堆栈速度非常慢。我将Appium与Genymotion一起使用,并并行运行两个模拟器。设置非常简单,而且运行多个VM不会影响Appium功能,可能会降低系统速度。此外,sauce labs和浏览器堆栈与Genymotion相比速度非常慢。您使用junit还是junittestng或cucumber并行执行测试?您是否使用junit或testng或cucumber并行执行测试?