【发布时间】:2009-06-22 16:50:39
【问题描述】:
我们使用自动化测试来验证我们的网络应用程序的功能。为了使测试用例中的断言更简单、更灵活,我们正在考虑引入“TestID”,即 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>
【问题讨论】:
-
我认为只需添加一些 id 你不需要关心性能......!关于干扰应用程序代码,尝试使用非 html 属性,如 data-test-id="" :)
标签: html testing web-applications automated-tests integration-testing