Appium+python+unittest自动化框架设计

昨晚被空调吹冻感冒,一早上起来就头痛发烧,在社区医院开了点药之后,回来睡了一觉好很多,所以今天把自己所搭建的雏形框架的说明大概讲一下,基本涵盖了所有自动化功能,而且也可以使用到很多项目中,不用改变结构,只要更改逻辑层和测试用例即可

一.自动化测试框架

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设计思想,对框架进行设计并画图展示,这一步在自动化评审阶段尤为重要)


图1

4.各个模块代码实现

a)测试包管理(模块名字可随意定义)

这个模块主要放置测试所使用的APP包

b)基础视图模块(Baseview)

  该模块封装了一个类baseview,该类封装最基本的方法,主要功能为:

       初始化driver

        基础方法封装

代码如下:

图2

c)公共模块

包含一个公共方法封装、driver驱动封装、测试用例执行前后的封装等

公共方法代码:

图3

driver方法代码:

图4

Unittest用例执行前后操作代码:

图5

d)业务逻辑模块(businessView)

所有被测APP的业务逻辑层全部放置在该模块中(目前只涉及登录模块的逻辑,所以只包含了登录的逻辑,其他模块可以依次按照逻辑新增逻辑层),代码如下:

图6

e)配置文件模块

测试所用到的日志配置文件、启动参数yaml文件等,我这边只配置了框架所需的两项,分别为log.conf以及启动参数配置

其中log.cof代码:

图7

启动参数配置:

图8

f)数据驱动模块

该模块只是针对一些测试数据的存放,目前的项目是以CSV的方式进行储存,所以获取CSV数据的方法放在的common方法中

g)日志储存模块

主要存放每次运行测试所产生的日志信息

h)自动化测试报告模块

主要存放每次运行测试之后产生的自动化测试报告文件

i)screenshots截图模块

主要存放错误截图以及重要模块截图文件等

j)测试用例模块

存放测试用例的模块,用于整个测试用例的编辑,代码如下:

图9

k)测试入口

用于执行自动化测试用例,该模块涵盖了测试报告的指定目录、自动化测试用例的执行入口、以及配置测试报告等,代码如下:

图10


备注:

目前还没做持续集成,还在完善框架当中,完善框架所用到的方法,完善其他模块的业务逻辑以及测试用例,还是觉得测试场景是自动化测试的关键,未完待续.........

你可能感兴趣的:(Appium+python+unittest自动化框架设计)