deepseek根据需求文档生成测试用例

本文将介绍如何从 DOCX 文档中提取标题为“需求内容”的部分,并将其作为 DeepSeek 模型的输入,生成详细且格式化的测试用例。我们将使用 Python 编写相关脚本,并展示最终的测试用例输出格式。

目标

  1. 从 DOCX 文件中读取标题为“需求内容”的部分。
  2. 将提取的内容用作 DeepSeek 模型的输入生成详细的测试用例。
  3. 将测试用例写入 Excel 文件,包含用例标题、步骤和预期结果等信息。

步骤 1:安装所需库

确保安装以下库:

pip install requests python-docx pandas openpyxl

步骤 2:读取 DOCX 文件并提取需求内容

编写一个函数,从 DOCX 文件中提取标题为“需求内容”的部分:

from docx import Document

def read_requirements_section(file_path, section_title="需求内容"):
    doc = Document(file_path)
    content = []
    capture = False

    for para in doc.paragraphs:
        if para.style.name == 'Heading 1' and para.text == section_title:
            capture = True
            continue
        if capture:
            if para.style.name.startswith('Heading'):
                break
            content.append(para.text)

    return '\n'.join(content)

步骤 3:调用 DeepSeek 模型

定义调用 DeepSeek 模型的函数:

import requests

DEESEEK_API_URL = "http://localhost:11434/api/generate"

def call_deepseek(input_text):
    data = {"input": input_text}
    
    response = requests.post(DEESEEK_API_URL, json=data)
    
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f"Error: {response.status_code} - {response.text}")

步骤 4:生成测试用例并格式化

编写一个函数,将 DeepSeek 返回的测试用例格式化为详细的结构,包括用例标题、步骤和预期结果:

def format_test_cases(raw_cases):
    formatted_cases = []
    for idx, case in enumerate(raw_cases):
        title = f"用例 {idx + 1}: {case['title']}"
        steps = "\n".join([f"步骤 {i + 1}: {step}" for i, step in enumerate(case['steps'])])
        expected_result = f"预期结果: {case['expected_result']}"
        formatted_cases.append({
            "标题": title,
            "步骤": steps,
            "预期结果": expected_result
        })
    return formatted_cases

步骤 5:写入 Excel 文件

使用 pandas 将生成的测试用例写入 Excel 文件,包含表头:

import pandas as pd

def write_to_excel(test_cases, filename="test_cases.xlsx"):
    df = pd.DataFrame(test_cases)
    df.to_excel(filename, index=False)
    print(f"测试用例已保存到 {filename}")

步骤 6:整合代码

将所有功能整合到一个完整的脚本中:

import requests
from docx import Document
import pandas as pd

DEESEEK_API_URL = "http://localhost:11434/api/generate"

def read_requirements_section(file_path, section_title="需求内容"):
    doc = Document(file_path)
    content = []
    capture = False

    for para in doc.paragraphs:
        if para.style.name == 'Heading 1' and para.text == section_title:
            capture = True
            continue
        if capture:
            if para.style.name.startswith('Heading'):
                break
            content.append(para.text)

    return '\n'.join(content)

def call_deepseek(input_text):
    data = {"input": input_text}
    
    response = requests.post(DEESEEK_API_URL, json=data)
    
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f"Error: {response.status_code} - {response.text}")

def format_test_cases(raw_cases):
    formatted_cases = []
    for idx, case in enumerate(raw_cases):
        title = f"用例 {idx + 1}: {case['title']}"
        steps = "\n".join([f"步骤 {i + 1}: {step}" for i, step in enumerate(case['steps'])])
        expected_result = f"预期结果: {case['expected_result']}"
        formatted_cases.append({
            "标题": title,
            "步骤": steps,
            "预期结果": expected_result
        })
    return formatted_cases

def write_to_excel(test_cases, filename="test_cases.xlsx"):
    df = pd.DataFrame(test_cases)
    df.to_excel(filename, index=False)
    print(f"测试用例已保存到 {filename}")

def generate_test_cases_from_docx(file_path):
    requirements = read_requirements_section(file_path)
    if not requirements.strip():
        return "需求文档中未找到相关内容"

    response = call_deepseek(requirements)
    raw_cases = response.get('response', [])
    return format_test_cases(raw_cases)

# 示例 DOCX 文件路径
docx_file_path = 'path/to/your/requirements.docx'

# 生成测试用例
test_cases = generate_test_cases_from_docx(docx_file_path)

# 将测试用例写入 Excel 文件
write_to_excel(test_cases)

示例 DOCX 文档内容

假设您的 DOCX 文档包含以下内容:

# 需求文档

## 需求内容

1. 用户能够注册新账号,输入有效的电子邮件地址和密码。
2. 用户能够登录现有账号,系统应检查用户名和密码是否匹配。
3. 用户可以重置密码,需提供注册时的电子邮件地址。
4. 用户可以查看和编辑个人资料,包括姓名和联系方式。

## 其他信息

- 本系统应支持多语言。

假设的 DeepSeek 测试用例输出

假设 DeepSeek 返回的测试用例如下:

[
    {
        "title": "用户注册功能测试",
        "steps": [
            "打开注册页面。",
            "输入有效的电子邮件地址。",
            "输入有效的密码。",
            "点击注册按钮。",
            "检查是否收到确认邮件。"
        ],
        "expected_result": "用户成功注册,并收到确认邮件。"
    },
    {
        "title": "用户登录功能测试",
        "steps": [
            "打开登录页面。",
            "输入注册的电子邮件地址。",
            "输入正确的密码。",
            "点击登录按钮。",
            "检查是否成功登录并跳转到主页。"
        ],
        "expected_result": "用户成功登录并看到主页。"
    }
]

说明

  1. 读取指定部分read_requirements_section 函数查找标题为“需求内容”的段落,并提取其后的内容,直到下一个标题。
  2. 调用模型:提取的内容将被发送到 DeepSeek 模型进行处理。
  3. 格式化测试用例format_test_cases 函数将生成的测试用例整理为包含标题、步骤和预期结果的格式。
  4. 写入 Excel 文件:最终的测试用例将被写入 Excel 文件中,便于后续使用。

通过以上步骤,您可以从 DOCX 文档中提取需求内容,使用 DeepSeek 模型生成详细的测试用例,并将这些用例保存到 Excel 文件中。如果您有其他问题或需要进一步的帮助,请告诉我!

### 使用 DeepSeek 生成自动化测试用例 #### 安装所需库 为了实现从 DOCX 文件中提取特定部分并利用 DeepSeek 模型生成测试用例,需先安装必要的 Python 库。这包括用于处理 Word 文档的 `python-docx` 和其他辅助库。 ```bash pip install python-docx pandas openpyxl deepseek-client ``` #### 提取需求内容 通过编写一段 Python 脚本来解析 DOCX 文件中的“需求内容”,并将该部分内容传递给 DeepSeek API 进行进一步处理。 ```python from docx import Document def extract_requirements(doc_path): document = Document(doc_path) content = [] capturing = False for paragraph in document.paragraphs: if '需求内容' in paragraph.text: capturing = True continue if capturing and not paragraph.text.strip(): break if capturing: content.append(paragraph.text) return '\n'.join(content).strip() ``` 此函数遍历文档段落寻找标题为“需求内容”的区域,并收集其后的所有文本直到遇到空白行为止[^2]。 #### 构建测试用例请求体并向 DeepSeek 发送请求 一旦获取到了需求描述,则可以构建 JSON 请求发送至 DeepSeek 的端点来获得自动生成的测试案例列表。 ```python import requests import json API_URL = "https://api.deepseek.com/v1/test-cases" headers = { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' } data = {"description": extracted_content, "tool": "playwright"} response = requests.post(API_URL, headers=headers, data=json.dumps(data)) if response.status_code == 200: test_cases = response.json()['testCases'] else: raise Exception(f"Failed to generate test cases: {response.content}") ``` 上述代码片段展示了向 DeepSeek API POST 方法提交数据的过程,其中包含了之前提取的需求说明以及指定使用的自动化框架 (PlayWright 或 Selenium)[^1]。 #### 将生成的结果保存到 Excel 表格内 最后一步是把返回的数据整理成表格形式存储下来方便后续查阅或导入 CI/CD 流程当中去执行真正的回归验证工作。 ```python import pandas as pd df = pd.DataFrame(test_cases) output_file = './generated_testcases.xlsx' with pd.ExcelWriter(output_file, engine='openpyxl') as writer: df.to_excel(writer, index=False, sheet_name="Test Cases") print(f"Generated test cases have been saved into '{output_file}'") ``` 这段程序会创建一个新的 Excel 工作簿,在名为 “Test Cases” 的表单里记录下每一条由 DeepSeek 自动生成出来的测试项详情。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Python测试之道

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

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

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

打赏作者

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

抵扣说明:

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

余额充值