appium并发测试

上一篇 / 下一篇  2018-03-18 00:02:48 / 个人分类:自动化测试

想同时启动多个appium并行运行,很多资料都显示用selenium grid 的方式。

1、selenium grid的组成与作用:由一个集线器hub和多个客户机node组成,如果你的程序需要在不用的浏览器,不同的操作系统测试而且比较多的case需要多线程远程执行,那么一个比较好的测试方案就是使用 selenium grid,hub用来管理各个代理节点的注册和状态信息,并且接受远程客户端代码的请求调用,然后把请求的命令再转发给代理节点来执行

二、准备工作:hub集线器上、node节点上上安装jdk,selenium-server-standalone-xxx.jar
作为webdriver或者node启动
三、启动hub节点(在你使用的hub集线器机器上执行命令):java -jar selenium-server-standalone-2.53.0.jar -role hub (hub启动命令可做成bat文件,方便维护与使用)
我的:java -jar C:\tools\selenium-server-standalone-3.7.0.jar -role hub -port 4444
-role:hub
启动一个hub服务,等待webdriver客户端进行注册和请求。默认启动端口是4444,默认接收注册的地址为:http://localhost:4444/grid/registe
其默认监听端口4444,默认IP是localhost  如果要修改,只需要加-port 参数和-Hubhost例如:java -jar selenium-server-standalone-2.53.0.jar -role hub -port 1234 -Hubhost 192.168.1.30

四、启动node节点(在你使用的node节点机器上执行命令,也可以在hub集线器机器上执行,即把hub集线器当成node节点):java -jar selenium-server-standalone-2.53.0.jar -role node -hub http://hub集线器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(这里指定了要启动的浏览器和对应的浏览器驱动,node启动命令可做成bat文件,方便维护与使用)

其默认监听端口5555,如果要修改,只需要加-port 参数

例如:java -jar selenium-server-standalone-2.53.0.jar -role node -port 6666 -hub http://hub集线器的ip:4444/grid/register -Dwebdriver.chrome.driver=chromedriver.exe  -browser browserName=chrome(这里指定了要启动的浏览器和对应的浏览器驱动)

node节点的启动参数也可以做成json文件,hub配置文件,json文件内容如下(文件名随意取,我这里的文件名为:node.json):

设置不同的端口appium json文件信息

{

  "capabilities": [                              //设置代理节点的注册信息

    {

      "version": "6.0",                       //设备版本号

      "maxInstances": 3,                 //一个代理节点可以同时启动的浏览器最大数量,即session数量

      "platform": "ANDROID",           //安卓系统

      "browserName": "chrome"       //浏览器名称 

    }

  ],

  "configuration": {

      "cleanUpCycle": 2000,             //代理节点检查超时的周期

      "timeout": 300000,               

      "browserTimeout": 60000,       //浏览器无响应的超时时间

      "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",    //默认指向org.openqa.grid.selenium.proxy.DefaultRemoteProxy;用于代表节点的代理

      "url": "http://127.0.0.1/wd/hub",    //显示指定appium server监听的端口             

      "host":"127.0.0.1",

      "maxSession": 6,                       //一个代理节点可以同时启动的浏览器最大数量,即session数量

      "register": true,

      "registerCycle": 5000,               //代理节点自动重新注册的周期,单位毫秒;适应于重启了hub时不需要重启所有的代理节点。

      "hub":"192.168.168.143:4444/grid/register",   //url_to_hub值为hub启动的注册地址,默认为ttp://ip_for_hub:4444/grid/register;具体的根据你启动hub时的参数所对应。

      "hubPort": 4444,                             //指定hub机的监听端口

      "hubHost": "192.168.168.143"        //指定hub机的ip或者host值 

    }

}

在浏览器输入http://192.168.168.143:4444/grid/console就能看到你连接了多少个设备


四、启动appium服务:appium -a %1 -p %2 -bp %3 -U %4 --nodeconfig %5 --log-timestamp --local-timezone

-a --address 监听的 ip 地址

-p --port       监听的端口

-bp--bootstrap-port   (Android-only) 连接设备的端口号

-U --udid  连接物理设备的唯一设备标识符

--nodeconfig 指定 JSON 格式的配置文件 ,用来在 selenium grid 里注册 appiumd

--log-timestamp 在终端输出里显示时间戳

--local-timezone 使用本地时间戳

定位:uiautomatorviewer.bat


TAG:

 

评分:0

我来说两句

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 3820
  • 日志数: 16
  • 建立时间: 2017-08-23
  • 更新时间: 2018-04-10

RSS订阅

Open Toolbar