python 接口自动化测试_基于python的接口自动化测试框架

此框架采用 Python3.7+unittest+requests+HTMLTestRunner搭建。

f84acc01085caa460f9d78d394cd68c9.png

一、目录文件介绍:

requestSample          ——项目名称

Public     ——存放公共方法的文件夹

Config.ini                  ——存放数据库、邮箱的配置

Email.py                   ——连接邮箱的方法以及邮件内容

ExtentHTMLTestRunner.py    ——测试报告

HTMLTestReportCN.py        ——测试报告(目前引用该报告的样式)

log.py                     ——将日志输出到控制台和报告中

readConfig.py               ——此文件用于读取ini格式的文件

request.py                 ——定义接口的方法

script.py                   ——校验返回值和sql

sqldb.py                   ——读取数据库配置连接数据库

suit.py                     ——用例重跑机制

Report     ——存放测试报告的文件夹

Static      ——存放js、css

Testcase    ——存放测试用例文件

main.py    主运行文件

二、框架使用步骤:

确保自己已有Python3的环境

修改Config.ini:

[db]中,从上到下依次为端口、用户名、ip、密码、数据库名称

使用方法:

如果需要用到SQL语句辅助,将[db]中的配置改为实际数据库信息

[email]中,从上到下依次为:发送邮件开关、邮箱域名、邮箱端口号、登陆邮箱的用户名、邮箱授权码、发送者邮箱、接收者邮箱

使用方法:

如果此次测试不需要发送邮箱,则将“switch=0”改为“switch=1”

最后接收者的邮箱,如果需要多个,则用英文逗号隔开。

用例编写格式:

在testcase目录下新建py文件,命名格式为:demoXX:

多条用例可写入一个py文件中,用#注释方便维护和寻找

4bfc8ced9baf370f69e3e70078f4b476.png

用例格式参照已有用例文件的格式,

Header:{“content-type”:“application/json;charset=utf-8”}

可以改为实际请求头的方式

Params:请求参数,多个参数用英文逗号隔开,

Sql:如果不需要sql语句,则为None,如果需要,写法为:

“sql”:[{“sqlStatement”:”select * from XXXXXX;”,”is_select”:False/True}]

如果需要多条sql需要在后面添加:

“sql”:[{“sqlStatement”:”select * from XXXXXX;”,”is_select”:False/True,”poistion”:数字}]

Is_select:False/True  代表是否为查询语句,也可以is_update:False/True

“poistion”:数字  从0开始,代表执行顺序

Asserts:断言

断言格式为

”[“code”:”200”]”,”[“message”:”XXX”]”

因为有遍历的地方,调用script中assertWay方法,实现字典遍历。

用例文件中调用方法介绍:

dd05fc2722cca8900b182d2b5146d321.png

测试用例类、继承TestCase类来实现具体的测试用例

调用script中echo输出函数

5cfbdb2ea31a1a8a3f3b3d56083f54e1.png

SetUP:用例运行前的初始化工作,每个用例运行之前运行,此框架中主要用于在执行用例前做参数赋值、数据库执行等

Teardown:测试后的清除工作,比如数据库的还原恢复。

def testpostcase:每次执行用例时,unittest.TestCase的类下每个test开头的方法(就是用例)时,都会执行setUp和tearDown

调用了script.py中echo方法和request.py文件中HTTP封装接口的方法

carrySql:调用script.py中断言sql、执行sql的方法

assertWay:调用script.py中断言返回值的方法

修改HTMLTestReportCN.py文件中第169行代码中测试人员的名称,如果是多人测试,格式为’张三,李四’

主运行文件main.py介绍:

92c5168a526c0bdb5b5aba78e42176dc.png

该方法获取邮箱的配置以及报告命名格式

73673f5725281301737822c50ce2335a.png

该处进行重跑机制的重构,调用suit.py中的Suit方法。

如果需要用例失败后自动重新执行,则将failcount=0改为需要重跑的次数

Case_dir获取用例存放目录的路径

如果需要执行testcase目录下的全部demo文件,则将

pattern=“demoCase1.py”改为pattern=“*.py”

如果需要执行单个文件,则改为执行文件的名称

最后右键main.py文件,点击run执行即可:

685d31a1f23ae3ddcedbef6edb666596.png

报告样式引用:

引用ExtentHTMLTestRunner.py生成的测试报告样式为:

48ccc3e891d6a7f842514f9634dccc65.png

引用HTMLTestReportCN.py生成的测试报告样式为:

3afc21df41993e6daf3ecec2f8cb3468.png

可在main.py文件中第二行代码修改

如果需要引用ExtentHTMLTestRunner.py,则改为:

from pubilc.ExtentHTMLTestRunner import HTMLTestRunner

接口测试框架的优势:

  • 接口测试工具的测试数据不可控制,比如接口返回数据不可控,就无法自动断言接口返回的数据,不能断定是接口程序引起,还是测试数据变化引起的错误,所以需要做一些初始化测试数据。接口工具没有具备初始化测试数据功能,无法做到真正的接口测试自动化。

  • 扩展能力不足。开源的接口测试工具无法实现扩展功能。比如,我们想生成不同格式的测试报告,想将测试报告发送到指定邮箱,做持续集成定时任务。

  • 缩短时间,提高测试效率。

作者,测试三组,马逸飞

23d4bd45f2ad424397b4527415cf4e5b.png

fbfe66f17e2931f9af079d240e3a39ae.gif

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
、 开发环境................................................................................................................................................................... 1 2、 大致流程................................................................................................................................................................... 2 3、 框架简介................................................................................................................................................................... 2 4、 运行结果展示 ........................................................................................................................................................... 3 5、 文件与配置............................................................................................................................................................... 3 6、 测试接口样例 ........................................................................................................................................................... 4  1.登陆接口................................................................................................................................................................... 4  2.支付密码更改接口 ................................................................................................................................................... 6 7、 数据库设计............................................................................................................................................................... 7 8、 测试用例、测试数据准备 ....................................................................................................................................... 8 9、 模块与类、函数设计 ............................................................................................................................................. 10 10、 代码实现............................................................................................................................................................. 10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值