昨晚被空调吹冻感冒,一早上起来就头痛发烧,在社区医院开了点药之后,回来睡了一觉好很多,所以今天把自己所搭建的雏形框架的说明大概讲一下,基本涵盖了所有自动化功能,而且也可以使用到很多项目中,不用改变结构,只要更改逻辑层和测试用例即可
一.自动化测试框架
Appium+python+unittest测试框架目前使用的公司很多,但是总是觉得缺少一些回归的东西
二.自动化框架所涉及的功能以及层级
1.测试包管理(涉及被测APP包管理)
2.业务逻辑功能的封装(操作流程)
3.日志管理(涉及自动化测试用例执行的日志管理)
4.测试用例管理(unittest进行case管理)
5.错误截图管理(涉及一些错误截图、关键步骤截图管理)
6.断言管理(对于测试执行的判断)
7.数据驱动管理(对一些输入的参数进行配置管理,类似于excel文件、csv文件….)
8.配置文件管理(类似一些配置文件以及一些初始化配置信息)
9.自动化测试报告管理
四.自动化测试实战
1.自动化测试环境准备
appium版本 V1.13.0
python版本 V3.7.2
真机Android版本9
APP一起长大家长端(公司的产品,家里有孩子的可以了解一下)
2.自动化测试用例场景
登录模块:
用例描述涉及两条:
(1)正确的账号,错误的密码,登录失败
(2)正确的账号、正确的密码,登录成功
3.自动化框架设计图 (所有自动化测试可能最重要的一步,根据Pageobject设计思想,对框架进行设计并画图展示,这一步在自动化评审阶段尤为重要)
4.各个模块代码实现
a)测试包管理(模块名字可随意定义)
这个模块主要放置测试所使用的APP包
b)基础视图模块(Baseview)
该模块封装了一个类baseview,该类封装最基本的方法,主要功能为:
初始化driver
基础方法封装
代码如下:
c)公共模块
包含一个公共方法封装、driver驱动封装、测试用例执行前后的封装等
公共方法代码:
driver方法代码:
Unittest用例执行前后操作代码:
d)业务逻辑模块(businessView)
所有被测APP的业务逻辑层全部放置在该模块中(目前只涉及登录模块的逻辑,所以只包含了登录的逻辑,其他模块可以依次按照逻辑新增逻辑层),代码如下:
e)配置文件模块
测试所用到的日志配置文件、启动参数yaml文件等,我这边只配置了框架所需的两项,分别为log.conf以及启动参数配置
其中log.cof代码:
启动参数配置:
f)数据驱动模块
该模块只是针对一些测试数据的存放,目前的项目是以CSV的方式进行储存,所以获取CSV数据的方法放在的common方法中
g)日志储存模块
主要存放每次运行测试所产生的日志信息
h)自动化测试报告模块
主要存放每次运行测试之后产生的自动化测试报告文件
i)screenshots截图模块
主要存放错误截图以及重要模块截图文件等
j)测试用例模块
存放测试用例的模块,用于整个测试用例的编辑,代码如下:
k)测试入口
用于执行自动化测试用例,该模块涵盖了测试报告的指定目录、自动化测试用例的执行入口、以及配置测试报告等,代码如下:
备注:
目前还没做持续集成,还在完善框架当中,完善框架所用到的方法,完善其他模块的业务逻辑以及测试用例,还是觉得测试场景是自动化测试的关键,未完待续.........