为什么要从生产中的代码库中删除质量检查ID

时间:2018-12-11 15:38:31

标签: html reactjs selenium testing qa

在我们正在开发的React应用程序中,我们将QA ID用于硒测试。

将它们保留在生产环境中的代码库中是不好的做法吗?

如果是这样,为什么?只是要保持TTFB(至第一个字节的时间)为低吗?


更多上下文:

  • 用于自动化标签,该标签采用给定的字符串并返回一个对象,该对象包含要传播到元素上的属性。这些只能用于测试目的,因为它们只能在测试运行期间使用。

例如。

const automationTags = (givenTag) =>
  (IS_PROD || !givenTag) ? {} : { 'data-qa': _.kebabCase(givenTag) }

用法:

  • <Component {...automationTags(`${dataQa}-button`)} />
  • <Component {...automationTags('profile-page-success-btn')} />

......其中dataQa是React组件中使用的道具。

1 个答案:

答案 0 :(得分:2)

我可以看到保留ID的多种原因。

  1. 它降低了代码的复杂性。而不是在代码库中遍及所有逻辑(无论是否包括ID),而是仅存在ID。 删除它们可能很容易,但是当您乘以ID的数量时,其中包含的很多代码几乎没有好处。

  2. 它提高了各种环境之间的保真度。在测试环境中运行自动化测试时,可以肯定地确定它将是要用于生产的相同代码,而不是其另一变体。

  3. 它允许您针对生产环境运行自动化。您现在知道它可以工作了,而不是假设它在部署后可以工作。您知道他们说的对吗?

  4. 您的客户并不能滥用ID。如果您的客户正在检查页面/代码,只需知道元素的ID就是无害的。

  5. 而不是必须包括特定的QA ID,而是简单地使用实际的ID,类名和常规CSS可能是一个好习惯,因此您不需要特定的QA ID。

以上所有因素都足以使他们陷入困境。我认为任何性能提升都是不可衡量的。

说过,实际上进行度量是说服开发人员不需要删除它们的最佳方法。例如,Chrome的开发者控制台提供了一种方法来衡量页面负载以及资源的流向。 如果转到“性能”,则可以记录页面加载并查看加载页面所需的时间。 将生产与测试环境进行比较应该可以为您提供更多信息。