appium自动化测试框架——自动化启动多台设备思路梳理
今天,我们聊一聊如果自动化实现在多台设备上运行脚本。
一、首先我们回忆一下如何在一台设备上运行python脚本,一般分为三步
1、启动appium服务
2、创建驱动
3、运行python脚本
同样的,运行多台设备,也基本是这三个步骤
1、启动多个appium服务(通过设置不同端口,并关联设备)
2、创建驱动,并确保端口号和设备关联,并和步骤1保持一致
3、多线程或多进程运行脚本。
二、步骤分解
我们下面分别看这三个步骤如何实现
1、启动多个appium服务,"appium -p appium_port -bp bootstrap_port -U devicename --no-reset --session-override"
需要解决如下问题
1)如何在python中运行dos命令
2)如何获取设备
3)如何创建可用端口(非占用)
2、创建驱动,难点在于,创建的驱动需要和步骤1中的服务关联起来,确保端口、设备、驱动一一对应
解决思路
1)将步骤1生成命令的同时,将变量(appium_port、 bootstrap_port和devicename)写入文件(具体可以是init文件、yaml文件或其他)
2)创建驱动时,从文件中读取端口和设备名,
3、多线程或多进程运行脚本
实践发现使用多线程运行python脚本,在最新的appium服务下,有时会造成混乱,为了避免这个问题,此处我们使用多进程。
三、思路总结
1、在python中执行dos,获取设备信息,创建可用端口
2、执行dos命令,启动多个appium服务
3、将启动信息(端口和设备)写入yaml文件
4、从yaml文件中读取端口号和设备信息,创建对应的驱动
5、引入多进程,运行脚本
appium自动化测试框架——自动化启动多台设备思路梳理的更多相关文章
- Appium+python自动化(四十二)-Appium自动化测试框架综合实践- 寿终正寝完结篇(超详解)
1.简介 按照上一篇的计划,今天给小伙伴们分享执行测试用例,生成测试报告,以及自动化平台.今天这篇分享讲解完.Appium自动化测试框架就要告一段落了. 2.执行测试用例&报告生成 测试报告, ...
- Appium+python自动化(四十一)-Appium自动化测试框架综合实践 - 即将落下帷幕(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.到今天为止,大功即将告成:框架所需要的代码实现都基本完成. 2.data数据封装 2.1使用背景 在实际项目过程 ...
- Appium+python自动化(三十八) - Appium自动化测试框架综合实践 - 框架简介-助你冲击高薪,迎娶白富美(超详解)
简介 好久没有更新博客了,博友们是不是有点等不及了.不好意思啊,中秋节过后太忙了,这篇是好不容易抽点零碎时间写的.从这一篇开始小伙伴或者童鞋们,就跟随宏哥的脚步,一步步的从无到有,从0到1的搭建一个完 ...
- Appium+python自动化(三十九)-Appium自动化测试框架综合实践 - 代码实现(超详解)
简介 经过一段时间的准备,完善的差不多了,继续分享有关Appium自动化测试框架综合实践.想必小伙伴们有点等不及了吧! driver配置封装 kyb_caps.yaml 配置表 参考代码 platfo ...
- Appium+python自动化(四十)-Appium自动化测试框架综合实践 - 代码实现(超详解)
1.简介 今天我们紧接着上一篇继续分享Appium自动化测试框架综合实践 - 代码实现.由于时间的关系,宏哥这里用代码给小伙伴演示两个模块:注册和登录. 2.业务模块封装 因为现在各种APP的层出不群 ...
- 『与善仁』Appium基础 — 8、Appium自动化测试框架介绍
目录 1.主流的移动端自动化测试框架 (1)Robotium (2)Macaca (3)Appium 2.自动化测试工具的选择 3.Appium简介 提示:我们前面说的Android环境搭建和adb命 ...
- appium自动化测试框架——封装获取设备信息类
在上一节中,我们已经解决了如何在python中执行cmd,并获取执行结果.下面就小小实战一下,获取设备信息. 一.思路 1.windows上获取设备信息的方法 输入dos命令“adb devices” ...
- 基于C#的Appium自动化测试框架(Ⅰ)
因为工作原因,使用的编程语言都是C#,但是国内相应的Appium资料少得可怜,Java版本的Appium也考虑过,但是奈何自己搞不定Eclipse这个编译环境[说白了就是因为懒-- 无意中看到了外面的 ...
- 基于C#的Appium自动化测试框架(Ⅰ):程序结构
因为工作原因,使用的编程语言都是C#,但是国内相应的Appium资料少得可怜,Java版本的Appium也考虑过,但是奈何自己搞不定Eclipse这个编译环境[说白了就是因为懒…… 无意中看到了外面的 ...
随机推荐
- mongo简介
MongoDB MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服 ...
- HTML5模拟衣服撕扯效果
在线演示 本地下载
- HTTP 401.1 - 未授权:登录失败
1 HTTP 401.1 - 未授权:登录失败 由于用户匿名访问使用的账号(默认是IUSR_机器名)被禁用,或者没有权限访问计算机,将造成用户无法访问. 解决方案: 1 打开IIS,右键站点,选 ...
- g2o求解BA 第10章
1.g2o_bal_class.h1.1 projection.hg2o还是用图模型和边,顶点就是相机和路标,边就是观测,就是像素坐标.只不过这里的相机是由旋转(3个参数,轴角形式,就是theta*n ...
- ActiveMQ之发布、订阅使用
maven依赖 <dependencies> <dependency> <groupId>org.apache.activemq</groupId> & ...
- LVS与Keepalived
lvs与Nginx区别 LVS的负载能力强,因为其工作方式逻辑非常简单,仅进行请求分发,而且工作在网络的第4层,没有流量,所以其效率不需要有过多的忧虑. LVS基本能支持所有应用,因为工作在第4层,所 ...
- java高级特性增强
第4天 java高级特性增强 今天内容安排: 1.掌握多线程 2.掌握并发包下的队列 3.了解JMS 4.掌握JVM技术 5.掌握反射和动态代理 java多线程增强 .1. java多线程基本知识 . ...
- CSS3咖啡制作全过程动画
CSS3咖啡制作全过程动画是一款利用纯CSS3实现的咖啡制作全过程动画特效,从把咖啡豆导入杯子,到把咖啡煮好,整个动画还比较流畅. 源码:http://www.huiyi8.com/sc/8788.h ...
- Git_学习_02_ 分支
Git鼓励大量使用分支: 1.查看分支:git branch 2.创建分支:git branch <name> 3.切换分支:git checkout <name> 4.创建+ ...
- MySQL日期处理函数_20160922
除了对文本字符串进行处理外,对日期处理是最常用的了,年.月.周.日等等,同时在日常工作报表中月报.周报.日报这样的报表也是最常见了. #二.mysql对日期的处理 SELECT #具体某一天 DATE ...