背景介绍
在开发API接口时,验证请求和响应内容是确保系统安全性和可用性的关键环节。本项目旨在为测试人员提供一个简易的网络接口测试工具,支持接收JSON格式的请求数据,并验证响应内容,输出包含HTTP状态码和响应内容的文本。无需依赖复杂框架即可在本地环境运行,同时提供文件读写示例,便于测试数据的模拟和验证。
思路分析
- 输入处理
输入为JSON格式,需将其解析为Python对象,例如:data = json.loads("{'name': '张三', 'age': 25}") - 状态码验证
- 使用简单的人工智能逻辑,仅验证状态码是否为200,可避免复杂框架的开销。
- 例如:
python
try:
response = requests.get("http://test-api.com", params=data)
if response.status_code == 200:
print("HTTP Status Code: 200 OK")
else:
print("HTTP Status Code: 500 Internal Server Error")
except Exception as e:
print(f"请求失败: {str(e)}")
- 响应内容验证
- 检查响应内容是否符合预期的JSON结构,例如:
python
response_content = response.json()
if "name" in response_content and "age" in response_content:
print("Response Content: {} {}".format(response_content['name'], response_content['age']))
else:
print("验证失败: 响应内容不包含预期值")
- 检查响应内容是否符合预期的JSON结构,例如:
- 文件读写模拟
- 模拟读取测试数据文件,例如:
python
import json
test_data_file = "test_data.json"
with open(test_data_file, "r") as f:
data = json.load(f)
- 模拟读取测试数据文件,例如:
代码实现
import json
import requests
def validate_api_test_tool():
try:
# 1. 读取测试数据
test_data_file_path = "test_data.json"
with open(test_data_file_path, "r") as f:
test_data = json.load(f)
# 2. 发起HTTP请求,验证状态码
url = "http://test-api.com"
params = {"name": test_data["name"], "age": test_data["age"]}
response = requests.get(url, params=params)
# 3. 验证状态码
status_code = response.status_code
if status_code == 200:
print("HTTP Status Code: 200 OK")
else:
print(f"HTTP Status Code: {status_code}")
# 4. 检查响应内容
response_content = response.json()
if "name" in response_content and "age" in response_content:
print("Response Content: {} {}".format(response_content['name'], response_content['age']))
else:
print("验证失败: 响应内容不包含预期值")
except Exception as e:
print(f"请求失败: {str(e)}")
if __name__ == "__main__":
validate_api_test_tool()
总结
本实现通过简单的HTTP请求验证,验证JSON请求和响应内容,确保接口的正确性和可用性。代码可直接在本地运行,无需依赖复杂框架,适用于测试API接口的请求与响应逻辑。通过文件读写模拟测试数据,增强了系统的健壮性和可扩展性。