【发布时间】:2019-05-12 15:25:34
【问题描述】:
在我们正在开发的 React 应用程序中,我们使用 QA ID 进行 Selenium 测试。
将它们留在生产(实时)代码库中是不好的做法吗?
如果是这样,为什么?是否只是试图保持 TTFB(第一个字节的时间)低?
更多上下文:
- 用于自动化标签的工具,它接受给定的字符串并返回包含要传播到元素上的属性的对象。这些仅应用于测试目的,因为它们应仅在测试运行期间可用。
例如。
const automationTags = (givenTag) =>
(IS_PROD || !givenTag) ? {} : { 'data-qa': _.kebabCase(givenTag) }
用法:
<Component {...automationTags(`${dataQa}-button`)} /><Component {...automationTags('profile-page-success-btn')} />
...dataQa 是 React 组件中使用的 prop。
【问题讨论】:
-
如何使用这些 ID 编写自动化测试,并在这些 ID 已被删除的情况下针对生产运行它?那么您不是针对生产运行自动化吗?
-
将在部署到生产之前运行测试
-
删除 QA ID 后恢复的总 kb 是多少?我的猜测是它可以忽略不计。如果不是,那么您的 ID 可能太多。我想我不明白你的问题......如果你的开发人员正在删除它们,问他们为什么。为什么在生产中使用 ID 是一种不好的做法?你看过其他制作网站吗?它们充满了ID等。
-
@JeffC 这正是我的观点。我们被告知我们应该删除它们,但 TTFB 似乎没有足够的理由。
-
@ArildAndreassen 只需将示例中的
automationTags覆盖为() => {}即可实现
标签: html reactjs selenium testing qa