
Deepseek API+Python 测试用例一键生成与导出 V1.0.5(支持读取json及yml文件,虚拟环境及库安装指导保姆级指南)
随着测试需求的复杂性增加,测试用例的设计和生成变得愈发重要。在Deepseek API+Python 测试用例生成工具在 V1.0.4 中进行了全方位的优化和功能扩展,特别是对接口测试用例设计的支持和接口文档的智能解析处理。基于群友的热心反馈,新增了一版优化,主要新增了对json及yml文件类型的接口文档进行了适配,帮助测试工程师高效完成接口测试用例的生成和导出。新增了对json及yml文件格式接
随着测试需求的复杂性增加,测试用例的设计和生成变得愈发重要。在Deepseek API+Python 测试用例生成工具在 V1.0.4 中进行了全方位的优化和功能扩展,特别是对接口测试用例设计的支持和接口文档的智能解析处理。基于群友的热心反馈,新增了一版优化,主要新增了对json及yml文件类型的接口文档进行了适配,帮助测试工程师高效完成接口测试用例的生成和导出。
1. 优化json 文档处理功能
1.1 Excel 文档解析为 Markdown 格式
新增了对json及yml文件格式接口文档的智能处理功能。工具会自动解析文件内容,便于在 PyQt5 的 QTextEdit()
内容预览框中展示。
实现代码
以下是读取json及yml文件的代码:
elif file_path.endswith('.json'):
with open(file_path, 'r', encoding='utf-8') as f:
return json.load(f)
elif file_path.endswith('.yaml') or file_path.endswith('.yml'):
with open(file_path, 'r', encoding='utf-8') as f:
return yaml.safe_load(f)
代码说明:
文件扩展名判断:
* file_path.endswith('.json')
: 检查 file_path
变量所指向的文件路径是否以 .json
结尾。如果是,则执行 JSON 文件的读取和解析操作。
* file_path.endswith('.yaml') or file_path.endswith('.yml')
: 检查 file_path
是否以 .yaml
或 .yml
结尾。这两种扩展名通常用于 YAML 文件。如果满足条件,则执行 YAML 文件的读取和解析。
JSON 文件处理:
* with open(file_path, 'r', encoding='utf-8') as f:
: 使用 open()
函数以只读模式 ('r'
) 打开文件。encoding='utf-8'
确保以 UTF-8 编码读取文件,这对于处理包含各种字符(包括中文、特殊符号等)的 JSON 文件很重要。with
语句创建一个上下文,确保文件在使用后自动关闭,即使发生错误。
* return json.load(f)
: json.load()
函数从打开的文件对象 f
中读取 JSON 数据,并将其解析为 Python 对象(通常是字典或列表)。然后,该函数将解析后的 Python 对象返回。
YAML 文件处理:
* with open(file_path, 'r', encoding='utf-8') as f:
: 类似于 JSON 文件处理,以只读模式和 UTF-8 编码打开 YAML 文件。
* return yaml.safe_load(f)
: yaml.safe_load()
函数从打开的文件对象 f
中读取 YAML 数据,并将其解析为 Python 对象。safe_load()
是 yaml.load()
的更安全版本,可以防止执行任意代码,从而降低安全风险。解析后的 Python 对象被返回。
功能效果
展示代码:
python
elif len(content) >= 1 and (path.split('.')[-1].lower() in ('json', 'yml', 'yaml')):
if isinstance(content, list):
all_content = content[0].get('paragraphs', '获取内容失败')
all_content = json.dumps(all_content, indent=4, ensure_ascii=False) # 将数据转换为格式化的 JSON 字符串
- 解析后的内容展示在
QTextEdit()
预览框中,因QTextEdit不支持展示列表数据,所以这里转化为json字符串。 - 用户可以直接检查接口文档内容,并将其传递给阿里云百炼 Deepseek-R1 大模型进行接口测试用例生成。
2. 支持阿里云百炼 Deepseek-R1 接口测试用例生成
2.1 阿里云百炼 API 说明
工具支持通过阿里云百炼 Deepseek-R1 的 API,实现接口测试用例的自动生成。用户可以参考以下文章申请 API Key:
如何申请阿里云百炼 Deepseek-R1 API Key
2.2 接口用例生成流程
-
点击添加知识库,添加json、yml或xlsx接口文档所在的目录。此处的知识库是广义知识库。
此处会将该目录中符合条件的文件均展示在文件列表。 -
点击json文件,内容会自动展示在内容预览框中。
- 用户点击“生成测试用例”按钮,工具会调用阿里云百炼 Deepseek-R1 接口生成高覆盖率的接口测试用例。
3. 优化大模型数据分块功能
3.1 数据分块功能
为了解决大模型生成数据不完整的问题,工具新增了数据分块功能。在传递大数据量时,将其分块处理,避免超出大模型的处理限制。
实现代码
以下是数据分块功能的代码实现:
def chunk_data(self, data, chunk_size):
print("开始分块")
"""将数据分割成指定大小的块"""
return [data[i:i + chunk_size] for i in range(0, len(data), chunk_size)]
功能意义
- 数据分块可有效避免生成内容中断或遗漏的问题。
- 分块适配功能还在进一步优化中,未来将全面支持不同类型的数据分块。
** 4. requirements.txt**
鉴于很多同学安装环境时很容易遇到阻塞,先对运行所需的库进行整理。
在实际开发中,我们可能需要在不同的项目中使用不同版本的 Python 环境。这里推荐使用 uv(Universal Virtualenv Manager),它是一个轻量级的 Python 多版本管理工具,支持快速创建虚拟环境。
4.1. 安装 uv
首先,安装 uv
工具:
pip install uv
安装完成后,输入 uv --help
检查是否安装成功。
4.2. 创建 Python 3.12 虚拟环境
切换到指定项目目录,在该目录下创建基于 Python 3.12 的虚拟环境:
uv venv --python 3.12.0
这条命令会自动下载 Python 3.12.0,并创建一个虚拟环境。
3. 配置虚拟环境到 PyCharm
接下来,拿到源码后,复制到之前创建好的ai_tester_project目录中,
回到上一层,选中目录右键在pycharm以工程打开:
配置解释器为,选择刚刚创建的虚拟环境路径。
根据整理的requirements.txt安装时,会报错。
paddleocr==2.10.0
paddlepaddle==3.0.0
pandas==2.2.3
PyPDF2==3.0.1
PyQt5==5.15.11
python-docx==1.1.2
openpyxl==3.1.5
opencv-python==4.11.0.86
Markdown==3.7
lxml==5.3.1
ollama==0.4.7
PyYAML==6.0.2
nltk==3.9.1
openai==1.65.1
numpy==2.2.3
tabulate==0.9.0
解决 Python 3.12 中的 distutils 问题
Python 3.12 官方已废弃了 distutils
模块,导致某些库无法正常安装。在 MCP Server 示例项目中,我们尝试安装 mcp
库时,会遇到以下错误:
ModuleNotFoundError: No module named ‘distutils’
1. 安装 setuptools
替代 distutils
setuptools
是 Python 的包管理工具,可以作为 distutils
的替代解决方案。运行以下命令安装 setuptools
:
pip install setuptools
如果安装过程中仍遇问题,可以尝试更新 pip
和 setuptools
到最新版本。
2. 更新 pip
Python 3.12 的默认 pip
版本可能不支持某些包安装。亲测 pip
版本 24.0 会报错,因此需要升级到最新版本:
python -m ensurepip --upgrade
python.exe -m pip install --upgrade pip
完成这些操作后,即可依据requirements.txt进行依赖包的安装。安装需要一点时间,耐心等待即可。
5. 总结
Deepseek API+Python 测试用例生成工具 V1.0.5 完成了一系列重要优化和功能扩展:
- 提供与python3.12.0版本匹配的requirements.txt,提升用户体验。
- 支持json及yml格式文档,支持json及yml格式的接口文档进行接口用例生成。
通过这些优化,工具不仅能够帮助测试工程师快速生成高质量的测试用例,还能适配更复杂的测试场景,极大提升测试效率。赶快使用 V1.0.5,体验全新的测试用例生成之旅!
更多推荐
所有评论(0)