Linux下的Jenkins作为hub,Windows作为node节点,在Android手机上执行自动化脚本

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:workspaceNVR-Rental-APP-Testapps ent_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 ent_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上

  

原文地址:https://www.cnblogs.com/cainiaotest/p/11903734.html