开发人员可以做什么来协助自动化测试?

时间:2019-02-28 18:53:47

标签: selenium testing automated-tests frontend ui-automation

我工作的公司正在启动一个新的Web应用程序,我已要求前端开发人员将此应用程序制作为 Automation Friendly

先前的应用程序使用react框架,很少有元素具有唯一的ID(或根本没有任何唯一的标识符)。这次,我要求开发人员包括一个自定义数据属性,专门用于自动化。

我正在寻找可能在这种情况下有经验的任何人。

  1. 您要求开发人员做什么来协助自动化?
  2. 在应用程序中是否有适合硒自动化的命名标准或准则?
  3. 自定义数据属性是最好的方法吗?还有其他选择吗?

任何建议/指导将不胜感激!

2 个答案:

答案 0 :(得分:2)

如果

Web应用程序并非出于测试目的而制作,则可能很难进行测试。对于单页应用程序(SPA)尤其如此。 SPA支持大量交互,而不会导致额外的页面加载(例如 Facebook Gmail )。这些SPA取代了页面加载,而是使用AJAX请求来从服务器来回中继数据。

根据@ChrisChua中的ThousandEyes,在开发Web应用程序以简化测试时,请牢记以下最佳实践

  • 添加有意义的类。
  • 类应指示元素的功能和状态。
  • 在ID和类中为操作元素使用功能名称。
  • 动态生成的类和ID对测试没有帮助。
  • 添加可定位的DOM反馈以指示应用程序状态。
  • 切勿在测试代码中硬编码内容!

结论

的确,其中有些并非易事,因为开发人员可能不得不更加认真地考虑使用易于测试的设计,而不是“可行的方法” 。但是,它肯定会有助于测试的可维护性,从长远来看会降低成本。


tl;博士

一些参考文献:

答案 1 :(得分:0)

测试驱动开发使自动化更加容易。我认为,测试人员应该是擅长发现和防止错误的开发人员或前开发人员。在开发解决方案的同一项目中编写测试。开发人员也可以输入id,即使他们有时不想这样做,并且如果“测试人员”很好,他们甚至可以提交拉取请求(在GitHub中示例)进行代码改进,使其可以进行更好的测试。将测试人员视为开发团队的一部分,每个人都可以在其中贡献代码。它有助于问责制并提高自治性。每个人都可以互相帮助,如果所有代码都在同一个项目中,并且所有代码在合并之前都要经过审核和批准,那么每个人都是IT的潜在开发者。手动测试的过去已不复存在。将Dev与Testing分开的是一堵砖墙。撕下来。