在实际应用中需要对多个机型并行测试,节省时间

多机测试的思路

启动多个appium server与多台机器交互(android和ios均可)
 
注意:一定要使用node安装appium的命令行,使用appium命令启动多个服务
启动命令时指定server端口号,以及与客户端交互的各项端口号
 
以下命令都是后台启动的,使用的mac的后台启动方式[ nohup 命令 &],如果是windows机使用[start /b 命令]

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)
 
注意:在windows中启动多进程一定要把多进程的连接写到【if __name__ == “__main__”:】下面,否则进行webdriver启动连接时会被拒绝

appium多机并行测试的更多相关文章

  1. appium 真机测试问题 出现 instruments crashed on startup

    1.appium 真机测试的时候 instruments crashed on startup,必须在真机上打开UI Automation 在设置里: Developer->Enable UI ...

  2. appium通过WiFi连接真机进行测试

    http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试   2015-07-24 19:43:07CSDN ...

  3. 【转2】Appium 1.6.3 在Xcode 8 (真机)测试环境搭建 经验总结

    Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始i ...

  4. python+appium+真机测试

    appium环境搭建 操作系统: Windows 10 被测平台: Android真机 appium服务器: appium Desktop appium客户端: python-client 测试的AP ...

  5. IOS-Appium 自动化测试——环境配置及模拟器、真机跑测试

    在MAC环境下配置IOS的appium的自动化测试环境,主要包含三个部分: 一.环境配置 1.安装homebrew(homebrew可以提供MAC OS无法提供的很多套件) ruby -e " ...

  6. Appium 在 Android UI 测试中的应用

    原文地址:https://blog.coding.net/blog/Appium-Android-UI Android 测试工具与 Appium 简介 Appium 是一个 C/S 架构的,支持 An ...

  7. U3D协程Coroutine之WWW与Update()的并行测试

    using System.Collections; using UnityEditor; using UnityEngine; using UnityEngine.UI; /************* ...

  8. TestNG并行测试

    并行(多线程)技术在软件术语里被定义为软件.操作系统或者程序可以并行地执行另外一段程序中多个部分或者子组件的能力.TestNG允许我们以并行(多线程)的方式来执行测试.这就意味着基于TestNG测试组 ...

  9. 如何搭建基于C#和 Appium 的 Android自动测试环境

    本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 如果想做手机端的自动化测试,Appium是首选的测试框架,因为网上使 ...

随机推荐

  1. 2.python知识点总结

    1.什么是对象?什么是类? 对象是对类的具体表达,类是对象的抽象表达. 类只是为所有的对象定义了抽象的属性与行为. —————————————————————————————————————————— ...

  2. 42.纯 CSS 创作一个均衡器 loader 动画

    原文地址: https://segmentfault.com/a/1190000015157160 感想: 不难,最简单的动画.拓展地址: https://scrimba.com/c/cWqVv9hd ...

  3. 《算法》第五章部分程序 part 2

    ▶ 书中第五章部分程序,包括在加上自己补充的代码,字符串高位优先排序(计数 + 插排),(原地排序),(三路快排,与前面的三路归并排序相同) ● 计数 + 插排 package package01; ...

  4. 10. js截取最后一个斜杠后面的字符串

    var startIndex = filePath.lastIndexOf("\\"); endIndex = filePath.lastIndexOf("." ...

  5. [转] golang socket

    server.go package main import ( "net" "fmt" "io/ioutil" "time&quo ...

  6. 机器学习进阶-图片基本处理-ROI区域 1.img[0:200, 0:200]截取图片 2.cv2.split(对图片的颜色通道进行拆分) 3. cv2.merge(将颜色通道进行合并) 4 cur_img[:, :, 0] = 0 使得b通道的颜色数值为0

    1. 截取图片的部分区域img[0:200, 0:200], 读入的图片是ndarray格式 2. b, g, r = cv2.split(img)  # 对图片的颜色通道进行拆分 3.img = c ...

  7. Dictionary转为Model实例

    Dictionary<string, object> dic = new Dictionary<string, object>(); dic.Add(); dic.Add(&q ...

  8. Linux主机如何用ssh去登录docker容器的步骤

    进入终端,sudo -i,切换root,输入docker -d 打开另一个终端,切换root,输入docker search ubuntu,大概如下结果: NAME                   ...

  9. git使用——分支

    创建dev分支,并切换到dev分支. git checkout -b dev //Switched to a new branch 'dev' 查看分支. git branch //* dev &qu ...

  10. React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

    昨天在项目中,重新封装组件时,引用了原来的一个子组件,但发现子组件在其他页面正常,在新的组件里面就发生保存, 然后把子组件注释,随便显示其div元素也正常,纠结了很久,最后发现引用的方式有问题 子组件 ...