安卓自动化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.若是玩大工程.几十个人的团队协同开发时,这么玩,,,,暴躁的程序员估 ...
随机推荐
- Linux中的/etc/nologin问题
/etc/nologin 文件给系统管理员提供了在 Linux 系统维护期间禁止用户登陆的方式. 如果系统中存在 /etc/nologin 文件那么普通用户登陆就会失败. 这是一种提高安全性和防止数据 ...
- Java中的逻辑运算符短路效应
在Java中逻辑运算符&& 和 ||,它们都存在短路效应. 对于a && b,只有当a和b同时为true时,整个表达式才为true(在java中,首先运算表达式a,如果 ...
- Sass 语法格式及编译
一.sass语法格式 这里说的 Sass 语法是 Sass 的最初语法格式,他是通过 tab 键控制缩进的一种语法规则,而且这种缩进要求非常严格.另外其不带有任何的分号和大括号.常常把这种格式称为 S ...
- python解析ini文件
python解析ini文件 使用configparser - Configuration file parser sections() add_section(section) has_section ...
- MySql客户端远程连接MySql服务器
设置MySql服务器以接听端口及以绑定IP地址 MySql服务器默认监听3306端口,确定防火墙以开放此端口. 编辑/etc/my.cnf 添加绑定IP地址.bind-address=192.168. ...
- 转:SpringCloud服务注册中心比较:Consul vs Zookeeper vs Etcd vs Eureka
原文链接地址:http://luyiisme.github.io/2017/04/22/spring-cloud-service-discovery-products/ 这里就平时经常用到的服务发现的 ...
- 【c学习-6】
void myFunction4(){ //根据用户字段和密码字段判定是否允许登录 //定义原密码和用户字段 char user[10]={"liupeng"};//设置用户名字段 ...
- Apache Maven(一):快速入门
Maven 是什么? Maven 是一个项目管理和整合工具.Maven 为开发者提供了一套完整的构建生命周期框架.开发团队几乎不用花多少时间就能够自动完成工程的基础构建配置,因为 Maven 使用了一 ...
- PHP CI框架学习
CI框架的URL辅助函数使用 URL 辅助函数文件包含一些在处理 URL 中很有用的函数 加载辅助函数 在使用CI框架的使用经常碰到跳转和路径方面的问题,site_url()和base_url()很容 ...
- python_字符串_常用处理
1. 输出原序列的反向互补序列 in1 = open("brca1.fasta", "r") out1 = open("re_brca1.fasta& ...