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

多机测试的思路

启动多个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. 公式for TinyMCE 编辑器@ cnblogs.com

    编辑器截图: 行内公式:\(  f(x,y,z) = 3y^2 z \left( 3 + \frac{7x+5}{1 + y^2} \right)  \) 行间公式:\\(  f(x,y,z) = 3 ...

  2. Ruby学习笔记1 -- 基本语法和数据类型, Class

    Ruby 有4种数据类型:String, Boolen, Array, Hashes Ruby 有3种操作方法:Method, attribute, ?? Ruby 有xxx: Classes, Ob ...

  3. JVM jmap dump 分析dump文件 / 如何使用Eclipse MemoryAnalyzer MAT 排查线上问题

    jhat简介 jhat用来分析java堆的命令,可以将堆中的对象以html的形式显示出来,包括对象的数量,大小等等,并支持对象查询语言 这个工具并不是想用于应用系统中而是用于"离线" ...

  4. winform/timer控件/权限设置/三级联动

    一.timer控件 组件--timer timer是一个线程,默认可以跨线程访问对象 属性:Enabled--可用性 Interval--间隔时间 Tick:间隔时间发生事件 二.三级联动 例: pu ...

  5. yum centos 修改镜像源

    参考:https://blog.csdn.net/sj349781478/article/details/78736873 3.清除yum缓存 yum clean all yum makecache ...

  6. redisCluster 使用 pipeline功能

    Redis从3.0版本后引入了令人兴奋的cluster集群模式,相信很多人都尝试过了,在高兴之余却发现redis官方的cluster对于Java客户端的jedis支持却不是很好,至少目前的版本clus ...

  7. C++/C#:类Class与结构体Struct的区别

    C++中: 默认的访问控制.继承访问权限不同:struct时public的,class时 private的: 其它基本一样. C#中: struct是值类型,class是引用类型的: struct S ...

  8. eclipse 导出 javadoc

    项目右键Export ->java/javadoc -> 选择要导出的项目,javadoc.exe,存放路径,导出的级别(private可导出全部) ->在VM option中加入- ...

  9. leetcode 题解 word search。递归可以更简洁。

    先写上我的代码: 我总是不知道何时把任务交给下一个递归.以致于,写出的代码很臃肿! 放上别人递归的简洁代码: bool exist(char** board, int m, int n, char* ...

  10. Xe7 System.Json解析数据格式

    一.Demo一 解析嵌套数组 Json数据 {"code":1,"msg":"","data":{"Grade ...