引言:接上一章接口联调测试脚本初练v1.0,可以看到接口1,2,3的结构都是一样的,只是数据不一样,所以可以对接口1,2,3做一个结构上的初步优化,将数据都提取出来。4和5因为有个参数的返回与输入,所以暂不包括进来。
目录
优化任务:
将接口1,2,3进行结构的初步优化
脚本实现:
# 对多个接口组成的联调测试的脚本进行结构优化 import requests # 定义一个接口联调的测试类 class Workflow_Forgetpassword_Test_v2(): def userinterface_test(self, url, userinfo, expected_result, interfacename): response = requests.post(url, data=userinfo).text print(response) r = response.find(expected_result) if r > 0: print(interfacename, "测试通过") else: print(interfacename, "测试失败") if __name__ == '__main__': workflowobj2 = Workflow_Forgetpassword_Test_v2() ########################注册接口测试数据及调用################################### url = "http://localhost:8080/jwshoplogin/user/register.do" # 正确的用户注册数据 userinfo = {"username": "刘婷3", "password": "123456", "email": "liuting3@qq.com", "phone": "13311111111", "question": "喜欢吃的水果", "answer": "香蕉"} expected_result = "注册成功" interfacename = "用户注册接口" workflowobj2.userinterface_test(url, userinfo, expected_result, interfacename) ########################登录接口测试数据及调用#################################### url = "http://localhost:8080/jwshoplogin/user/login.do" # 正确的用户登录数据 userinfo = {"username": "刘婷3", "password": "123456"} expected_result = "登录成功" interfacename = "用户登录接口" workflowobj2.userinterface_test(url, userinfo, expected_result, interfacename) ########################忘记密码接口测试数据及调用################################## url = "http://localhost:8080/jwshoplogin/user/forget_get_question.do" # 忘记密码对应的用户 userinfo = {"username": "刘婷3"} expected_result = "喜欢吃的水果" interfacename = "忘记密码接口" workflowobj2.userinterface_test(url, userinfo, expected_result, interfacename)
脚本结构优化分析:
脚本结构化的价值:最大程度上提高了测试脚本的复用
- 降低了测试脚本的维护成本
- 只需要不断的追加或替换相关的测试数据即可
- 方便后续接口测试工作的扩展以及测试执行
如何进行接口测试脚本结构优化:
- 首先优化测试脚本类的设计
- 对应的接口测试方法需要传入参数
- 接口访问地址
- 接口参数---字典数据
- 接口预期返回结果
- 接口名称
- 在进行类的实例化的时候,再依据接口测试说明传入相关的参数值。
适用范围
- 适合于接口测试不需要返回值,也不需要特殊参数时
- 接口请求方式是一致的----比如post。