安卓自动化robotium工具简单使用(二)
在学习安卓的这段时间里,刚好有个朋友有一个APP的应用需要开发。
我马上就动手开始做着试试,在完成开发的同时写了相应的自动化测试代码,使用的是robotium。
才接触安卓没几天,写的不太好,如果有好心人路过请指点一二,谢谢。
目标
加快开发测试迭代效率,代替手工的回归测试工作。
设计思路

1 目前用于启动测试用例的类是UIAutoTest
2 测试用例的设计按照页面模块化来分配
a 每个页面(fragment、activity)为一个模块,定义了通用接口RegularTestPage
execute() 执行测试用例
enter() 进入测试用例页面
enterNextPage() 进入下一个页面
b 每个页面都有一个checkpoint类作为检查点--测试用例的设计
c baseConfig类作为整体的参数配置
3 DaoService用于做数据库的操作,我个人推荐数据库用mongoDb数据库,我认为测试的自动化最关键是要简单和可维护性强,这样才便于迭代。
MongoDB的代码我之前就写好了挂在我的博客园里
http://www.cnblogs.com/sunfan1988/p/4169447.html
4 缓存
测试结果具有生命周期,这样防止重复跑测试用例。
5 异常处理机制
利用反射,根据传入的对象统一进行try/catch。增加回滚机制让测试用例能在失败后立刻重新执行,提高稳定性。
6网页版前台操作
我推荐做成BS结构的,这样大家都可以方便的使用自动化测试
一般我会引入SpringMVC框架来完成这个开发
7 其他
邮件、测试数据挖掘等

使用说明
1执行测试用例的话,需要逐个添加需要的页面即可。(这里如果再设计一下的话,或许约定好名字或者订好annotation通过反射自动加载)

2 关于页面测试用例的添加,在这边添加方法,然后去测试页面调用即可

3 被测页面(添加测试用例就在execute里

预留接口
1 数据库接口
2 页面接口
今后的扩展
1 发送测试报告邮件,邮件代码已经写好,由于我之前都用的maven,这里引包不太方便,暂时没有放进来。
2 我的话更倾向与用MONGO_DB作为数据库,代码已经写好。暂时没有放入
3 页面化、或者客户端化支持更便捷的操作。
4 异常的回滚、缓存执行结果机制、
安卓自动化robotium工具简单使用(二)的更多相关文章
- 前端自动化构建工具webpack (二)之css和插件加载总结
1. webpack只识别js文件,其他文件都需要转换成js文件.所有文件都是模块; 2. css解析 css需要css-loader --->style-loader ----- ...
- Ansible批量自动化管理工具(二)
Ansible批量自动化管理工具(二) 链接:https://pan.baidu.com/s/1A3Iq3gGkGS27L_Gt37_I0g 提取码:ncy2 复制这段内容后打开百度网盘手机App,操 ...
- 前端自动化构建工具 Gulp 使用
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
- 运维自动化之SALTSTACK简单入门
运维自动化之SaltStack简单入门 饱食终日而无所事事,是颓也,废也.但看昨日,费九牛二虎之力除一BUG便流连于新番之中,不知东方之既黑,实乃颓颓然而荒废矣.故今日来缀一文以忏昨日之悔. Salt ...
- netcore编程之后面对不习惯的xshell黑屏部署,是时候使用jenkins自动化发布工具了
在很久之前net还只能在windows上部署的时候,或许很多创业公司的朋友发布项目还都是人肉部署,反正windows都是可视化的界面,拖拖拉拉,开开关关还不 是特别麻烦...现如今你的项目需要在li ...
- 前端自动化构建工具--Gulp&&Webpack
前端构建工具的作用可以认为是对源项目文件或资源进行文件级处理,将文件或资源处理成需要的最佳输出结构和形式. 在处理过程中,我们可以对文件进行模块化引入.依赖分析.资源合并.压缩优化.文件嵌入.路径替换 ...
- 前端自动化构建工具 gulp 学习笔记 一、
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
- Jenkins敏捷开发 自动化构建工具
一.序言 Jenkins 是一款自动化构建工具,能够基于 Maven 构建后端 Java 项目,也能够基于 nodejs 构建前端 vue 项目,并且有可视化 web 界面. 所谓自动化构建是按照一定 ...
- 项目自动化建构工具gradle 入门5——在intellij中做一个gradle的web工程
之前的几个小节,都是纯手工建文件夹,纯手工拷贝war包,或者纯手工解压个zip看看结果,,,,这还是我写了玩的helloWorld.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
随机推荐
- Java8函数之旅 (一) 开始认识lambda
系列之前我想说的 最近有一段时间没写博客了,这几天回到学校,才闲下来,决定写一写最近学习到的知识,既是为了分享,也是为了巩固.之前看到过一篇调查,调查说的是学习新知识,光只是看的话,知识的获取率只 ...
- jQuery实现轮播切换以及将其封装成插件(3)
在前两篇博文中,我们写了一个普通的轮播切换.但是我们不能每一次需要这个功能就把这些代码有重新敲一次.下面我们就将它封装成一个插件. 至于什么是插件,又为什么要封装插件,不是本文考虑的内容. 我们趁着 ...
- base64位 解码图片
jar包是commons-codec.jar. pnuts //base64解码成图片 function gldBase64ToImage(imgStr,imgFilePath) { // 对字节数组 ...
- Java分享笔记:使用entrySet方法获取Map集合中的元素
/*--------------------------------- 使用entrySet方法取出Map集合中的元素: ....该方法是将Map集合中key与value的关系存入到了Set集合中,这 ...
- 微信公众号支付java版本
回调函数 @RequestMapping("/toPay") public String toPay(HttpServletRequest request, HttpServlet ...
- vue笔记v-bind
把message的信息绑定给title,运行出来的结果是<span title="you loaded this page on +Mon Nov 21 2016 18:28:38 G ...
- Android内购订单验证 --- php实现
直接上代码: function googleVerify($sdata,$google_public_key) { $sdata = json_decode($sdata,true); $in_app ...
- 为 vsftpd 启动 vsftpd:500 OOPS: SSL: cannot load RSA&nb
博主在配置ftp服务器的时候 自己生成的CA,然后认证自己的私钥文件 一切配置都是没有问题的,然后重新启动服务器 service vsftpd restart 出现以下错误 为 vsftpd 启 ...
- HDU 5446 Unknown Treasure (卢卡斯+CRT
代码: #include"bits/stdc++.h" #define db double #define ll long long #define vec vector<l ...
- 笔记-python-statement-with
笔记-python-statement-with 1. with语句 1.1. 基础使用案例 在开发时,经常使用with语句来打开文件: with open(‘a.txt’,’a+’, ...