在学习安卓的这段时间里,刚好有个朋友有一个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 异常的回滚、缓存执行结果机制、