做接口自动化,主要使用两个库,
- requests 主要用来模拟发送请求
- pytest 主要用来维护自动化测试用例。
安装
打开【File】—【Settings】

安装
参考文档:https://docs.pytest.org/en/6.2.x/
基本使用
test_demo.py
def inc(x):return x+1# pytest 在运行的时候会自动的将 test_ 开头的函数当作测试用例来执行def test_01():# 添加断言assert inc(3) == 4
在命令行中 运行
pytest test_demo.py

编写接口测试用例
test_demo.py
import requestsimport randomdef get_Phone():phone = random.randint(13000000000,13999999999)return phonedef test_register():# 设置请求地址u = "http://49.233.108.117:28019/api/v1/user/register"# 请求的bodybody = {"loginName": get_Phone(),"password": "123456"}# 发送post请求, post请求使用json格式,json(固定的)r = requests.post(u,json=body)# 添加断言assert r.status_code == 200# 对服务器返回的结果添加断言print(r.json())assert r.json()["resultCode"] == 200assert r.json()["message"] == 'SUCCESS'
执行的使用 添加 ‘-s -v ‘参数
pytest test_demo.py -s -v

添加登录操作。
import requestsimport randomdef get_Phone():phone = random.randint(13000000000,13999999999)return phone# 设置手机号phone = get_Phone()def test_register():# 设置请求地址u = "http://49.233.108.117:28019/api/v1/user/register"# 请求的bodybody = {"loginName": phone,"password": "123456"}print(f'使用数据 {body} 进行注册')# 发送post请求, post请求使用json格式,json(固定的)r = requests.post(u,json=body)# 添加断言assert r.status_code == 200# 对服务器返回的结果添加断言print(r.json())assert r.json()["resultCode"] == 200assert r.json()["message"] == 'SUCCESS'def test_login():url= "http://49.233.108.117:28019/api/v1/user/login"body = {"loginName": phone,"passwordMd5": "E10ADC3949BA59ABBE56E057F20F883E"}print(f'使用数据 {body} 进行登录')r = requests.post(url,json=body)print(r.json())assert r.status_code == 200assert r.json()['resultCode'] == 200assert r.json()['message'] == 'SUCCESS'
总结
使用 pytest 单元测试框架的时候,编写自动化测试用例,需要注意:
- 函数名必须以
test_开头。如果没有运行的时候不会被当作自动化用例。 - 执行的时候使用 pytest 命令执行。
- 如果需要在运行的时候打印输出代码中的print信息。添加
-s -v参数- -s 表示打印输出代码中的print语句。
- -v 表示显示详细日志。
