5分钟搞定测试用例!用DeepSeek+Python智能生成测试用例,效率飙升!

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


每次手动编写测试用例都头大?重复劳动、覆盖率低、维护难?

AI来拯救你! 只需一个API调用,DeepSeek能根据需求描述智能生成结构化测试用例,自动保存为JSON文件,直接对接测试框架。

效果预览


一、准备工作

1、安装Python库

pip install openai

2、获取DeepSeek API Key

前往硅基流动官网注册账号,创建应用并获取API密钥。


二、4步生成测试用例JSON文件

步骤1:调用DeepSeek API生成用例
from openai import OpenAI
import json
import re
Client = OpenAI(
    api_key='***********',
    base_url='https://api.siliconflow.cn/v1'
)

# 示例:传入提示词,调用deeseek接口

defdeepseek(prompt):
    response = Client.chat.completions.create(
        messages=[
            {'role': 'user', 'content': prompt},
        ],
        model='deepseek-ai/DeepSeek-V3',
        max_tokens=4096,
        stream=False,
    )
return response.choices[0].message.content



# 示例:登录需求

requirement_text = """
用户名长度为8到20个字符,不能包含特殊字符
密码长度为6到8个字符,必须包含大小写字母和数字
系统用户名和密码正确,登录成功,
系统用户名和密码错误,提示账户或密码错误,
超过5次错误,锁定10分钟
"""

#提示词,要求以json格式返回,指定返回字段

base_prompt = """
请以json的格式返回数据的测试用例,包含字段:
- no.(测试用例编号,累加)
- case_name(用例名称)
- steps(步骤列表)
- expected_result(预期结果)

示例格式:
{
    "test_cases":[
    {
        "no.": TC_0001
        "case_name": "用户名为空"
        "steps": ["输入用户名", "点击登录"],
        "expected_result": "提示用户名不能为空"
    }   
    ]
}
测试用例需要包含:边界值用例,异常用例,基础逻辑功能用例
"""

#需求文档内容太多冗余内容,提炼一份测试要点,便于生成测试用例

defparse_requirement(requirement):
return deepseek(f'请根据以下需求内容,提炼一份测试要点,按照1,2,3....返回,需求内容是: {requirement}')

#根据测试要点,按照指定格式返回测试用例

defgen_test_cases(content):
return deepseek(f'请针对{content}测试要点,生成一份详细的测试用例,按照{base_prompt}格式返回')


requirement = parse_requirement(requirement_text)
test_cases = gen_test_cases(requirement)

步骤2:解析API响应内容
defparse_content(response_text):
try:
        data = json.loads(response_text)
return data
except json.JSONDecodeError:
        json_str = re.search(r'```json\n(.*?)\n```', response_text, re.DOTALL)
if json_str:
return json.loads((json_str.group(1)))
else:
raise ValueError("无法解析为JSON")
cases = parse_content(test_cases)
print("生成的用例:", cases)

步骤3:保存为JSON文件
defsave_test_cases(test_cases, output_file='test_cases.json'):
with open(output_file, 'w') as f:
        f.write(json.dumps(test_cases, indent=2, ensure_ascii=False))

if cases:
    save_to_json(cases)
else:
    print("生成失败,请检查提示词或API密钥!")

步骤4:验证生成结果

生成的test_cases.json文件内容示例:

{
"test_cases": [
    {
"no.": "TC_0001",
"case_name": "用户名长度验证 - 边界值测试(7个字符)",
"steps": [
"输入7个字符的用户名",
"点击注册"
      ],
"expected_result": "提示用户名长度不符合要求"
    },
    {
"no.": "TC_0002",
"case_name": "用户名长度验证 - 边界值测试(8个字符)",
"steps": [
"输入8个字符的用户名",
"点击注册"
      ],
"expected_result": "用户名验证通过"
    },
    {
"no.": "TC_0003",
"case_name": "用户名长度验证 - 边界值测试(20个字符)",
"steps": [
"输入20个字符的用户名",
"点击注册"
      ],
"expected_result": "用户名验证通过"
    },
    {
"no.": "TC_0004",
"case_name": "用户名长度验证 - 边界值测试(21个字符)",
"steps": [
"输入21个字符的用户名",
"点击注册"
      ],
"expected_result": "提示用户名长度不符合要求"
    },
    {
"no.": "TC_0005",
"case_name": "用户名字符验证 - 特殊字符测试",
"steps": [
"输入包含特殊字符(如@!#$%)的用户名",
"点击注册"
      ],
"expected_result": "提示用户名不能包含特殊字符"
    },
    {
"no.": "TC_0006",
"case_name": "密码长度验证 - 边界值测试(5个字符)",
"steps": [
"输入5个字符的密码",
"点击注册"
      ],
"expected_result": "提示密码长度不符合要求"
    },
    {
"no.": "TC_0007",
"case_name": "密码长度验证 - 边界值测试(6个字符)",
"steps": [
"输入6个字符的密码",
"点击注册"
      ],
"expected_result": "密码验证通过"
    },
    {
"no.": "TC_0008",
"case_name": "密码长度验证 - 边界值测试(8个字符)",
"steps": [
"输入8个字符的密码",
"点击注册"
      ],
"expected_result": "密码验证通过"
    },
    {
"no.": "TC_0009",
"case_name": "密码长度验证 - 边界值测试(9个字符)",
"steps": [
"输入9个字符的密码",
"点击注册"
      ],
"expected_result": "提示密码长度不符合要求"
    },
    {
"no.": "TC_0010",
"case_name": "密码复杂度验证 - 仅小写字母测试",
"steps": [
"输入仅包含小写字母的密码(如abcdef)",
"点击注册"
      ],
"expected_result": "提示密码复杂度不符合要求"
    },
    {
"no.": "TC_0011",
"case_name": "密码复杂度验证 - 大小写字母和数字测试",
"steps": [
"输入包含大小写字母和数字的密码(如Abc123)",
"点击注册"
      ],
"expected_result": "密码验证通过"
    },
    {
"no.": "TC_0012",
"case_name": "正确用户名和密码登录",
"steps": [
"输入正确的用户名和密码",
"点击登录"
      ],
"expected_result": "登录成功"
    },
    {
"no.": "TC_0013",
"case_name": "错误用户名或密码登录",
"steps": [
"输入错误的用户名或密码",
"点击登录"
      ],
"expected_result": "提示账户或密码错误"
    },
    {
"no.": "TC_0014",
"case_name": "多次错误登录锁定机制",
"steps": [
"连续输入错误用户名或密码超过5次",
"点击登录"
      ],
"expected_result": "系统锁定账户并提示锁定10分钟"
    },
    {
"no.": "TC_0015",
"case_name": "锁定期间登录尝试",
"steps": [
"在账户锁定期间尝试登录",
"点击登录"
      ],
"expected_result": "系统拒绝登录并提示锁定信息"
    },
    {
"no.": "TC_0016",
"case_name": "解锁时间验证",
"steps": [
"等待10分钟后尝试登录",
"点击登录"
      ],
"expected_result": "系统解除锁定,允许登录"
    }
  ]
}

三、高阶技巧

1. 批量生成不同模块用例
 
modules = ['登录', '支付', '搜索']

reqirements = {'登录':'', '支付':'', '搜索':''}

for module in modules:

    prompt = f'为{module}功能设计测试用例,覆盖正向和异常场景,具体需求内容是:{reqirement[module]}'
    requirement = parse_requirement(prompt)
    response = gen_test_cases(f'请针对{requirement}测试要点,生成一份详细的测试用例,按照{base_prompt}格式返回')
    test_cases = parse_content(response)
    save_test_cases(test_cases, f'{module}_test_cases.json')
2. 自定义字段模板

在Prompt中指定详细字段:

prompt = """

请生成包含以下字段的JSON测试用例:

- case_name(用例名称)

- priority(优先级:P0/P1/P2)

- test_data(测试数据:{用户名: "test", 密码: "123"})

- expected_status_code(预期HTTP状态码)

示例:{"case_name": "正常登录", "priority": "P0", ...}

"""

四、常见问题

  1. 返回内容非JSON怎么办?

    • 检查Prompt是否明确要求JSON格式

    • 添加response_format: {'type': 'json_object'}参数,有的模型不支持json格式返回,最好在prompt明确要求

    • 使用正则提取Markdown中的JSON代码块

  2. 如何提高生成质量?

    • 提供示例:在Prompt中给出用例模板

    • 限定范围:如“生成5个边界值测试用例”


五、总结

通过DeepSeek API + Python实现例智能生成 并保存为 JSON文件,大幅提升测试效率。其核心优势:

  • 效率提升:5分钟生成覆盖边界值、异常场景的测试用例。

  • 零编码:通过自然语言描述需求,无需手动编写用例逻辑。

  • 灵活扩展:JSON文件可直接对接测试管理工具(如Jira、TestRail)

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】
在这里插入图片描述​​
在这里插入图片描述​​

### 使用 Deepseek 生成测试用例 为了利用 Deepseek 更高效地创建测试用例并将其转换成 XMind 思维导图格式,可以遵循特定的方法论来确保最终产出既全面又易于理解。Deepseek 已经证明了其作为编写高质量测试用例工具的价值[^1]。 #### 构建基础环境 安装必要的软件组件是第一步操作。这通常涉及设置 Deepseek 平台以及获取能够处理 XMind 文件的应用程序接口(API) 或插件支持。对于想要实现自动化流程的企业来说,可能还需要配置持续集成/持续部署(CI/CD)管道以便于后续维护和更新工作流中的XMind文件。 #### 创建结构化的测试计划模板 定义一套标准化的框架用于指导新项目的启动非常重要。此模板应包含但不限于以下几个方面: - **项目概述**:描述被测系统的范围及其核心特性。 - **目标设定**:明确期望达到的质量标准与验收条件。 - **风险评估**:识别潜在障碍并对可能出现的问题提前规划应对策略。 - **资源分配**:指定参与人员角色职责分工表单;列出所需硬件设备清单等辅助设施说明文档链接地址。 这些信息不仅有助于提高沟通效率,而且能为自动生成过程提供重要的上下文线索[^2]。 #### 自动生成测试用例 当上述准备工作完成后,便可以通过调用 Deepseek 的 API 接口提交请求以触发自动生成功能。此时用户只需简单填写几个关键参数即可获得一份初步版本的测试方案草案——它已经包含了大量经过精心挑选的基础条目供进一步编辑调整使用。 ```json { "project_name": "Example Project", "test_type": ["functional", "performance"], "priority_level": "high" } ``` #### 转化为 XMind 格式 最后一步就是把由 Deepseek 输出的结果转化为更直观易读的形式——即 XMind 思维导图。这一环节往往依赖第三方库或服务完成数据交换任务。Python 开发者可能会倾向于采用 `xmind-sdk-python` 这样的开源解决方案来进行编程级别的对接作业。 ```python from xmind import save_as, load # 加载来自 Deepseek 的 JSON 数据 data = {"root_topic": {...}} # 将 JSON 结构映射到 XMind 对象模型上 workbook = create_workbook_from_dict(data) # 存储新的 .xmind 文件至本地磁盘位置 save_as(workbook, 'output.xmind') ``` 通过以上步骤,不仅可以充分利用 Deepseek 提升工作效率,还能满足内部评审过程中对可视化展示形式的需求,从而促进跨部门协作交流活动的有效开展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值