前言
去年以来一直在看appium相关知识,正好公司也有安卓系统的项目,所以自上个月开始就着手推动该项目的功能自动化测试。
之所以做这个自动化主要原因还是想减轻手工测试压力,部分功能模块交给自动化测试来做回归测试可以减轻部门小伙伴的压力!
介绍
下面就简单分享下:
1.首先是框架结构,如下图:
cases存放具体测试用例,里面可以根据软件模块再具体细分,但是要以package形式新建;common里面主要是一些公共依赖的东西,比如滑动,keyevent,以及发邮件等模块,供其他模块调用;logs里面顾名思义就是存放脚本执行过程中产生的log了;pages下面主要是PO模式的基类以及软件中一些页面的页面类文件;report下面是运行结束后产生的测试报告;run_all.py顾名思义就是测试用例的执行脚本,一键运行所有用例。
2.首先要写的是pages里面的具体的页面类,比如一个软件页面,类属性就是具体该元素的定位方法,类方法就是操作该元素的方法,这些在我之前的一篇关于UI自动化的PO模式的博客中介绍过。
3.接下来就是到cases中编写具体的测试用例, 配置启动app所需参数,实例化导入的页面类,然后就是在用例中一步一步按照功能测试的方法调用页面类中封装好的方法就可以了,具体可看截图中的注释,编写用例时要注意各个用例的衔接,已结各个模块的衔接,测试数据的创建,测试数据的回收等等!
4. 用例写完以后要做的就是一键执行所有,就是上文提到的run_all.py,执行完以后要配置邮箱,发送测试报告;
(1)首先编写all_case方法加载出所有用例
(2)然后是使用htmltestrunner来生成报告,调用common中sendemail模块来发送测试报告:
5.发送的报告同时也会生成再report文件夹下,
报告生成如下:
可根据需要查看概要或者详情,失败可查看截图!
后记
以上就简单的介绍了框架实际使用情况,具体在应用时还有很多不足:
(1)比如代码中重复的部分还很多,缺乏更有效的封装
(2)其次就是运行所有用例时会启动多次app,原因是我在case中执行每个py文件都会重新启动一次app,这也是编写框架之初没有考虑到用例运行的连贯性!
(3)等等
后续我还会继续优化,优化完成后再续此篇文章!有想讨论的小伙伴可以私信,一起学习,一起进步!