我们使用自动化测试来验证我们的 Web 应用程序的功能。为了使测试用例中的断言更简单、更灵活,我们正在考虑引入“TestIDs”,即HTML 标记中的ID,帮助测试用例查找和验证页面上的元素。此外,这些 TestID 将允许更具体的集成测试,由于页面上的数据有限,这些测试目前是不可能的。
然而,这让我们犹豫不决:
- 引入测试 ID 意味着更改测试的测试
- 安全性- 我们会披露内部域对象 ID 和其他在页面上不可见的信息
- 标准- 根据我们如何将 TestID 放入标记中,我们很可能会违反元素或属性的预期语义使用(例如,“id”或“类”属性、其他 html 元素等)
- 干扰- TestID 可能会干扰应用程序代码
- 性能- TestID 是不必要的标记(对用户而言)并增加页面大小(仅在大页面上显着)
将 TestID 限制为测试/暂存 HTML 似乎不是一个好主意,因为我们显然想要测试将在生产中使用的代码,并且不希望我们的测试/暂存环境表现不同。事实上,我们目前在发布后针对实时系统运行部分测试套件。
您认为 TestID 是一个好主意吗?如果是,您将如何将它们放入标记中?
一些示例标记来演示我在说什么:
<!-- this test id allows an integration test to verify that
the carrot 188271 is in fact green but exposes the id to the user -->
<tr id="testid-carrot-id-188271">
<td class="color">green</td>
<td class="size">doesn't matter</td>
</tr>