一.   一个脚本对应一台设备

核心点:组织运行命令;将组织好的命令传到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多设备跑的更多相关文章

  1. airtest+poco多脚本、多设备批处理运行测试用例自动生成测试报告

    一:主要内容 框架功能及测试报告效果 airtest安装.环境搭建 框架搭建.框架运行说明 airtest自动化脚本编写注意事项 二:框架功能及测试报告效果 1. 框架功能: 该框架笔者用来作为公司的 ...

  2. unity3d协同不同设备的代码

    unity3d的脚本代码中,Update()函数每一帧都会运行一次. 假设有这两台设备:一台超级四路泰坦计算机,一台旧手机,它们一起运行一个赛跑游戏,Update()函数每一帧运行一次,游戏中的小人就 ...

  3. 26、android上跑apache的ftp服务

    一.为啥 在android设备跑ftp服务,在现场方便查看日志,目前就是这么用的. 二.前提: 从apache的官网下载依赖包:http://mina.apache.org/ftpserver-pro ...

  4. Airtest结合tidevice实现IOS自动化测试

    这篇博文内容,是基于之前的配置而来的.我们可以先回顾一下之前博文,Windows搭建mac黑苹果系统:WebDriverAgent重签名爬坑记 . 今天来分享下如何通过 tidevice实现IOS自动 ...

  5. 查看当前正在运行的activity

    找到sdk的安装路径,比如我的是 D:\prostu\Android\android-sdk\tools该路径下的: hierarchyviewer.bat 双击,可以用此工具查看设备跑的是当前的哪个 ...

  6. png图片那点事

    PNG图片格式现在包含三种类型: 1.PNG8       256色PNG的别名 2.PNG24     全色PNG的别名 3.PNG32     全色PNG的别名 基本上PNG32就是PNG24,但 ...

  7. 【转】如何优化Cocos2d-X游戏的内存

    Published on 2013 年 2 月 4 日, by donglin http://blog.chukong-inc.com/index.php/2013/02/04/%E5%A6%82%E ...

  8. ios内存详解

    IOS以及Mac os都是基于Unix/linux改造出来的,而在内存管理方面也沿用了Unix/Linux的内存管理机制. 下面主要说的是IOS系统,有很多比较喜欢捣鼓的吧友肯定自己清理过机器的内存, ...

  9. cocos2d-x3.2中怎样优化Cocos2d-X游戏的内存

    在游戏项目优化中都会碰到一个问题,怎样既能降低内存又能尽量降低包的大小?在实际项目中有些经验分享一下,其实2D游戏中最占内存的就是图片资源,一张图片使用不同的纹理格式带来的性能差异巨大.下表是我在IO ...

随机推荐

  1. js中三个默认方法call,applay,bind

    这三个都是函数自带的方法(Function.prototype),这三个方法都能够改变函数内部 this的指向, call //call方法接收三个参数,第一个是this指向,第二个,三个是传递给函数 ...

  2. 【例题 4-4 uva 213】Message Decoding

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 输入的二进制长度最长为7 所以得开个sta[7][2^7]的样子才存的下所有的字符的.. 定义这么一个数组当字典. 然后一个字符一个 ...

  3. Maven错误:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?的解决方法

    错误: [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather tha ...

  4. WebApplicationContext初始化(转)

    ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一些,ApplicationContext则是“应用的容器”了:在We ...

  5. net_->ForwardBackward()的大致梳理

    net_->ForwardBackward()方法在net.hpp文件中 Dtype ForwardBackward() { Dtype loss; Forward(&loss); Ba ...

  6. Aizu/Aoj 0033 Ball

    题目大意: 有编号1到10共10个球,从上方丢下去,入口处可以选择进入左边或者右边,最后10个球全部落下去后如果左右两侧都是从小到大的顺序,则输出YES:否则输出NO. 题目原本的标签枚举,复杂度是2 ...

  7. Android与JS互相调用以及注意

    近期项目中常常使用Html5而Android与JS调用常常会用到,这里记录一下,測试系统5.0以上. 这里先贴一下源代码 Activity: package jwzhangjie.com.webvie ...

  8. Makefileeasy犯错的语法

    1.引言 近期学习android的Build系统,接触最多的自然就是Makefile语法.发现非常多easy出错的地方,不避开这些错误语法没法真正了解Makefile的内涵.以下就介绍遇到的一些让人困 ...

  9. Android开机键失灵启动手机的解决的方法

    问题描写叙述 Android手机的关机键损坏,无法开机. 解决方法 将手机通过USB线链接电脑,进入命令行.找到adb命令所在文件夹.执行例如以下命令: adb reboot 注意:用这样的方法的前提 ...

  10. oc17--点语法

    // // Person.h // day13 #import <Foundation/Foundation.h> @interface Person : NSObject { // @p ...