在测试工作中,需求文档中的图片(如界面设计图、流程图)往往是测试用例生成的重要参考。然而,手动提取图片并识别内容不仅耗时,还容易出错。本文将通过一个自研小工具,结合 PaddleOCR 和大模型,自动从需求文档的指定标题下提取图片,识别图片中的文字,并生成功能测试用例。这一流程能帮助测试工程师大幅提高效率,同时确保用例生成的精准性。支持同时指定文本标题及图片标题。感兴趣的同学点击下面小卡片获取源码相对于前面的版本:
- 优化了一些报错导致闪退的情形
- 增加了图片标题输入框
- 布局调整
- 增加了行业下拉选择框
一、整体解决方案
我们将完成以下功能:
- 从 Word 文档中提取图片:通过
python-docx
提取指定标题下的图片。 - 图片文字识别:使用
PaddleOCR
对图片中的文字内容进行识别。 - 用例生成:将识别到的文字内容传递给大模型(如 OpenAI GPT),自动生成功能测试用例。
整个工具的实现框架如下:
+-------------------------------------------+
| 需求文档加载 |
| 读取 Word 文档 (docx) |
+-------------------------------------------+
↓
+-------------------------------------------+
| 图片提取 |
| 识别指定标题下的图片 |
+-------------------------------------------+
↓
+-------------------------------------------+
| 图片文字识别 |
| 使用 PaddleOCR 识别图片中的文字 |
+-------------------------------------------+
↓
+-------------------------------------------+
| 用例生成 |
| 将识别文字传递给大模型生成测试用例 |
+-------------------------------------------+
↓
+-------------------------------------------+
| 输出测试用例 |
| 将生成的测试用例保存为文档 |
+-------------------------------------------+
二、工具实现步骤
1. 环境准备
安装以下必要的 Python 库:
pip install python-docx paddleocr paddlepaddle openai
python-docx
:用于读取 Word 文档。paddleocr
和paddlepaddle
:用于图片文字识别。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