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

Selenium 开发人员可以做些什么来帮助自动化测试?,selenium,testing,automated-tests,frontend,ui-automation,Selenium,Testing,Automated Tests,Frontend,Ui Automation,我工作的公司正在启动一个新的web应用程序,我已经要求前端开发人员使这个应用程序对自动化友好 以前的应用程序使用react框架,很少有元素具有唯一ID(或任何唯一标识符)。这一次,我要求开发人员包括一个定制的数据属性,专门用于自动化 我正在寻找任何人谁可能有这种情况的经验 您要求您的开发人员做什么来帮助实现自动化 是否有任何标准或指导方针来命名应用程序中的元素以适应Selenium自动化 自定义数据属性是最好的方法吗?还有其他选择吗 如有任何建议/指导,将不胜感激 如果Web应用程序在设计时没有

我工作的公司正在启动一个新的web应用程序,我已经要求前端开发人员使这个应用程序对自动化友好

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

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

  • 您要求您的开发人员做什么来帮助实现自动化
  • 是否有任何标准或指导方针来命名应用程序中的元素以适应Selenium自动化
  • 自定义数据属性是最好的方法吗?还有其他选择吗 如有任何建议/指导,将不胜感激

    如果Web应用程序在设计时没有考虑到测试,那么它们可能很难测试。单页应用程序(SPA)尤其如此。SPA支持繁重的交互,而不会产生额外的页面负载(如Facebook、Gmail)。这些SPA使用请求从服务器来回转发数据,而不是页面加载

    根据以下内容,在开发web应用程序以简化测试时,应牢记以下一些最佳实践:

    • 添加有意义的类
    • 类应该指示元素的功能和状态
    • 在ID和类中为动作元素使用函数名
    • 动态生成的类和ID对测试没有帮助
    • 添加目标DOM反馈以指示应用程序状态
    • 永远不要在测试代码中硬编码内容

    结论 诚然,其中一些更改并不容易,因为开发人员可能不得不更努力地考虑使用测试友好的设计,而不是“只起作用的东西”。然而,它肯定会有助于测试的可维护性,从长远来看,这将降低成本


    tl;博士 两份参考资料:

    • 尼古拉斯·加拉赫关于
    • Yandex's
    • W3C关于
    • 帕梅拉·福克斯的文章

    测试驱动开发使自动化变得更容易。在我看来,测试人员应该是开发人员,或者是善于发现和防止错误的前开发人员。在解决方案开发所在的同一项目中编写测试。开发人员也可以加入ID,即使他们有时不想这样做,如果“测试人员”很好,他们甚至可以提交pull请求(例如在GitHub中)以改进代码,从而使他们能够更好地进行测试。将测试人员视为开发团队中的一员,每个人都可以贡献代码。它有助于问责制和提高自主性。每个人都在那里互相帮助,如果所有的代码都在同一个项目中,并且所有的代码在合并到master之前都经过了审查和批准,那么如果每个人都是潜在的开发人员,那么每个人都是潜在的开发人员。手工测试的旧时代正在消亡。将开发与测试分开是一堵砖墙。把它拆下来。

    自定义数据属性对于许多站点来说是很好的选择写自动化,他们没有在元素中添加任何特殊内容来帮助实现自动化,我们也没有为站点写自动化的问题。我建议你学习CSS选择器和XPath。一旦你学会了基础知识(也许还有更多),你就真的没有什么东西找不到了。如果你有一些不容易找到的元素的具体例子,请发表一些,我们将帮助你编写定位器和/或教你一些技巧,等等。我同意@JeffC。如果你知道如何创建和使用定位器,那么定位元素就相对容易了。我理解你们两位所说的,我在过去的一年中也这么做了。上层管理层希望将这些元素添加到前端。在我看来,我没有理由与他们争论,因为这只会让自动化团队受益。作为一名37年来一直从事自动化工作的开发人员,感谢您发布这篇文章。我上大学已经很久了,所以我怀疑学校里有没有教过这样的东西,但这是必须的。德班加布,谢谢你的全面、周到的回答