一:    总体架构

系统工程架构源码: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. Java中static静态关键字的使用

    我们可以基于一个类创建多个对象,每个对象都拥有自己的成员,所有成员变量的值是根据对象而存在的,有些时候我们希望一个类的所有对象共享一个成员,这就用到了static静态关键字 被静态关键字修饰的成员属于 ...

  2. 低配置电脑播放 flash 视频时 占 cpu 资源过高的解决方法

    安装低版本的 flash player 版本, 经调试能满足播放的最低版本是 Flash Player 10.3.183.90 然后 firefox 3.6.28 + Adblock Plus 2.0 ...

  3. Simple Chroma Key 0.1.16 图片抠像(vs2003) 无任何插件

    学习扣像的最基础代码 (只支持 BMP TGA) simplechromakey.rar

  4. 【JAVA、C++】LeetCode 010 Regular Expression Matching

    Implement regular expression matching with support for '.' and '*'. '.' Matches any single character ...

  5. IE的安全性设定增加“我的电脑”的安全性设定

    HKEY_CURRE-NT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings\Zones\,在右边窗口中找到DWORD值“ ...

  6. redhat6.2下的ssh密钥免密码登录(原创)

    这个是我自己写的,鼓励转载,请说明转载地址:http://www.cnblogs.com/nucdy/p/5664840.html 在进行hadoop的免密码的登录操作是,老是发生no route等错 ...

  7. WW_TRANS_I18N_LOCALE”与“WW_TRANS_I18N_LOCALE”属性

    Struts2 i18n国际化(允许用户自行选择语言)转最近在学习struts2,学习资料是李刚著的<struts2权威指南>,这本书写得非常好,非常有学习价值.我在学习过程中,自己跟着做 ...

  8. cut mysqladmin

    [root@86 ~]# mysqladmin -uroot -p123456 -S /tmp/mysql.sock status Uptime: 112403 Threads: 17 Questio ...

  9. 在Android4.4上新增加keycode

    keycode是android定义好的,但是有时候无法满足需要,进行定制化难免会涉及到新增加keycode.分成两部分,驱动和framework,这里主要讲解framework部分: 一.驱动部分: ...

  10. Type InvokeMember()用法简介

    举例: Type tDate = typeof(System.DateTime); Object result = tDate.InvokeMember("Now", Bindin ...