Deepseek API+Python测试用例一键生成与导出-V1

在实际使用场景中,可能只需要获取需求文档中的部分内容,例如特定标题的正文部分、特定段落的表格内容,或者指定图片中的内容。为了满足这一需求,可以对文档清理工具进行优化,支持按标题提取内容按章节提取表格和图片,并结合阿里云百炼 DeepSeek-R1 的流式 API 进行对话生成测试用例等功能。而且上个版本的小工具貌似并没有很好的将目录清洗掉,这次也一并优化。

去除目录

此次更新从Word 文档(.docx 文件)中智能化地去除目录,可以使用 Python 的 python-docx 库。以下是一种方法,可以遍历文档中的所有段落,识别并删除目录。

代码示例

from docx import Document

    def remove_toc(self, docx_path):
        """
        去除 Word 文档中的目录
        :param docx_path: docx 文件路径
        """
        doc = Document(docx_path)
        paragraphs_to_remove = []

        # 遍历段落,识别目录
        for paragraph in doc.paragraphs:
            if "TOC" in paragraph.style.name:  # 检查样式名称
                paragraphs_to_remove.append(paragraph)
            elif paragraph.text.strip() and (paragraph.text[0].isdigit() or paragraph.text.startswith("1.")):
                # 检查是否为目录条目
<think>好的,我现在需要回答用户的问题:“如何在PyCharm中结合AI技术来编写测试用例 请问使用 PyCharm 和 AI 工具生成或辅助编写测试用例的方法和教程”。首先,我要理解用户的需求,他们希望了解在PyCharm这个IDE里如何利用AI工具来生成或辅助编写测试用例。这可能涉及到使用AI插件、集成外部AI API,或者利用现有的AI工具生成测试代码。 首先,我应该回顾用户提供的引用内容,特别是引用[1]、[3]、[4],因为这些引用提到了使用Python豆包AI结合生成测试用例,以及在PyCharm中执行脚本的方法。比如引用[1]提到用requests库调用豆包AI的API,引用[3]描述了生成测试用例并执行的具体步骤,引用[4]则提到智能体生成UI测试用例的情况。 接下来,我需要整理出具体的步骤。用户可能需要一个分步指南,包括如何配置PyCharm、安装必要插件、编写或使用现有脚本调用AI生成测试用例,以及如何在PyCharm中运行这些脚本。同时,用户可能关心如何将生成测试用例集成到他们的项目中,或者如何自动化这个过程。 然后,需要考虑可能的工具和库。例如,用户可能需要安装requests库来调用AI API,或者使用PyCharm的Terminal执行命令(如引用[2]所述)。另外,可能涉及到如何将生成测试用例导出为Excel文档,如引用[3]中的例子。 还要注意用户提到的测试用例类型,比如用户登录功能,涉及用户名和密码的长度限制。这种情况下,测试用例需要覆盖正常和边界情况,而AI可以帮助生成这些用例,减少人工编写的工作量。 同时,我需要确保回答中引用正确的引用来源,例如引用[1]和[3]在涉及API调用和脚本执行时,引用[2]在涉及PyCharm的Terminal使用时。此外,引用[4]提到的UI测试用例生成可能也需要提及。 可能需要提到的步骤包括: 1. 安装必要的Python库(如requests)。 2. 配置PyCharm的环境,包括Terminal的使用。 3. 编写Python脚本调用AI API生成测试用例。 4. 执行脚本并导出测试用例文件。 5. 在PyCharm中集成这些步骤,可能使用运行配置或自动化工具。 还需要考虑潜在的问题,比如API密钥的管理、错误处理以及如何调整生成测试用例以适应具体项目需求。此外,可能提到一些最佳实践,比如验证AI生成测试用例的正确性,补充边界情况等。 最后,生成相关问题,比如如何优化生成测试用例,如何处理复杂场景,或者如何其他测试框架集成。这需要根据引用内容和用户的问题来构思。 总结来说,回答需要结构清晰,分步骤说明,结合引用中的信息,并确保用户能够按照步骤操作。同时,语言要简洁明了,避免技术术语过多,必要时给出代码示例或配置截图(但根据用户要求,可能不需要截图,而是用代码块展示)。</think>在 PyCharm 中结合 AI 技术编写测试用例,可通过以下分步方法实现: ### 一、环境准备 1. **安装 Python 依赖** 在 PyCharm 的 Terminal 中执行命令安装必要库: ```bash pip install requests openpyxl ``` `requests` 用于调用 AI API,`openpyxl` 用于生成 Excel 文件(如引用[3]中的测试用例文档生成需求)[^2][^3]。 2. **获取 AI API 密钥** 注册豆包 AI 或其他 AI 平台(如 OpenAI),获取 API 访问密钥,并保存在环境变量中(推荐)或配置文件里。 --- ### 二、编写 AI 测试用例生成脚本 1. **调用 AI 生成测试逻辑** 以下示例代码通过 API 生成用户登录功能的测试用例: ```python import requests import os import json from openpyxl import Workbook def generate_test_cases(api_key, prompt): headers = {"Authorization": f"Bearer {api_key}"} data = { "model": "deepseek-chat", "messages": [{"role": "user", "content": prompt}] } response = requests.post("https://api.doubao.com/v1/chat/completions", json=data, headers=headers) return response.json()['choices'][0]['message']['content'] # 示例:生成用户登录测试用例 api_key = os.getenv("DOUBAO_API_KEY") prompt = "生成用户登录测试用例:用户名6-12字符,密码8-16字符,生成Excel文档" test_cases = generate_test_cases(api_key, prompt) ``` 此代码基于引用[1]的 AI 生成逻辑实现[^1]。 2. **保存测试用例到 Excel** 添加以下代码将结果写入 Excel: ```python def save_to_excel(test_cases, filename="test_cases.xlsx"): wb = Workbook() ws = wb.active ws.append(["用例ID", "输入用户名", "输入密码", "预期结果"]) # 解析 AI 返回的文本并填充数据(需根据实际返回格式调整) # 示例解析逻辑(假设 test_cases 为结构化数据) for idx, case in enumerate(json.loads(test_cases), 1): ws.append([f"TC{idx}", case["username"], case["password"], case["expected"]]) wb.save(filename) save_to_excel(test_cases) ``` 如引用[3]所述,生成的文档可直接用于测试执行[^3]。 --- ### 三、PyCharm 集成操作 1. **脚本执行** - 将代码保存为 `generate_test_cases.py` - 在 PyCharm 的 Terminal 中执行: ```bash python generate_test_cases.py ``` - 生成的 `test_cases.xlsx` 将出现在项目目录中(如引用[2]的 Terminal 使用说明)。 2. **自动化集成(进阶)** - 通过 **Run/Debug Configurations** 配置一键执行 - 结合 `pytest` 框架,将生成的用例自动转换为测试脚本: ```python import pytest from login import validate_credentials @pytest.mark.parametrize("username, password, expected", test_cases) def test_login(username, password, expected): assert validate_credentials(username, password) == expected ``` --- ### 四、优化建议 1. **提示词工程** 通过细化提示词提升生成质量: ```python prompt = """ 生成边界值测试用例,覆盖以下场景: - 用户名长度:5(无效)、6(有效)、12(有效)、13(无效) - 密码长度:7(无效)、8(有效)、16(有效)、17(无效) 以 JSON 格式返回,包含 username, password, expected 字段 """ ``` 如引用[4]所述,生成后需人工校验补充[^4]。 2. **异常处理** 在 API 调用中添加重试机制和错误日志: ```python from tenacity import retry, stop_after_attempt @retry(stop=stop_after_attempt(3)) def generate_test_cases(api_key, prompt): # ...原有代码... ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Python测试之道

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值