一、Page object 简称POM框架
1.POM提供了一种在UI层操作、业务流程与验证分离的模式,这使得测试代码变得更加清晰和高可读性
2.对象库与用例分离,使得我们更好的复用对象,甚至能与不同的工具进行深度结合应用
3.可复用的页面方法代码会变得更加优化
4.更加有效的命名方式使得我们更加清晰的知道方法所操作的UI元素。例如我们要回到首页,方法名命名为: gotoHomePage(),通过方法名即可清晰的知道具体的功能实现。
二、基于Page object模式,用的是unittest框架,思路如下:
1.config 目录(比方说数据库配置、项目路径、测试报告和邮箱配置)
2.Data:测试数据。后期准备把代码中会所有测试数据都整合到excel或者xml内,Data文件夹就是这个用处
3.PO:所有Page。以Base页面为基础(看下图分析,来理解PO)
4.Public:一些公共的方法,比如测试报告脚本,封装好的
5.Result:测试结果,包括测试报告和截图
6.TestCase:测试用例都放这儿
7.run_case:测试套件,利用HTMLTestRunner.py,输出测试报告到/Result下
- Python自带的assertEqual断言 status和messgae
- Python截图 screenname
- 安装重要的库 requests
三、实战思路及代码如下:
1、代码目录结构
![](https://img.haomeiwen.com/i2591421/7d2b8d4994c82b1d.jpg)
2、封装公共调用的代码,如请求头
![](https://img.haomeiwen.com/i2591421/6530c7e69615eec9.jpg)
3、接口用例代码参考,分正向和反向测试用例
![](https://img.haomeiwen.com/i2591421/2abc8324a14fc0f1.jpg)
4、Python接口自动化需要对接口返回的Json文件,进行断言判断是否正确,但是Json文件有时包含多级嵌套,该如何断言???
a、例如图1 对返回的Json文件,3级目录包含"name":"金币赠送-1元"进行断言
b、例如图2 对返回的Json文件,5级目录包含""awardsName":"钻石","进行断言
![](https://img.haomeiwen.com/i2591421/413690c2add5d9f6.jpg)
![](https://img.haomeiwen.com/i2591421/ce36c5f5f0005fc8.jpg)
5、使用unittest框架搭建自动发送邮件、自动执行测试用例脚本
![](https://img.haomeiwen.com/i2591421/9b9505f9b2d7f563.jpg)
6、在收到的邮件中查看接口测试报告
![](https://img.haomeiwen.com/i2591421/4e4d18207d3d8702.jpg)
![](https://img.haomeiwen.com/i2591421/550b5d15494f6f71.png)
网友评论