一:    总体架构

系统工程架构源码:https://github.com/UDLD/UIAUTOMATORTEST

整个系统基于: UiAutomator + 自编Python交互库 + Robot + Shell脚本 。

采用关键字驱动测试模式,以UiAutomator为主要测试接口,测试逻辑主要由Robot Framework控制,测试报告亦基于Robot Framework。

UiAutomator脚本工程框架,写入了大量复用操作,以提高代码复用行、扩展性和易维护性;采用三层分离,适用于多系统多平台测试。

系统架构图如下:

二.   系统特点

1.  支持多机器并行跑测试用例,也支持跑多台机器间交互的测试用例。

2.  自动化测试生成Html格式易读报告。

3.  关键字驱动,代码复用,测试脚本易维护。

4.  报告生成后自动邮件发送。

5.  执行用例期间Log自动获取并保存。

6.  关键字库功能基本覆盖黑盒测试需求。

三.   关键字库设计实现总结

1.   对控制台输出进行处理的时候要严谨,尤其是对带有空格的输出文本的处理,因为屏幕大小和系统版本可能会影响处理结果。

2.  因为有可能针对多用例串行测试,所以Python测试交互方法中全局变量的处理要严谨,如果函数多次调用全局变量,要明确上次调用对本次调用的影响。

3.  因为要并行测试,所以在需要明确Device的方法,都要添加Device参数。

4.  为了工程更具移植性和准确性,要注重工作路径的切换,尤其是测试用例对库的引用,测试报告、测试图片、测试APK等路径的设置和引用。

5.  因为Robot只会打印关键字的输出到测试报告,故UiAutomator测试脚本中的输出和其他一些方法必要输出要返回并获取,然后在关键字方法中输出。

6.  在和Robot的交互中,要理解Robot的输出控制,适时添加控制台输出和报告输出,已更加明确的显示测试进程。

Android 并行自动化测试系统 实现总结的更多相关文章

  1. 网易与Google合作发布开源UI自动化测试方案 牛逼:Google 方面评价,这可能是目前世界上最好的 Android 游戏自动化测试方案。

    美西时间 3 月 19 日,在 GDC 开幕第一天的 Google 开发者专场,Google 发布了一款由网易研发的 UI 自动化测试方案:Airtest Project.Google 方面评价,这可 ...

  2. Android监听系统短信数据库变化-提取短信内容

    由于监听系统短信广播受到权限的限制,所以很多手机可能使用这种方式没法监听广播,从而没办法获取到系统短信,所以又重新开辟一条路. Android监听系统短信数据库内容变化使用场景: 1.监听短信数据库的 ...

  3. 让Android程序获得系统的权限,实现关机重启,静默安装等功能

    引用:http://www.cnblogs.com/welenwho/archive/2012/05/10/2494984.html android想要获得系统权限有几种途径,一种就是你的程序固化的系 ...

  4. Android manifest之系统自带的permission

    Android manifest之系统自带的permission 本文描述Android系统自带的permission.点击查看:“关于permission的原始定义和说明”.点击查看:“Androi ...

  5. Android应用与系统安全防御

    来源:HTTP://WWW.CNBLOGS.COM/GOODHACKER/P/3864680.HTML ANDROID应用安全防御 Android应用的安全隐患包括三个方面:代码安全.数据安全和组件安 ...

  6. android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到

    android BroadcastReceiver ACTION_TIME_TICK 系统时间监听不到 今天做android上的消息推送,启动了一个独立service,然后在里面监听系统的ACTION ...

  7. [系统集成] Android 自动构建系统

    一.简介 android app 自动构建服务器用于自动下载app代码.自动打包.发布,要建立这样的服务器,关键要解决以下几个问题: 1. android app 自动化打包android 的打包一般 ...

  8. android开发中系统自带语音模块的使用

    android开发中系统自带语音模块的使用需求:项目中需要添加语音搜索模块,增加用户体验解决过程:在网上搜到语音搜索例子,参考网上代码,加入到了自己的项目,完成产品要求.这个问题很好解决,网上能找到很 ...

  9. android - python 自动化测试 移动互联网 - SegmentFault

    android - python 自动化测试 移动互联网 - SegmentFault splinter

随机推荐

  1. ImageMagick资料

    ImageMagick资料 ---------------------------------------------------------------------------- ImageMagi ...

  2. 修改setup.py的源

    方法一: 修改文件 ~/.pydistutils.cfg为: [easy_install] index_url = http://pypi.douban.com/simple 方法二: 直接在setu ...

  3. 【OpenStack】OpenStack系列11之namaspace&openvswitch原理实践

    Namespace实现网络隔离与互通 新建ns: ip netns add foo 查看ns: ip netns 查看ns详细配置: ip netns exec foo ip addr 设置ns内部l ...

  4. 多表利用DIH批量导入数据并建立索引注意事项

    如果希望同时对多个表进行全文检索,那我们该如何处理呢?利用DIH导入数据并建立索引时.schema.xml中配置了uniqueKey为id <uniqueKey>id</unique ...

  5. HDU1568斐波那契推理

    Fibonacci Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total S ...

  6. docke跨主机通信之gre隧道

    GRE简介 GRE可以对网络层的任何协议来进行封装,类似LVS的IPIP协议,在原有的数据报上增加GRE协议数据报.然后在网络上传输,到达对端后,解开GRE数据报头,得到真实的数据报.其中的mac地址 ...

  7. Http协议之Request和Response

    GET / HTTP/1.1表示向服务器用GET方式请求首页,使用HTTP/1.1协议 Cache-Control作用: 用来指定Response-Request遵循的缓存机制.各个指令含义如下Cac ...

  8. Adaboost算法结合Haar-like特征

    Adaboost算法结合Haar-like特征 一.Haar-like特征 目前通常使用的Haar-like特征主要包括Paul Viola和Michal Jones在人脸检测中使用的由Papageo ...

  9. (九)STM32之AFIO

    也许你以为IO和AFIO是很简单的,事实上有几个误区可能很多人都没注意过,当你只用现成的开发板来学习的时候,别人已经帮你做好了资源分配,所有的外设功能学习都是照着别人给你的例程去做的,这才没让你觉得奇 ...

  10. IoC容器Autofac - Autofac + Asp.net MVC + EF Code First(转载)

    转载地址:http://www.cnblogs.com/JustRun1983/archive/2013/03/28/2981645.html  有修改 Autofac通过Controller默认构造 ...