App、Web自动化测试平台实战(二)

参考链接

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版本上。