随着Deepseek API+Python 测试用例一键生成与导出 V1.0.5的试用不断深入,在处理需求文档内容时,会出现由于文档内容过长导致大模型返回的用例远达不到我们的期望数量;另一方面,是接口文档的读取,如果接口数量过多,也会出现这种清空,所以,我们引入了分块策略,将内容分块后多次请求大模型,并将大模型返回的结果进行整合。主要优化点是支持从 docx、yml、json 和 excel 文档中提取内容,采用合理的分块策略,确保大模型返回结果更完整可靠,同时支持导出为 json 或 excel 文件。这款工具将赋能测试工程师,让测试用例生成更智能、更高效!
V1.0.6在群友的试用反馈中,也一并修复了两个缺陷。
- 文本标题为空时,未对预览内容进行分块
- 当json格式的接口数据尺寸大于分块尺寸时,第一段数据将会是空值
感谢群友的反馈~~
支持的python环境是python 3.12
具体可参考Deepseek API+Python测试用例一键生成与导出 V1.05(支持读取json及yml,环境及库安装保姆级指南)
工具使用阿里云百炼api-key,具体可参考结合pageassist与阿里百炼api实现deepseek-r1联网搜索功能
整体布局如下图所示:
一、工具核心功能概览
1.1 支持多种文档类型
工具支持以下文档类型,满足不同场景下的测试需求:
- docx 文档:从需求文档中提取指定标题内容,进行分块处理后生成功能测试用例。
- excel 文档:从接口文档中提取接口定义,基于内容进行分块生成接口测试用例。
- json 文档:从接口文档中提取内容,合理分块后生成接口测试用例。
- yml 文档:针对接口文档,按接口定义分块生成测试用例。
1.2 分块策略
分块策略是本工具的核心亮点,针对不同文档类型采用不同的分块方式:
- 固定长度分块:将文本按固定长度切割,同时添加滑动窗口重叠,避免上下文丢失。
- 内容分块:按接口定义或段落内容分块,确保数据完整性。
1.3 测试用例导出
生成的测试用例不仅支持在工具内预览,还可导出为 json 或 excel 格式,便于后续管理和使用。
二、分块策略详解与代码实现
2.1 docx 文档分块策略
针对 docx 文档,采用 固定长度+滑块重叠 的分块策略,确保大模型生成的功能测试用例上下文完整。 支持输入文档的文本标题提取有效内容。如下图所示。
代码实现
def chunk_text(self, text, chunk_size=1000, overlap=200):"""将文本按固定长度分块,同时添加滑动窗口重叠。适用于功能测试用例生成。参数:- text (str): 输入的长文本内容- chunk_size (int): 每块的最大字符数- overlap (int): 相邻块的重叠字符数返回:- list: 分块后的文本列表"""print("开始对docx文档进行分块")chunks = []start = 0text_length = len(text)while start < text_length:end = min(start + chunk_size, text_length)chunk = text<