参考链接
http://appium.io/docs/en/advanced-concepts/grid/
STF
- 手机综合控制
- 实时交互
- 状态维护
- 远程调试
STF API
Selenium Grid
- selenium grid for appium
- 启动
- 启动hub 结点
java -jar selenium-server-standalone-3.141.59.jar -role hub
20:56:50.418 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
20:56:50.509 INFO [GridLauncherV3.lambda$buildLaunchers$5] - Launching Selenium Grid hub on port 4444
2020-07-11 20:56:50.898:INFO::main: Logging initialized @749ms to org.seleniumhq.jetty9.util.log.StdErrLog
20:56:51.048 INFO [Hub.start] - Selenium Grid hub is up and running
20:56:51.049 INFO [Hub.start] - Nodes should register to http://192.168.56.1:4444/grid/register/
20:56:51.049 INFO [Hub.start] - Clients should connect to http://192.168.56.1:4444/wd/hub
- 启动node 结点:
appium -p 4723 --nodeconfig /Users/juanxu/Documents/霍格沃兹培训/01ceshiren实战项目/HogwartsLG2/test_appium/sdnodes/node1.json
- node结果json 配置文件:
{
"capabilities":
[
{
"browserName": "<e.g._iPhone5_or_iPad4>",
"version":"6.0",
"maxInstances": 1,
"platform":"ANDROID"
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://127.0.0.1:4723/wd/hub", # appium server 所在服务的IP地址和端口
"host": "127.0.0.1",
"port": 4723,
"maxSession": 1,
"register": true,
"registerCycle": 5000,
"hubPort": 4444, # hub 的port
"hubHost": "192.168.56.1", # hub所在服务器的IP地址
"hubProtocol": "http" # hub的协议
}
}
- 脚本端
需要指定 udid 和 hub服务的地址
desired_caps['udid'] = 'emulator-5554'
....
省略
...
self.driver = webdriver.Remote("http://192.168.56.1:4444/wd/hub", desired_caps)
课上的问题解决:
上面配置没有问题,关键在于nodejs版本的问题。跑appium 要使用最新的nodejs版本。STF需要nodejs V8的版本。
课上切换nodejs 使用命令,可以将node版本切换到12上,
nvm use 12
这个切换方式只是临时切换,换个窗口执行nvm list
命令,还是在8这个版本上,要想全局切换,需要将默认的版本改为12,使用如下命令:
nvm alias default v12.18.2
再多开个窗口输入nvm list
,验证 nodejs切换到12版本上。