在当今快节奏的软件开发周期中,手动测试常常成为显著的瓶颈。我们的团队面临着不断增长的测试用例积压,这些用例需要重复的手动执行——每个冲刺周期都要运行整个测试套件。这消耗了宝贵的时间,而这些时间本可以更好地用于探索性测试和更高价值的任务。
我们通过利用Azure DevOps新的MCP服务器与GitHub Copilot的集成,使用Playwright自动生成和运行端到端测试,来解决这个问题。这一强大组合彻底改变了我们的测试流程:
- 通过AI辅助代码生成,更快地创建测试
- 在关键用户流程中实现更广泛的测试覆盖
- 无缝的CI/CD集成,允许数百个测试自动运行
- 直接从Azure Test Plans体验按需执行测试(即将支持将Playwright JS/TS测试与手动测试用例关联。请关注我们的发布说明以获取公告。)
通过自动化测试流水线,我们显著减少了手动工作,提高了测试可靠性,并加速了发布周期。在本文中,我们将分享我们是如何做到的。
如何将测试用例转化为自动化脚本(逐步指南)
启用这个AI驱动的工作流需要几个部分协同工作。以下是整个过程从开始到结束的工作方式:
通过为每个测试用例遵循上述循环(您可以通过将整个测试套件传递给GitHub Copilot来批量执行),我们逐步将整个手动测试套件转变为自动化套件(仅我们自己的领域就有数百个测试用例,整个项目有超过一千个测试用例)。MCP服务器和Copilot基本上处理了编写代码的重任,而我们的团队监督过程并进行微调。这感觉几乎像魔法——用简单的英语描述一个测试,就能得到一个可运行的自动化脚本!
挑战与经验教训
-
提示是关键! 不言而喻——您如何提示AI很重要。清晰、具体的提示会产生更好的结果。在我们的案例中,将任务分解为两个提示(“获取测试用例”然后“生成脚本”)比单个组合提示产生更可靠的代码。我们有时还不得不尝试不同的措辞——例如,使用确切的措辞“将上述测试用例步骤转换为Playwright脚本”比模糊的命令效果更好。除此之外,确保将模型指向您有现有测试的相关代码/文件。您提供的参考越多,新生成的脚本就越准确。这有点像一门艺术,但我们使用得越多,就越能感受到GitHub Copilot对哪种措辞反应最好。幸运的是,我们的测试用例描述通常详细且结构化,这使得AI更容易识别操作序列。
-
上下文质量: 您需要在以下两件事之一上花费额外时间:
- 要么通过在Azure DevOps中编写更清晰、更详细的步骤来改进您的测试用例,
- 要么花更多时间稍后修复生成的脚本。
如果您选择改进测试用例,请确保它们是具体的。以下是一些模糊和具体步骤的示例:
- 处理非文本步骤: 一些测试场景涉及图形或媒体(例如,“验证图表看起来正确”或检查图像)。当前的Copilot代理无法解释图像或视觉断言——它的领域是文本。我们的概念验证证实,如果测试步骤说“比较截图”,AI不会神奇地进行图像比较。解决方法是调整这些步骤,使其可以通过DOM或数据进行验证(或者暂时手动处理这些情况)。实际上,这是一个较小的限制——我们绝大多数的测试步骤都是诸如“点击这个”或“输入那个”之类的事情,AI处理得很好。但需要意识到:对于纯粹的视觉验证,您需要用传统方法补充,或使用Playwright的截图断言与预定义的基线图像。
附录
提示
以下是可以帮助您入门的两个提示。生成脚本后,您可以调整它们,直到可以在本地成功执行为止。一旦对脚本满意,您可以创建一个Azure Pipeline,定期将其作为一部分执行。
确保根据您的具体需求和上下文调整提示——这将帮助Copilot生成更高质量的脚本。
提示1:
|
|
Copilot通过MCP服务器获取每个测试用例的详细信息后,使用以下提示:
提示2:
|
|