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

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

📝 职场经验干货:

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

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

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

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

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

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

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


本文将介绍如何从 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 文件中。如果您有其他问题或需要进一步的帮助,请告诉我!

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

### 使用 TestRail 和 DeepSeek 创建手工测试用例 #### 解析需求文档 为了有效地利用 DeepSeek 和 TestRail 来创建高质量的手工测试用例,解析需求文档是首要步骤。这一步骤旨在提取所有必要的信息来定义系统的预期行为及其边界条件[^1]。 ```python import deepseek as ds def parse_requirements(requirements_doc_path): """ 解析需求文档以获取用于生成测试用例的关键信息。 :param requirements_doc_path: 需求文档路径 :return: 关键信息列表 """ key_info = [] with open(requirements_doc_path, 'r', encoding='utf-8') as file: content = file.read() # 利用DeepSeek处理复杂的需求理解问题 parsed_data = ds.parse(content) for item in parsed_data['items']: key_info.append(item) return key_info ``` #### 自动生成初步测试计划 一旦完成了对需求的理解和解析,下一步就是使用这些信息来自动生成一个初步的测试计划。此阶段的目标是在不丢失任何重要细节的情况下简化流程,并确保覆盖尽可能多的情况,特别是那些容易被忽视的边缘情况。 ```python from datetime import date def generate_test_plan(key_information): """ 基于解析后的关键信息生成初始版本的测试计划 :param key_information: 经过解析得到的信息集合 :return: 测试计划字典对象 """ test_plan = { "title": f"Project {date.today()} Manual Testing Plan", "sections": [], "entries": [] } for info_item in key_information: section_title = info_item.get('section') entry_details = info_item.get('details') if not any(s["name"] == section_title for s in test_plan["sections"]): new_section = {"name": section_title} test_plan["sections"].append(new_section) current_section_index = next((index for (index, d) in enumerate(test_plan["sections"]) if d["name"] == section_title), None) test_entry = { "title": entry_details, "status": "untested" } test_plan["entries"].insert(current_section_index * len(entry_details.split('.')), test_entry) return test_plan ``` #### 整合至 TestRail 平台 最后,在拥有了一份详尽而结构化的测试计划之后,就可以将其导入到 TestRail 中去了。这样做不仅可以帮助团队更好地管理和跟踪进度,而且还能促进不同成员之间的协作交流[^4]。 ```python import requests def integrate_with_testrail(api_url, user_key, project_id, plan_content): """ 将生成的测试计划上传到指定项目的TestRail实例上 :param api_url: API URL地址 :param user_key: 用户API密钥 :param project_id: 所属项目ID编号 :param plan_content: 准备加入的内容体 :return: HTTP响应状态码 """ headers = {'Content-Type': 'application/json'} auth_params = ('api_user@example.com', user_key) response = requests.post( url=f"{api_url}/add_plan/{project_id}", json=plan_content, headers=headers, auth=auth_params ) return response.status_code ``` 通过上述过程,可以显著提高从需求文档转换成具体可执行的手工测试用例的工作效率,同时也减少了人为错误的可能性。此外,借助像 Langchain 这样的技术还可以进一步增强自动化程度,使得整个过程更加流畅高效[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值