多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试-appium多机并行测试

更新时间:2021-10-08 02:52:52 作者:admin 浏览:572

接口自动化测试-appium多机并行测试

  多机测试的思路

  启动多个appium server与多台机器交互(android和ios均可)

  注意:一定要使用node安装appium的命令行,使用appium命令启动多个服务

  启动命令时指定server端口号,以及与客户端交互的各项端口号

  以下命令都是后台启动的,使用的mac的后台启动方式[ nohup 命令 &],如果是windows机使用[start /b 命令]

接口自动化测试-appium多机并行测试

  Android多机的server启动命令

  startservercmd = "nohup appium --session-override -a " + address + " -p " +Appium_port +" -bp "+bootstrap_port

  +" --selendroid-port "+selendroid_port+" --chromedriver-port " +chromedriver_port+" -U "+deviceid+" "+" --no-reset &"

  各项说明:

  address:启动server的地址,如果不指定为0.0.0.0

  Appium_port:启动的server的端口号,默认4723

  bootstrap_port:与高版本(4.2及以上)android机交互的端口号,默认3724

  selendroid_port:与低版本(4.2以下)android机交互的端口号,默认8080

  chromedriver_port:与chrome浏览器交互的端口号,默认9516

  deviceid:设备的id(adb devices查看)

  注意:android多机启动server一定要指定-U参数,否则在windows上运行时会抛错

  iOS多机的server启动命令

  startservercmd = "start /b appium --session-override -a " + address + " -p " + Appium_port+" --webdriveragent-port “+webdriveragent_port

  各项说明:

  address:启动server的地址,如果不指定为0.0.0.0

  Appium_port:启动的server的端口号

  webdriveragent_port:与iOS客户端交互的webdriveragent的端口号,默认8010

  多进程启动server命令,客户端进行连接

  通过多进程进行多机测试

  定义一个递增增量,每个进程都在基础端口号上增加这个递增增量,保证每个server的端口号不会冲突

  下面为多进程的代码,devices为连接的手机的deviceid列表,testsuit()为要执行的case入口

  if __name__ == "__main__":

  if devices == []:

  log().log("先插入手机再进行测试谢谢!当前需要的手机系统:"+optionsystem)

  sys.exit()

  if len(devices) == 1:

  testsuit()

  else:

  from multiprocessing import Process

  port_d=1#各个端口号的差值

  for deviceid in devices:

  t=Process(target=testsuit, args=(port_d,))

  t.start()

  port_d =port_d+1

  说明:port_d就是上面上的定增增量,通过这个变量我们可以加到基础端口号上(基础端口号自己写到一个公共变量里就好,比如appium server用4723)

  启动了服务器,就可以通过不同的appium server端口号连接到服务器了

  webdriver.Remote('http://127.0.0.1:'+appiumport+'/wd/hub', desired_caps)

  以上是关于appium多机并行测试的介绍,由多测师亲自撰写。https://www.aichudan.com/

联系电话

17727591462

返回顶部