Deepseek API+Python测试用例一键生成与导出-V1.0.2【实现需求文档图片识别与用例生成自动化】

在测试工作中,需求文档中的图片(如界面设计图、流程图)往往是测试用例生成的重要参考。然而,手动提取图片并识别内容不仅耗时,还容易出错。本文将通过一个自研小工具,结合 PaddleOCR 和大模型,自动从需求文档的指定标题下提取图片,识别图片中的文字,并生成功能测试用例。这一流程能帮助测试工程师大幅提高效率,同时确保用例生成的精准性。支持同时指定文本标题及图片标题。感兴趣的同学点击下面小卡片获取源码相对于前面的版本:

  • 优化了一些报错导致闪退的情形
  • 增加了图片标题输入框
  • 布局调整
  • 增加了行业下拉选择框
    在这里插入图片描述

一、整体解决方案

我们将完成以下功能:

  1. 从 Word 文档中提取图片:通过 python-docx 提取指定标题下的图片。
  2. 图片文字识别:使用 PaddleOCR 对图片中的文字内容进行识别。
  3. 用例生成:将识别到的文字内容传递给大模型(如 OpenAI GPT),自动生成功能测试用例。

整个工具的实现框架如下:

+-------------------------------------------+
|  需求文档加载                              |
|  读取 Word 文档 (docx)                     |
+-------------------------------------------+
                   ↓
+-------------------------------------------+
|  图片提取                                   |
|  识别指定标题下的图片                      |
+-------------------------------------------+
                   ↓
+-------------------------------------------+
|  图片文字识别                               |
|  使用 PaddleOCR 识别图片中的文字           |
+-------------------------------------------+
                   ↓
+-------------------------------------------+
|  用例生成                                   |
|  将识别文字传递给大模型生成测试用例         |
+-------------------------------------------+
                   ↓
+-------------------------------------------+
|  输出测试用例                               |
|  将生成的测试用例保存为文档                 |
+-------------------------------------------+

二、工具实现步骤

1. 环境准备

安装以下必要的 Python 库:

pip install python-docx paddleocr paddlepaddle openai
  • python-docx:用于读取 Word 文档。
  • paddleocrpaddlepaddle:用于图片文字识别。
  • openai:与大模型交互生成测试用例。

2. 提取 Word 文档中指定标题下的图片

在需求文档中,图片通常位于某些特定的标题下(如“登录界面设计”)。我们使用 python-docx 遍历文档内容并提取这些图片。

代码示例:


# 提取指定标题下的图片
    def extract_text_by_title(self, docx_path, title_keywords, table_keywords, pic_keywords):
        """
        提取多个标题下的正文内容
        :param pic_keywords: 图片路径
        :param table_keywords: 表格路径
        :param docx_path: docx 文件路径
        :param title_keywords: 标题关键词列表
        :return: 提取的正文内容(按标题分组)
        """
        doc = Document(docx_path)
        result = {
   
    
    }
        doc = self.remove_toc(doc)  # 先清理一波目录
        for title_keyword in title_keywords.split(','):
            content = []
            capture = False
            for paragraph in doc.paragraphs:
                text = paragraph.text.strip()
                if text:
                    # 判断是否是标题
                    if title_keyword in text and 'toc' not in paragraph.style.name.lower():
                        capture = True
                        content.append(text

猜你喜欢

转载自blog.csdn.net/weixin_44872675/article/details/146328284