求指教pytest+yaml接口自动化参数提取并替换参数问题:
如图所示,接口返回的json数据是多层嵌套
图片中的参数已经提取成功,在下个接口中进行替换时不知该如何使用这个参数
提取表达式:$.data.settlementData[0].settlementDetailWorkIds[0],可以成功提取到参数
在使用的时候如何替换
求指教pytest+yaml接口自动化参数提取并替换参数问题:
如图所示,接口返回的json数据是多层嵌套
图片中的参数已经提取成功,在下个接口中进行替换时不知该如何使用这个参数
提取表达式:$.data.settlementData[0].settlementDetailWorkIds[0],可以成功提取到参数
在使用的时候如何替换
该回答引用GPTᴼᴾᴱᴺᴬᴵ
根据您的描述,提取表达式 $.data.settlementData[0].settlementDetailWorkIds[0] 已经成功提取了 settlementDetailWorkIds 的值,该值为 132。
接下来,在接口请求中使用该值进行参数替换,可以按照以下步骤进行:
1.在 Pytest 测试用例中,先使用 PyYAML 库读取 YAML 文件中的参数,并将提取的值添加到参数池中,例如:
import yaml
def test_my_api():
with open("data.yaml", "r") as f:
data = yaml.safe_load(f)
extracted_value = 132
data["detailworkIds"] = extracted_value
# 将提取的值添加到参数池中
# 发送接口请求并进行断言
2.在接口请求的数据部分,使用字符串格式化或 f-string 等方式,将参数池中的值进行替换,例如:
import requests
def test_my_api():
with open("data.yaml", "r") as f:
data = yaml.safe_load(f)
extracted_value = 132
data["detailworkIds"] = extracted_value
response = requests.post(
url="http://example.com/my_api",
json={
"mobile": data["mobile"],
"settlementData": {
"settlementDetailId": data["detailId"],
"settlementDetailWorkIds": [data["detailworkIds"]],
"settlementDetailIds": data["detailIds"],
"settlementId": data["settlementId"],
"smsCode": data["smsCode"]
}
}
)
assert response.status_code == 200
在上述代码中,使用 data["detailworkIds"] 来代表提取的值,将它添加到请求数据的 settlementDetailWorkIds 字段中,这样就完成了参数的替换。
希望这些代码可以帮助您解决问题!