什么是接口自动化测试:使用工具或代码代替人对接口进行测试
测试项目结构(python包)
1、接口api包 2、script:业务脚本 3、data:数据 4、config.py :配置文件 5、reporter:报告
错误问题:
1、未打印任何东西。添加pip install pytest
2、setup,teardown的问题
关于pytest使用setUp/tearDown提示错误: AttributeError: ‘TestLogin‘ object has no attribute ‘login_api‘_attributeerror: 'testlogin' object has no attribut-CSDN博客
3、合同新增业务
- 封装接口类
- 获取验证码接口
- 获取验证码中的uuid,传递给data
- 登录接口(登录接口类的实现,实例化对象,调用登录接口类实现用户登录,(!!data参数中关于uuid的部分)
- 实现课程添加接口对象的封装和调用(如何实现课程添加接口对登录接口的依赖)
- 上传合同(上传合同接口的实现,实例化对象,调用实现合同上传(!!:文件如何上传))
- 新增合同(新增合同接口的实现,实例化对象,调用接口实现合同新增)
4、登录单接口实现
- pytest的使用,setup(前置),teardown(后置)
- setup:登录接口实例化,验证码的获取,json数据中uuid的获取
- 断言方法的掌握
assert 200 == response.status_codeassert "错误" in response.textassert 500 == response.json().get('code')
- 错误调试
response = self.loginapi.post_login(test_data)
- 测试数据参数化:导包,准备数据文件,在测试方法上面引用数据文件
import pytest
test_data =[('admin', 'HM_2023_test', 200, '成功', 200),(" ", '123456',200,"失败", 500),("jack666","123456",200,'错误',500),
]@pytest.mark.parametrize("username,password,status,message,code",test_data)def test01_login_success(self,username,password,status,message,code):test_data = {"username": username,"password": password,"code": "2",# 获得uuid的方法"uuid":TestLoginAPI.uuid}response = self.loginapi.post_login(test_data)assert status == response.status_codeassert message in response.textassert code ==response.json().get('code')
- 数据驱动:以测试数据驱动脚本执行,维护焦点从脚本转向测试数据文件