Airtest多设备跑
一. 一个脚本对应一台设备
核心点:组织运行命令;将组织好的命令传到pool进程池(注意:是进程池,不是线程池,python的线程池不是同步执行,是按序执行)
以下不需要看,为私人项目备份目的。
run_mul.py 代码如下:
# -*- encoding=utf8 -*-
from airtest.core.android.adb import ADB
from multiprocessing.pool import Pool
import os def get_all_dir():
"""
:return: 获得所有的文件夹
"""
cur_dir = os.path.dirname(os.path.realpath(__file__))
dirs_ls = []
for dirs in os.listdir(cur_dir):
isdir = os.path.join(cur_dir, dirs)
if os.path.isdir(isdir):
dirs_ls.append(isdir)
return dirs_ls def create_dic_data():
""" :return: [{"dev":"","login.air":"","NEXT.air":""},]
"""
ls = []
devicess = ADB().devices()
# print(devicess) if len(devicess) == len(get_all_dir()):
for num in range(len(devicess)):
d = {}
d["device"]=devicess[num][0]
d["login.air"]=get_all_dir()[num]+"/login.air"
d["NEXT.air"]=get_all_dir()[num]+"/NEXT.air" ls.append(d)
else:
print("设备个数与脚本个数对应不上:设备个数:%s,脚本个数:%s"%(len(devicess),len(devicess))) return ls def create_dic_command():
""" :return: [[airtest ... login.air,airtest ... NEXT.air],]
""" ls = []
for i in create_dic_data():
comm_login = 'airtest run %s --device Android:///%s' % (i['login.air'], i['device'])
log_path = i['NEXT.air'].replace("NEXT.air","report")
comm_next = 'airtest run %s --device Android:///%s --log %s' % (i['NEXT.air'], i['device'],log_path)
lls=[comm_login,comm_next]
ls.append(lls)
return ls def main(comm):
print("main:%s"%comm)
os.system(comm) if __name__ == '__main__':
pool = Pool()
pool.map(main,[i[0] for i in create_dic_command()])
pool.map(main,[i[1] for i in create_dic_command()]) 二. 一个脚本对应多台设备 github: https://codeload.github.com/AirtestProject/multi-device-runner/zip/master
Airtest多设备跑的更多相关文章
- airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告
一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...
- unity3d协同不同设备的代码
unity3d的脚本代码中,Update()函数每一帧都会运行一次. 假设有这两台设备:一台超级四路泰坦计算机,一台旧手机,它们一起运行一个赛跑游戏,Update()函数每一帧运行一次,游戏中的小人就 ...
- 26、android上跑apache的ftp服务
一.为啥 在android设备跑ftp服务,在现场方便查看日志,目前就是这么用的. 二.前提: 从apache的官网下载依赖包:http://mina.apache.org/ftpserver-pro ...
- Airtest结合tidevice实现IOS自动化测试
这篇博文内容,是基于之前的配置而来的.我们可以先回顾一下之前博文,Windows搭建mac黑苹果系统:WebDriverAgent重签名爬坑记 . 今天来分享下如何通过 tidevice实现IOS自动 ...
- 查看当前正在运行的activity
找到sdk的安装路径,比如我的是 D:\prostu\Android\android-sdk\tools该路径下的: hierarchyviewer.bat 双击,可以用此工具查看设备跑的是当前的哪个 ...
- png图片那点事
PNG图片格式现在包含三种类型: 1.PNG8 256色PNG的别名 2.PNG24 全色PNG的别名 3.PNG32 全色PNG的别名 基本上PNG32就是PNG24,但 ...
- 【转】如何优化Cocos2d-X游戏的内存
Published on 2013 年 2 月 4 日, by donglin http://blog.chukong-inc.com/index.php/2013/02/04/%E5%A6%82%E ...
- ios内存详解
IOS以及Mac os都是基于Unix/linux改造出来的,而在内存管理方面也沿用了Unix/Linux的内存管理机制. 下面主要说的是IOS系统,有很多比较喜欢捣鼓的吧友肯定自己清理过机器的内存, ...
- cocos2d-x3.2中怎样优化Cocos2d-X游戏的内存
在游戏项目优化中都会碰到一个问题,怎样既能降低内存又能尽量降低包的大小?在实际项目中有些经验分享一下,其实2D游戏中最占内存的就是图片资源,一张图片使用不同的纹理格式带来的性能差异巨大.下表是我在IO ...
随机推荐
- Java反射获取class对象的三种方式,反射创建对象的两种方式
Java反射获取class对象的三种方式,反射创建对象的两种方式 1.获取Class对象 在 Java API 中,提供了获取 Class 类对象的三种方法: 第一种,使用 Class.forName ...
- 解决ExpressSpreadSheet 中文乱码问题[备查]
cxSpreadSheet和F1Book等都提供了类似Excel的操作, 但是相比F1Book, cxSpreadSheet的中文支持还不是很完善.在设置了wordbreak为true的时候,里面的中 ...
- XHXJ's LIS
XHXJ's LIS Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Probl ...
- 0622通过插件的方式来热安装sphinx
1.查看当前运行的mysql版本 mysqldump --version 我的Mysql版本5.5.32 2.下载对应的mysql 5.5.32 (版本号一定不能错,要不安装不成功)源码,并解压 下载 ...
- springboot集成grpc
gRPC 简介 gRPC 是一个现代开源的高性能 RPC 框架,可以在任何环境下运行.它可以有效地将数据中心内和跨数据中心的服务与可插拔支持进行负载均衡.跟踪.健康检查和认证.它也适用于分布式计算,将 ...
- CSS学习(十六)-HSLA颜色模式
一.理论: 1.HSLA颜色模式 a.HSLA在HSL基础上添加了不透明度,值越大透明度越低 b.HSLA颜色模式的浏览器兼容性和HSL一样,仅仅有较新版本号的主流浏览器才支持 2.RGBA和HSLA ...
- Linux 管道是什么 ?原理
简单点就是说,一个命令的结果作为另外一个命令(结果)的输入 . 管道是linux提供的一种常见的进程通信工具,也是很多shell命令能够灵活组合产生强大用途的一个重要工具. 管道是什么? 管道,顾名思 ...
- oc20--继承2
// // Phone.h #import <Foundation/Foundation.h> // 被继承的这个类我们称之为父类/ 超类 @interface Phone : NSObj ...
- Linq的Except
https://msdn.microsoft.com/en-us/library/bb300779(v=vs.100).aspx , , , }; , , , }; var list = list1. ...
- DNS隧道工具使用 不过其网络传输速度限制较大
DNS隧道工具使用 http://www.freebuf.com/sectool/112076.html http://netsec.ccert.edu.cn/zhengming/2011/11/01 ...