appium多机并行测试

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

多机测试的思路

启动多个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启动连接时会被拒绝

时间: 2024-11-04 21:47:27

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

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

http://www.th7.cn/Program/Android/201507/514602.shtml appium通过WiFi连接真机进行测试 2015-07-24 19:43:07CSDN-sunwangdian-点击数:430 1.安装任一adb wireless 2.确保手机已root 3.确保手机与pc在同一网段 4.启动adb wireless,点击连接按钮,默认端口为5555 5.adb connect,如图 表示连接成功 6.adb devices查看设备是否存在,若连接不成

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

Appium 1.6.3 在Xcode 8 (真机)测试环境搭建经验总结 关于 Appium 1.6.3 在Xcode 8, 1真机上环境搭建问题更多,写此文章,供大家参考,让大家少走弯路. 在开始iOS真机测试之前,请大家务必 将 Appium 1.6.3 + xcode 8 在iOS模拟器上的环境搭建OK,请参见我的上一篇博文:Appium 1.6.3在Xcode 8, iOS 10.2(模拟器)测试环境搭建经验总结 如果iOS模拟器上的环境OK,再来真机上搭建,要不然 你还是放弃吧. 进入

为什么要选择真机进行测试

在实际工作中,某些公司可能会为了节省设备经费,或是减少测试流程等诸多原因,只使用模拟器来进行测试,而未使用真机进行测试.模拟器只是实现了真机的大部分功能,任何应用在上线前都应该在实体机上进行验收测试.下面就具体说说模拟器和真机的区别,为什么要使用真机进行测试 无论是IOS还是Android 模拟器由于都是模拟的硬件,所以在硬件上基本不会出现兼容性问题. Android 模拟器用的都是标准的Android系统,市面上的真机都是手机厂商自己定制的系统,碎片化更严重,适配问题更多. 现用的genymo

Windows Ping | Tracert 's Bat 脚本并行测试

系统:windows 需求:测试多台PC输出三个网站并行ping.tracert结果,多台PC同时进行. 说明:以www.baidu.com.www.sina.com.cn.www.tencent.com为例. 创建ping-tracer.www.baidu.com.www.sina.com.cn.www.tencent.com文件夹 ,输出结果.txt到每个文件夹 ping -n 100 -l 32  host ping -n 100次每次发送32个字节 域名 tracert -h 100 h

第四章 Appium真机运行测试用例讲解

手机自动化测试用例虽然可以在模拟器上运行,可是模拟器毕竟和真机还是有区别的.在第二章我们讲到了模拟器上运行测试用例后,我又花了两天的时间,研究了一下真机运行测试用例.只有在真机上运行,才能真正发现出问题.期间也遇到了不少问题,不过最终还是搞定了,现在先将测试用例真机运行的方法说一下,然后再罗列我遇到的问题. 4.1 真机运行测试用例的方法 一,    打开手机的USB调试模式 不同的手机有不同的方法打开usb调试模式,可是去网上查一下你手机的调试模式打开办法(http://wenku.baidu

开源堡垒机安装测试上线部署详解-----麒麟开源堡垒机

近期出于管理和检查需要,单位领导要求上堡垒机系统,测试了几个商业堡垒机,因为价格超过预算等原因都未购买,又测试了三个开源的堡垒机,感觉麒麟开源堡垒机功能最全,基本上和商业堡垒机一样,唯一的问题就是图形部分不开源,但因为我们的服务器基本上全是LINUX环境,telnet.ssh.ftp.sftp已经足够了因此将这套堡垒机已经用于生产环境. 现在市场商业堡垒机价格太高,基本上都要到10万左右,我结合在公司部署开源堡垒机的经验,将过程写为文档与大家分享. 我测试的其它开源堡垒机基本上还是半成品,麒麟堡

C++ boost库无锁队列多线程并行测试与编译方法

阅读了网络中关于Boost库无锁队列的源代码,但却缺少编译方法.经过测试,确定了ubuntu 14.04中编译boost库的方法,特做记录. 无锁(free-lock)是实现高性能多线程并发编程的重要技术. 作为C++11 STL参考实现的boost库,不仅支持11标准,而且做了许多扩展,掌握其使用方法,对于提高代码质量,尤其重要. 以其多线程并行无锁队列为例,结合代码和说明,演示了无锁boost库的使用和编译方法. 代码及说明如下: //source: boost_queue.cpp //目的

Oracle之使用rman进行异机恢复测试记录

本次测试目的是从生产数据库导出rman备份然后在测试数据库恢复 1,拷贝备份至相应目录 2,进入rman rman target \ 3,关闭数据库 shutdown 4,以nomount模式启动数据库 startup nomount 5,恢复控制文件 restore controlfile from ' /home/oracle/rman_backup/cf_c-1383295282-20171102-00'; 6,挂载数据库 alter database mount; 7,设置catalog

MySQL主从(介绍,配置主机,配置从机,测试主从同步)

一.介绍及准备工作 1.介绍 MySQL主从配置又叫Replication或者AB复制,简单讲就是A和B两台机器做主从后,在A上写数据,另一台B也会跟着写数据,两台数据实时同步. MySQL主从是基于binlog的,主上须开启binlog才能进行主从. 主从过程大致有3个步骤 主将更改操作记录到Binlog里 从将主的Binlog事件(sql语句)同步到从本机上并记录在relaylog里 从根据relaylog里面的sql语句按顺序执行 主上有一个logdump线程,用来和从的i/o线程传递bi