我计划使用SeleniumWebDriver+Java+POM(页面对象模型(+TestNG来自动化一些网站。
对于给定的网站,我有所有其他常见的网页,但对于每一笔交易,一个几乎像表单的网页都会有所不同。
所以,我有以下选择。
- 为所有静态公共页面创建页面对象模型(POM(,并开始为每个事务中不同的页面创建POM
- 为所有静态通用页面创建一个页面对象模型(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对象模型与数据驱动框架混合在一起。基本上在数据驱动的框架中,数据是从外部文件中读取的
如果你想构建一个简单的纯数据驱动框架,那么它应该有
- 独立测试
- 所有测试都应该从JSON/XML/YAML/XLS读取数据。。。任何来源
- 具有定位器和其他设置的特性文件
- 您还应该创建一个基类,该基类将具有可在测试中使用的通用可重用函数
- 您应该让它在网格上运行很容易,只需更改外部标志即可。。测试应在GRID中运行
- 应使用屏幕截图、错误和故障进行正确的HTML报告
同时观看此视频https://youtu.be/s-W8pw9GnWc