如何构建数据驱动的Selenium WebDriver+;Java+;TestNG框架

如何构建数据驱动的Selenium WebDriver+;Java+;TestNG框架,java,selenium,gradle,testng,Java,Selenium,Gradle,Testng,我计划使用SeleniumWebDriver+Java+POM(页面对象模型)+TestNG自动化一些网站 我有所有其他网页共同为给定的网站,但对于每一笔交易一个网页,这几乎像一个表单将是不同的 所以,我有以下选择 为所有静态公共页面创建页面对象模型(POM),并开始为每个事务中不同的页面创建POM 为所有静态公共页面创建页面对象模型(POM),并使用一些外部数据源(XML、Excel等),我可以为该特定页面生成测试 我赞成第二种方法,因为我不需要为每个新事务重新编写代码,仅仅因为有一个页面是不

我计划使用SeleniumWebDriver+Java+POM(页面对象模型)+TestNG自动化一些网站

我有所有其他网页共同为给定的网站,但对于每一笔交易一个网页,这几乎像一个表单将是不同的

所以,我有以下选择

  • 为所有静态公共页面创建页面对象模型(POM),并开始为每个事务中不同的页面创建POM
  • 为所有静态公共页面创建页面对象模型(POM),并使用一些外部数据源(XML、Excel等),我可以为该特定页面生成测试
  • 我赞成第二种方法,因为我不需要为每个新事务重新编写代码,仅仅因为有一个页面是不同的


    有什么想法吗?或者有人已经实现了类似的东西吗?

    我曾经在类似的项目中工作过。我建议用#1。原因是,将来您可能会发现web页面中存在差异,所以通用函数并不总是适用于每个页面


    因此,如果您现在使用#2,那么它很好,但在这种情况下,您最终将遵循#1。

    是的,第二种方法-基于“页面对象模型”最好保持代码的隔离性和易维护性

    对于您的测试数据维护,我建议您使用Cucumber-based(BDD驱动)框架

    它非常适合自动化FW(POM、Selenium、Java、TestNG/Junit和基于Maven的)项目

    通过使用cucumber,您无需依赖任何其他测试数据源,即excel或xml,这可以轻松地与cucumber的功能文件进行维护

    BDD还提供了将“BA-QA-DEV和管理”保持在同一页面上的主要优势。 如果您不想使用Cucumber/BDD,那么您可以使用Excel的testng数据提供程序功能来实现更好的测试数据管理

    如果你想学习Cucumber/BDD->网上有很多很好的视频教程。我的一个最爱在这里-

    网上阅读:


    快乐测试

    上面的答案是将页面对象模型与数据驱动框架相结合。 基本上,在数据驱动框架中,数据是从外部文件读取的

    如果您想构建一个简单的纯数据驱动框架,那么它应该

  • 独立测试
  • 所有测试都应该从JSON/XML/YAML/XLS中读取数据。。。任何来源
  • 具有定位器和其他设置的属性文件
  • 您还应该创建一个基类,该基类将具有可在测试中使用的通用可重用函数
  • 您应该使其在网格上运行非常简单,只需更改外部标志。。测试应该在网格中运行
  • 应进行适当的HTML报告,包括屏幕截图、错误和失败
  • 也请观看此视频

    是啊!黄瓜在这种情况下是最好的