Linux下的Jenkins作为hub,Windows作为node节点,在Android手机上执行自动化脚本
2019-11-21 09:50 在奋斗的菜鸟 阅读(675) 评论(0) 收藏 举报1、在Linux上放selenium-server-standalone-2.53.0.jar,在jar包目录下执行命令java -jar selenium-server-standalone-2.53.0.jar -role hub,启动hub,提示Nodes should register to http://192.168.8.184:4444/grid/register/,Selenium Grid hub is up and running

浏览器打开http://192.168.8.184:4444/grid/console,页面打开成功
2、注册node节点
1)写Honor8_DevicesNode.json文件:
{
  "capabilities": [
    {
      "deviceName": "GSL0217302005195",//设备UID
      "version": "8.0.0",//设备版本号
      "maxInstances": 3,
      "platform": "ANDROID",//Android设备
      "browserName": "chrome"
    }
  ],
  "configuration":
  {
    "cleanUpCycle":"2000",
    "timeout":"30000",
    "proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
    "url":"http://192.168.27.209:4723/wd/hub",////appiumserver地址,即node地址
    "host":"192.168.27.209",
    "port":"4723",
    "maxSession":"1",
    "register":true,
    "registerCycle":"5000",
    "hubPort":"4444",	//grid hub的端口号
    "hubHost":"192.168.8.184"// grid hub的IP
  }
}
2)在Windows服务器上放selenium-server-standalone-2.53.0.jar,进入jar包目录,通过cmd命令注册node节点,并启动appium server:appium -a 192.168.27.209 -p 4723 -bp 4724 --session-override --nodeconfig D:\Honor8_DevicesNode.json,Linux hub 日志提示:Registered a node http://192.168.27.209:4723,node注册成功
浏览器打开grid,提示注册成功
  
3、开始执行测试脚本,
附:方案历程
1)原先在Windows下执行用的脚本是用adb命令安装的,

在Windows下执行命令是:cmd.exe /c adb install -r D:\workspace\NVR-Rental-APP-Test\apps\rent_test_v1.5.0.apk
但是,在Linux下执行时,如下图,会自动获取工程所在的目录,也就是Linux的目录,导致安装失败(相当于Linux的安装包,通过Windows node 要在手机上装APP,肯定不行)
  
2)想到了远程安装,在Jenkins里写cmd批处理命令:
java wmic /node:192.168.27.209 /user:Administrator /ptassword:zj12345 process call create "cmd.exe /c adb install -r D:\apps\rent_test_v1.5.0.apk"
通过Jenkins远程安装成功,但是build 成功后,Jenkins切换不回Linux,还是用cmd命令,还是行不通

3)还是用DesiredCapabilities capabilities安装APP
先看这样写的效果,也是获取的Linux的工程目录,所以也安装不了

4)改下脚本,把APP的路径改成Windows系统
 fan
最终,把APP 放到Windows下,可以成功安装APP
在调试过程中,尝试通过Jenkins自动构建执行远程命令,把Windows node注册到Linux hub上,但是尝试失败了;也想通过Jenkins的node插件,自动注册Windows node节点,后来查了下,Linux作为节点时,可以实现指定注册node,但是Windows必须是node主动注册到hub上,所以目前是手动注册Windows node 到Linux hub上
                    
                
                
            
        
浙公网安备 33010602011771号