如何构建数据驱动的SeleniumWebDriver+Java+TestNG框架



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

对于给定的网站,我有所有其他常见的网页,但对于每一笔交易,一个几乎像表单的网页都会有所不同。

所以,我有以下选择。

  1. 为所有静态公共页面创建页面对象模型(POM(,并开始为每个事务中不同的页面创建POM
  2. 为所有静态通用页面创建一个页面对象模型(POM(,并使用一些外部数据源(XML、Excel等(,我可以为该特定页面生成测试

我赞成第二种方法,因为我不需要仅仅因为有一个页面就为每个新事务重新编写代码?

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

Yes第二种方法-基于"Page Obj模型"是保持代码隔离和易于维护的最佳方法。

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

它与自动化FW(POM、Selenium、Java、TestNG/Junit和Maven(项目配合得很好。

通过使用cucumber,您不需要依赖任何其他测试数据源,即excel或xml,这可以很容易地与cucumber的特征文件保持一致。

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

如果你想学习Cucumber/BDD->网上有很多非常好的视频教程。我的一个Fav在这里-https://www.youtube.com/playlist?list=PL6tu16kXT9PpteusHGISu_lHcV6MbBtA6

对于网络阅读:https://www.lambdatest.com/blog/automation-testing-with-selenium-cucumber-testng/

测试愉快!

我也参与过类似的项目。我建议使用#1。原因是将来你可能会在网页上发现差异,所以通用功能并不总是适用于每个页面。

所以,如果你现在选择#2,那没关系,但在这种情况下,你最终会选择#1。

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

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

  1. 独立测试
  2. 所有测试都应该从JSON/XML/YAML/XLS读取数据。。。任何来源
  3. 具有定位器和其他设置的特性文件
  4. 您还应该创建一个基类,该基类将具有可在测试中使用的通用可重用函数
  5. 您应该让它在网格上运行很容易,只需更改外部标志即可。。测试应在GRID中运行
  6. 应使用屏幕截图、错误和故障进行正确的HTML报告

同时观看此视频https://youtu.be/s-W8pw9GnWc

最新更新