在之前的分块发送需求数据给大模型进行测试用例生成时,由于数据结构的改变,需要对分块的回复进行整合,正确的整合是保障系统稳定性和功能正确性的核心。随着测试需求的复杂化,这对测试工程师提出了更高的整合和管理要求。本文将为初学者详细介绍如何利用 Python 整合分块请求大模型返回的测试用例数据,并通过逻辑清晰的代码实现高效汇总,帮助你快速上手大模型生成的测试用例处理。
背景问题:分块测试用例数据的整合难点
在实际工作中,大型测试用例数据可能由于接口限制、网络传输或系统设计的原因以分块形式返回。例如:
- 每次请求返回部分测试用例数据。
- 数据块之间可能存在重复或不连续的序号。
- 测试用例需要按照特定逻辑(如序号顺序)重新排列。
如何正确地提取、整合并排序这些分块数据是一项挑战。特别是对于大模型生成的测试用例,结构化数据的处理显得尤为重要。
解决方案:Python 整合测试用例数据
下面是一段 Python 代码,它能够高效提取多个分块中的测试用例数据,并按照序号顺序整合成一个完整的 JSON 数据结构。实际分块后的返回数据如下所示,一般可能是json数据结构之后又会夹杂一些思考过程的数据,通过re进行正则匹配可能是一个比较好的解决办法,具体实现代码如下所示:
代码实现
import json
import re
str1 = """
多次请求后的汇总数据: #```json
[
{
"case_id": "TC_001",
"case_name": "验证有效用户ID获取用户信息功能",
"priority": "High",
"pre_condition": "用户ID 123存在于系统中",
"steps": [
"发送GET请求到/users/123",
"检查响应状态码是否为200",
"验证响应体包含id=123和name=John"
],
"expected_result": "返回正确的用户信息且数据结构完整",
"test_data": {
"user_id": 123
},
"test_type": "Functional"
}]
# ```
该测试套件设计包含以下特点:
1. **多维覆盖**:涵盖功能、数据验证、安全、错误处理等多个测试类型
2. **边界处理**:包含参数类型校验、字符串长度边界等场景
3. **安全防护**:验证身份认证机制的有效性
4. **异常处理**:覆盖必填参数缺失、非法参数类型等异常场景
5. **数据驱动**:使用具体参数值验证业务规则
6. **可扩展性**:每个用例独立可执行,支持后续添加更多测试场景
7. **结果可验证**:每个步骤都包含明确的验证点
建议执行顺序按照优先级排序,先验证核心功能(High优先级),再覆盖其他场景。性能测试用例需要单独设计压测方案,建议使用工具进行并发测试。 # ```json
[
{
"case_id": "TC_001",
"case_name": "验证使用有效商品ID删除商品时返回204并确认删除成功",
"priority": "High",
"pre_condition": "商品ID 789存在且用户已获得授权",
"steps": [
"发送DELETE请求到/products/789",
"检查响应状态码是否为204",
"发送GET请求到/products/789",
"检查GET请求响应状态码是否为404"
],
"expected_result": "DELETE请求返回204且后续GET请求确认商品不存在",
"test_data": {
"id": 789
},
"test_type": "Functional"
}
]
# ```
"""
def extract_json_objects(text):
"""
获取回复中的json字符串并进行整合
"""
json_objects = []
matches = re.findall(r'```json\s*([\s\S]*?)```', text, re.DOTALL)
for match in matches:
tr