注册网站的流程,常用网页设计软件,大连line公司,上海上港微博微博在编写接口测试时#xff0c;如果有多个接口需要串联在一起调用#xff0c;并且这些接口共同构成了一个业务场景#xff0c;通常可以使用以下几种方法来组织代码#xff0c;使其更具可读性和维护性。以下是一些规范的建议#xff1a;
1. 使用 pytest 的 fixture 来管理接…
在编写接口测试时如果有多个接口需要串联在一起调用并且这些接口共同构成了一个业务场景通常可以使用以下几种方法来组织代码使其更具可读性和维护性。以下是一些规范的建议
1. 使用 pytest 的 fixture 来管理接口依赖
pytest 的 fixture 非常适合管理测试中的依赖关系。你可以为每个接口调用创建一个 fixture然后将这些 fixture 串联起来。
2. 使用函数或类来组织接口调用
为了使代码更具可读性和可维护性可以将每个接口的调用封装到函数中并在测试用例中按顺序调用这些函数。
#!/usr/bin/env python
import pytest
from src.utils.request_util import post
from logs.test import api_log# 假设有10个接口我们分别为每个接口定义一个调用函数def login():url logindata {username: 139ccc990002,password: 123cc6}res post(urlurl, datadata, infoFalse)api_log(infores, levelINFO)assert res.status_code 200, fLogin failed with status code {res.status_code}return res.json()def get_user_info(token):url getUserInfoheaders {Authorization: fBearer {token}}res post(urlurl, headersheaders, infoFalse)api_log(infores, levelINFO)assert res.status_code 200, fGet user info failed with status code {res.status_code}return res.json()def update_user_info(token, new_data):url updateUserInfoheaders {Authorization: fBearer {token}}res post(urlurl, headersheaders, datanew_data, infoFalse)api_log(infores, levelINFO)assert res.status_code 200, fUpdate user info failed with status code {res.status_code}return res.json()# 其他接口函数...# 场景测试假设场景是登录 - 获取用户信息 - 更新用户信息
def test_scenario():# Step 1: 登录获取 tokentoken_info login()token token_info.get(token)# Step 2: 使用 token 获取用户信息user_info get_user_info(token)user_id user_info.get(user_id)# Step 3: 更新用户信息new_data {user_id: user_id,new_field: new_value}update_result update_user_info(token, new_data)# 断言更新成功assert update_result.get(success), Update user info failed# 如果需要在多个场景中共享某些数据可以使用 pytest fixture
pytest.fixture
def token():# 登录获取 tokenreturn login().get(token)def test_get_user_info(token):# 使用 fixture 提供的 token 获取用户信息user_info get_user_info(token)assert user_info.get(user_id), User ID not found# 其他测试用例...if __name__ __main__:pytest.main([test_login.py])