软件测试干货:接口测试框架开发(下)

Posted weixin_43802541

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试干货:接口测试框架开发(下)相关的知识,希望对你有一定的参考价值。

 

4.3 接口测试用例开发

 

 

目录: 

  1. 4.3.1 用例结构

  2. 4.3.2 导包

  3. 4.3.3 前置条件

  4. 4.3.4 编写测试方法

  5. 4.3.5 后置处理

 

以项目中的添加学生接口为例,尝试编写一个接口的测试用例: 

 

添加学生接口文档:

 

图片

 

在编写响应接口测试用例时,最好用Navicat查看对应数据库的 demo_course 和demo_student两 个表 

 

4.3.1 用例结构 

 

整个用例类继承 unittest.TestCase 类,使用标准的unittest测试用例结构:前置条件 setUp(self) ,测试方法 test_xxx(self) 和后置处理 teardown(self) 

 

unittest.TestCase 类的运行不需要再写调试运行的语句: if __name__ == "__main__:" 

 

对应接口文档的6个状态码,准备编写6个对应测试方法

 

图片

图片

图片

图片

 

4.3.2 导包

 

导入操作所需要的模块 

 

这个用例中没有用到time模块,可以不导入

 

图片

 

4.3.3 前置条件

 

这里使用了整个用例类执行一次的前置条件 setUpClass(cls) ,用于整个用例所有方法执行前,清除 之前的数据并插入课程和学生数据

 

图片

 

注意类方法前都要加注释 @classmethod 

 

在每个测试方法前都会执行的 setUp(self) 里设置url

 

图片

 

4.3.4 编写测试方法

 

编写test_add_student_success方法 

 

测试增加学生成功 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10040和 信息 message ==增加学生成功

 

图片

 

编写test_add_student_with_null方法 

 

测试添加学生--参数错误:id、realname、phone、email某一项为空 准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10041和 信息 message ==参数错误:id、realname、phone、email为空

 

图片

 

编写test_add_student_course_id_notExist方法 

 

测试添加学生--id课程为空 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10042和 信息 message ==id课程为空

 

图片

图片

 

编写test_add_student_course_status_invalid方法 

 

测试添加学生--课程状态无效 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10043和 信息 message ==课程状态无效 

 

当添加学生的课程对应status值为0,表示课程未开始,无法添加成功

 

图片

 

编写test_add_student_outof_student_limit方法 

 

测试添加学生--课程人数已满 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10044和 信息 message ==课程人数已满

 

图片

图片

 

编写test_add_student_course_already_begin方法 

 

测试添加学生--课程已经开始 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10045和 信息 message ==课程已经开始 

 

要达到课程已经开始,要求添加学生的课程的start_time<=添加时间,添加时间为当前系统时间

 

图片

 

编写test_add_student_phone_already_exist方法

 

测试添加学生--手机号已存在 

 

准备测试数据data,发送请求,并使用unittest的 assertEqual 验证响应的状态码 status ==10046和 信息 message ==手机号已存在

 

图片

图片

 

4.3.5 后置处理 

 

这个用例 tearDown(self) 为空方法,没有做后置处理,可以根据需要在这个方法中编写清理环境、数 据、资源的代码 

 

4.4 批量运行和测试报告 

 

目录: 

  1. 4.4.1 准备工作

  2. 4.4.2 编写run.py

  3. 4.4.3 测试 报告

 

4.4.1 准备工作 

 

批量运行测试用例需要编写:项目/run.py 文件 

 

生成报告,需要一个 htmlTestRunner.py 文件,将 ..\\工具\\HTMLTestRunner.py 复制到 python安装目 录\\Lib 下,例如:C:\\Program Files\\Python38\\Lib

 

生成的报告会位于:项目/log/  

 

4.4.2 编写run.py

 

图片

图片

 

4.4.3 测试报告

 

查看项目/log/report.html,使用浏览器打开

 

图片

 

点击详细,可以看到具体信息:

 

图片

 

4.5 附件

 

4.5.1 添加学生的接口代码

 

图片

图片

图片

以上是关于软件测试干货:接口测试框架开发(下)的主要内容,如果未能解决你的问题,请参考以下文章

全网最详细的接口测试实战案例!建议收藏,干货满满

接口测试框架实战| JSON 请求与响应断言

测试实战干货:怎么根据接口文档写接口?

接口测试框架-Django开发post接口

干货文章一文带你了解软件测试必备技能!

Python接口测试实战3(下)- unittest测试框架