11. 鸿蒙自动化测试6步通关:需求一丢,报告自己出来!

配套动画视频在:《11. 鸿蒙自动化测试6步通关:需求一丢,报告自己出来!》,源代码在《评论区置顶》

前面几节,读需求、生成用例、截图、启停应用、出报告,都分开讲过了;AGENTS.md 和 memory 也配好了。这一节把它们串起来:丢进一份需求文档,最后自动给出 HTML 报告。流程不复杂,就 6 步------读需求、生成用例、测前截图、执行、测后截图、出报告。

1. 读需求

先读需求规格说明书。docx 用 read-docx 脚本,加上 --tables,表格里的元素清单也能读到;pdf 就用 read-pdf。别用 read_file 直接读这类文件,容易出乱码。

复制代码
python skills/read-docx/scripts/read_docx.py docs/需求规格说明书.docx --tables

# 若是 pdf:

python skills/read-pdf/scripts/read_pdf.py docs/需求规格说明书.pdf

2. 生成用例

需求读完,按文档里的功能说明、元素清单和测试要求写用例,再用 generate_test_cases 存到 testcases/test_data.yaml。只生成一次,生成后不要改;元素 ID 也直接用文档里写的,别自己瞎编。

复制代码
generate_test_cases(
    test_cases=[{
        "case_id": "TC001",
        "case_name": "启动验证",
        "description": "启动后断言首页核心元素存在",
        "steps": [
            {"action": "assert_exists", "params": {"selector": "loginBtn"}},
        ],
    }],
    output_path="testcases/test_data.yaml",
)

3. 测试前截图

用例文件写好后,先截一张当前屏幕,当作测试开始前的样子。调用 take_screenshot,保存到 before_test.png。

复制代码
take_screenshot(save_path="testcases/screenshots/before_test.png")

4. 执行测试

然后把这份 YAML 交给 execute_test,在真机上把用例跑完。也是只跑一次;跑完会生成 test_results.json,后面写报告要用。

复制代码
execute_test(test_data_file="testcases/test_data.yaml")

5. 测试后截图

测试跑完,再截一张,记下结束时的界面。还是用 take_screenshot,文件名改成 after_test.png。

复制代码
take_screenshot(save_path="testcases/screenshots/after_test.png")

6. 生成报告

最后出报告。generate_test_report 会先读 test_results.json,再把测前、测后两张图放进去,生成 test_report.html。

复制代码
generate_test_report(
    test_output="testcases/test_results.json",
    output_path="testcases/test_report.html",
    screenshots=[
        "testcases/screenshots/before_test.png",
        "testcases/screenshots/after_test.png",
    ],
)

实际跑的时候,不用你一步一步手动点。入口脚本把这 6 步写进任务提示词,把需求文档路径、每一步文件该存哪儿也写清楚,交给 Agent;它按 AGENTS.md 自己调工具,跑完会给出执行总结:

复制代码
task = f"执行自动化测试任务,需求文档路径:{doc_path}。请严格按照 AGENTS.md 定义的完整6步流程执行:
1.读取需求文档 
2.根据需求规格说明书生成测试用例到testcases/test_data.yaml 
3.测试前截图到testcases/screenshots/before_test.png 
4.执行测试(test_data_file=testcases/test_data.yaml) 
5.测试后截图到testcases/screenshots/after_test.png 
6.生成报告到testcases/test_report.html。完成后输出执行总结。"

提示词里路径都写清楚了,Agent 就知道该读哪个文件、结果存到哪里。跑完去 testcases/ 看:用例 YAML、两张截图和 HTML 报告应该都在;再对照 Agent 返回的总结,确认 6 步有没有做完。

到这里,从丢进一份需求文档,到自动产出测试报告,整条鸿蒙自动化流程就算通了。

配套动画视频在:《11. 鸿蒙自动化测试6步通关:需求一丢,报告自己出来!》,源代码在《评论区置顶》