随着Deepseek API+Python 测试用例一键生成与导出 V1.0.6的试用不断深入,会出现程序异常崩溃的问题。经群友定位,紧急修复了bug,并适当优化部分体验性问题。针对生成的测试用例xlsx文档,可以再次选中该xlsx给大模型进行推理生成新的用例,但是会产生幻觉,此处需考虑优化处理方法。bug列表如下:
- generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出
- 当json格式的接口数据尺寸大于分块尺寸时,第2段把第1段的文档内容重复解析输出了
- 部分群友使用体验优化,打印输出内容优化
感谢群友的反馈~~
支持的python环境是python 3.12
具体可参考Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)
工具使用阿里云百炼api-key,具体可参考结合pageassist与阿里百炼api实现deepseek-r1联网搜索功能
若提示401,则可能是因为api-key未替换
整体布局如下图所示:
一、工具核心功能概览
1.1 支持读取多种文档类型
工具支持以下文档类型,满足不同场景下的测试需求:
- docx 文档:从需求文档中提取指定标题内容,进行分块处理后生成功能测试用例。
- excel 文档:从接口文档中提取接口定义,基于内容进行分块生成接口测试用例。
- json 文档:从接口文档中提取内容,合理分块后生成接口测试用例。
- yml 文档:针对接口文档,按接口定义分块生成测试用例。
- md 文档:读取md文档内容,进行功能测试用例生成。
1.2 分块策略
分块策略是本工具的核心亮点,针对不同文档类型采用不同的分块方式:
- 固定长度分块:将文本按固定长度切割,同时添加滑动窗口重叠,避免上下文丢失。
- 内容分块:按接口定义或段落内容分块,确保数据完整性。
1.3 测试用例导出
生成的测试用例不仅支持在工具内预览,还可导出为 json 或 excel 格式,便于后续管理和使用。
二、BUG修复代码详情
2.1 json文档分块策略
针对 json 文件,当json格式的接口数据尺寸大于分块尺寸时,第2段把第1段的文档内容重复解析输出。
代码实现
def chunk_json(self, content, max_chunk_size=1000):
"""
将 .json 接口文档按接口定义分块,确保接口数据完整。
参数:
- file_path (str): .json 文件路径
- max_chunk_size (int): 每个分块的最大字符数
返回:
- list: 分块后的接口定义列表
"""
# with open(file_path, 'r', encoding='utf-8') as file:
# data = json.load(file)
print("开始对json或yml文件进行分块~~")
chunks = []
current_chunk = ""
current_size = 0
for n, interface in enumerate(content):
interface_content = json.dumps(interface, indent=2, ensure_ascii=False)
interface_size = len(interface_content)
if current_size + interface_size > max_chunk_size:
if n == 0: # bug修复,当json对象列表的第一个元素尺寸就大于最大分隔尺寸时,则将第一个元素添加到分块列表中
chunks.append(interface_content)
else:
chunks.append(current_chunk)
current_chunk = interface_content
current_size = interface_size
n += 1 # 修复第2段把第1段的文档内容重复解析输出了
else:
current_chunk += "\n" + interface_content
current_size += interface_size
n += 1 # 修复第2段把第1段的文档内容重复解析输出了
if current_chunk:
chunks.append(current_chunk)
return chunks
代码注释
- 针对 JSON 列表内容逐个分块。
- 修复第2段把第1段的文档内容重复解析输出。
2.2 generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出
generate_report方法中将chunk_text错误拼写为chuntext,程序会异常退出。
代码实现
def generate_report(self):
""" 生成分析报告 """
if not self.prompt_input.toPlainText().strip():
QMessageBox.warning(self, "提示", "请输入提示词!")
return
context = self.preview_area.toPlainText()
if not self.context and context:
# 如果没有分块,则在此对预览框中的文本进行分块
# chuntext修改为chunk_text
self.context = self.chunk_text(context)
if not context:
QMessageBox.warning(self, "提示", "内容预览框中无数据,请求大模型终止!")
return
代码注释
- self.context = self.chuntext(context)修改为self.context = self.chunk_text(context)
三、工具优势
- 智能分块策略:针对不同文档类型采用最优分块方案,确保大模型生成结果完整可靠。
- 多文档支持:支持 docx、yml、json 和 excel 等多种文档类型,满足多场景需求。
- 高效导出:生成的测试用例支持一键导出为 json 或 excel 格式,便于后续管理。
- 贴心细节优化:如滑动窗口处理、首块 bug 修复等,确保工具稳定性和精准性。
四、总结
通过对文档进行智能分块处理,结合大模型生成测试用例的能力,大幅提升测试效率和用例质量。无论是功能测试还是接口测试,这款工具都能为测试工程师提供强大支持,助力实现测试工作的智能化升级!针对已经生成的测试用例,如何结合需求文档再次传递给大模型进行用例覆盖率分析,将作为下一个突破口。agent似乎也可以安排上了。
快来试试这款工具,让测试用例生成变得轻松高效吧!源码已上传~继续coding,支持json输出为md格式文档。
往期迭代文章:
Deepseek API+Python 测试用例一键生成与导出 V1.0.6(加入分块策略,返回更完整可靠)
Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)
Deepseek API+Python 测试用例一键生成与导出 V1.0.4 (接口文档生成接口测试用例保姆级教程)
Deepseek API+Python 测试用例一键生成与导出 V1.0.3
Deepseek API+Python测试用例一键生成与导出-V1.0.2
Deepseek API+Python测试用例一键生成与导出-V1.0.1
Deepseek API+Python测试用例一键生成与导出-V1
Deepseek API+Python测试用例一键生成与导出