大部分情况下,测试用例都是写在Jira、Ones、禅道项目管理工具上。
极少数会要求提供Word版本的用例,没办法,谁让客户都是衣食父母呢,还有要求特别高的不可抗拒的衣食父母。
再写一遍?
不可能!
Python 操作 Word 文档,用 python-docx 就够了!
先看效果!
相比手动点击、复制、排版,自动化生成 Word 文件可以大大提升效率,尤其适合测试报告、日报周报、批量生成合同等办公场景。
尽快适应变化
加油每一位
✨ 基础入门:生成 Word 文档
from docx import Document
doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("本报告由自动化程序生成。")
doc.save("BBC测试用例.docx")
生成 Word 文档
设置段落样式和字体
from docx import Document
from docx.shared import Pt
from docx.oxml.ns import qn
doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("本报告由自动化程序生成。")
para = doc.add_paragraph("正文内容,支持中文")
run = para.runs[0]
run.font.name = "微软雅黑"
run._element.rPr.rFonts.set(qn('w:eastAsia'), '微软雅黑')
run.font.size = Pt(12)
doc.save("BBC测试用例.docx")
注意:设置中文字体需要用 _element 配合 qn() 解决中文乱码问题。
插入分页符(Page Break)
from docx import Document
doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_paragraph("第一页内容")
# 插入分页符
doc.add_page_break()
doc.add_paragraph("这是第二页的开头内容")
doc.save("分页演示.docx")
print("✅ Word 文档已保存,包含分页内容")
doc.save("BBC测试用例.docx")
用于内容分隔,列如封面后换页、每人一页合同等场景。
表格插入
from docx import Document
doc = Document()
doc.add_heading("测试用例", level=1)
doc.add_heading("人力资源安排", level=2)
# 创建表格(1 行 3 列:表头)
table = doc.add_table(rows=1, cols=5)
table.style = 'Table Grid'
hdr_cells = table.rows[0].cells
hdr_cells[0].text = "开始时间"
hdr_cells[1].text = "结束时间"
hdr_cells[2].text = "测试项"
hdr_cells[3].text = "负责人"
hdr_cells[4].text = "预估耗时"
# 添加数据行
row_cells = table.add_row().cells
row_cells[0].text = "2025-07-01"
row_cells[1].text = "2025-07-01"
row_cells[2].text = "冒烟测试"
row_cells[3].text = "Jay"
row_cells[4].text = "1"
# 添加数据行
row_cells = table.add_row().cells
row_cells[0].text = "2025-07-01"
row_cells[1].text = "2025-07-02"
row_cells[2].text = "API测试"
row_cells[3].text = "Tom"
row_cells[4].text = "2"
print("✅ Word 表格已生成")
doc.save("BBC测试用例.docx")
实战提议:搭配 pandas 导出数据,再用 add_row() 动态填充表格,轻松生成结构化报告。
表格插入
插入图片(如测试截图)
doc.add_picture("monty-truth.png", width=Inches(5))
# 获取最后一个段落(即刚刚插入图片的段落)
paragraph = doc.paragraphs[-1]
# 设置段前距离(例如 18 磅)
paragraph.paragraph_format.space_before = Pt(18)
搭配自动化测试截图,支持批量导出 + 插入。
实用技巧合集
实用技巧合集
场景推荐
- 自动化测试报告生成(用例统计、截图说明)
- 项目日报周报自动生成
- HR 批量制作入职欢迎信/Offer 文件
- 批量生成合同、通知、邀请函
- 财务类 Word 报表自动填充
获取实用模板:「python-docx模板」留言评论区领取
提示:python-docx 不支持 .doc,请使用 .docx 后缀!
总结
python-docx 是办公自动化必备利器,配合 pandas、matplotlib、pytest 等工具,可以构建完整的测试报告流水线。后续还将分享:
- Word 模板动态替换
- 多页封面 + 目录 + 报告
- 批量生成多个文档技巧
下期预告 unittest:内置自动化测试框架,全流程演示!
© 版权声明
文章版权归作者所有,未经允许请勿转载。如内容涉嫌侵权,请在本页底部进入<联系我们>进行举报投诉!
THE END
暂无评论内容