一、核心流程:基于ChatGPT的用例生成
-
收集接口信息
- 从接口文档中提取关键参数:请求URL、方法、参数类型(如query、header、body)、返回状态码、响应数据结构等。
- 明确测试目标:覆盖正常功能、边界条件、异常输入等场景。
-
输入接口信息至AI模型
- 使用自然语言描述接口功能及测试需求,例如:
"生成POST /api/login接口的测试用例,需包含用户名/密码为空、错误密码、成功登录等场景,验证响应状态码和返回字段。"
- 提供示例请求和预期响应,帮助模型理解业务逻辑。
- 使用自然语言描述接口功能及测试需求,例如:
-
生成初始测试用例
- AI通过分析接口定义和测试需求,自动生成结构化测试用例,通常包含:
- 用例名称、请求参数、预期结果、优先级等字段。
- 示例:
Test Case 1: 用户名密码为空 - 请求参数:{"username": "", "password": ""} - 预期响应:400 Bad Request,提示"用户名或密码不能为空"
- AI通过分析接口定义和测试需求,自动生成结构化测试用例,通常包含:
-
评审与迭代优化
- 人工检查用例是否覆盖所有场景,补充遗漏点(如权限验证、性能指标)。
- 反馈给AI模型进行迭代,例如:
"补充Token过期场景的测试用例,验证接口返回401状态码。"
二、工具辅助生成:Postman与AI结合
-
录制接口操作
- 使用Postman录制真实请求,自动生成基础测试脚本。
- 步骤:
- 创建请求集合,启用录制模式,发送请求并保存。
- 工具自动生成包含请求参数、断言的测试代码。
-
AI增强测试脚本
- 将录制的脚本输入AI模型,生成更复杂的测试逻辑:
- 参数化处理动态数据(如时间戳、随机数)。
- 添加异常处理逻辑(如重试机制、超时设置)。
- 将录制的脚本输入AI模型,生成更复杂的测试逻辑:
三、代码实现:调用OpenAI API生成测试用例
-
环境准备
- 安装依赖:
pip install openai requests pytest
- 配置OpenAI API密钥:
import openai openai.api_key = "your_api_key"
- 安装依赖:
-
定义生成函数
def generate_test_case(api_definition): prompt = f"根据以下接口定义生成测试用例:\n{api_definition}\n要求包含正向和逆向场景。" response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content
-
执行测试用例
- 集成到测试框架(如pytest)中:
import pytest import requests def test_login_api(): # 调用AI生成用例 api_def = "POST /api/login,参数username和password,成功返回200及token。" test_cases = generate_test_case(api_def) # 执行用例 for case in test_cases: response = requests.post(url, json=case["params"]) assert response.status_code == case["expected_status"] assert case["expected_data"] in response.json()
- 集成到测试框架(如pytest)中:
四、进阶技巧
-
加密接口处理
- 对加密响应进行解密后断言:
def decrypt_response(encrypted_data): # 调用解密库或服务 return json.loads(base64.b64decode(encrypted_data)) response = requests.get(url) decrypted = decrypt_response(response.content) assert decrypted["status"] == "success"
- 对加密响应进行解密后断言:
-
数据驱动测试
- 使用AI生成多组测试数据,结合参数化运行:
@pytest.mark.parametrize("input_data, expected", ai_generated_data) def test_boundary_conditions(input_data, expected): # 执行测试逻辑
- 使用AI生成多组测试数据,结合参数化运行:
五、注意事项
- 准确性验证:AI生成的用例需人工审核,避免逻辑错误。
- 动态更新:接口变更时,重新生成测试用例并同步更新。
- 成本控制:复杂场景可结合人工设计,平衡效率与质量。
通过以上步骤,测试人员可高效生成覆盖全面的接口测试用例,显著提升测试效率与覆盖率。