如何在Python测试用例中校验API响应体内容?
校验PowerShell脚本响应体内容的实现方法
因为API返回的是PowerShell脚本(纯文本格式),直接通过响应的text属性获取内容,再用断言检查是否包含目标值即可,具体步骤如下:
1. 获取响应体文本
调用response_target_api.text获取返回的PowerShell脚本内容,这个属性会把响应体直接转换成字符串格式。
2. 定义预期的修改后的值
明确你要校验的目标内容,比如假设修改后需要确认的配置是$remoteUrl = "https://new.example.com",就把这个字符串设为预期值。
3. 添加内容校验断言
用Python的assert语句检查预期值是否存在于响应文本中,同时可以添加错误提示信息,方便后续调试定位问题。
修改后的完整测试代码
def test_get_script_remotes_auth(): headers = {"Authorization": token, "Accept": "*/*"} # GET请求通常无需payload,可移除无用的payload代码 response_target_api = requests.request("GET", url, headers=headers) # 校验状态码 assert response_target_api.status_code == 200 # 获取响应的PowerShell脚本内容 script_content = response_target_api.text # 定义需要校验的修改后的值 expected_modified_value = "$remoteUrl = 'https://updated.example.com'" # 校验响应体是否包含预期值 assert expected_modified_value in script_content, f"PowerShell脚本中未找到预期修改值: {expected_modified_value}"
进阶校验场景
- 忽略大小写检查:如果不需要严格区分大小写,可转换为统一大小写后校验:
assert expected_modified_value.lower() in script_content.lower(), "未找到预期值(忽略大小写)" - 精确匹配某一行:如果需要确认某一行完全符合预期,可按行拆分后检查:
script_lines = script_content.splitlines() assert expected_modified_value in script_lines, "目标行未完全匹配" - 复杂内容匹配:如果要匹配带变量或格式规则的内容,可使用
re模块实现正则匹配:import re # 匹配类似$remoteUrl = "任意HTTPS URL"的行 pattern = r'\$remoteUrl = "https://.*"' assert re.search(pattern, script_content), "未匹配到符合格式的远程URL配置"
内容的提问来源于stack exchange,提问作者Sumanth Shetty
相关产品推荐
相关产品推荐

