硒测试结构



我编写了一个硒测试,它可以点击"管理面板"页面上的每个选项,然后拍摄每个新页面的屏幕截图。

我现在的任务是对每种语言(目前为11种)进行测试。

如何继续?我是否为每种语言创建一个新的测试类。或者我在我现有的测试上做一个循环,循环通过每个URL(每种语言都有不同的URL)。

我的测试代码适用于每种语言。

那么,实现这一目标的最佳实践是什么呢?感谢的所有帮助

使用Java、TestNG和POM 进行编辑

如果您已经用JUnit编写了测试,那么您可以使用参数化运行程序来参数化测试。您可以将语言定义为参数,它会自动为提供的所有语言运行测试。

如果您使用的是TestNG,那么您也可以参数化测试,并使用@DataProvider注释方法提供数据,更多详细信息请点击此处。

在我的理解中,使用现有的代码,因此如果发生任何更改,则需要较少的可维护性才能使脚本再次正常运行。

每种语言都会相应地维护日志和屏幕截图描述,以便正确跟踪错误。

我假设您使用的是POM!?如果是这样的话,那么重用你的页面对象当然是好事,但你会被限制不能通过链接文本来定位你的网络元素,这在一些网站上可能会变得困难。

如果这在你测试的网站上不是问题,那么继续重用你的类。如果问题,那么您应该考虑为每个网页编写一个基类,并从这些基类中的每一个派生出每种语言的特定类,所有LinkText和其他特定语言的东西都位于这些基类中。如果每页90%都是特定于语言的,那么省略基类并简单地为每页/语言组合编写一个类当然会更明智。

@RichardHansson使用上面提到的Gerald这样的DataProvider。如果您使用循环,那么任何测试上的1个错误都将导致所有其他测试无法运行,并且可能很难确定问题所在。如果使用@DataProvider注释,则

  • 每个场景都将作为自己的测试运行,不依赖于其他
  • 每个测试在测试报告中都有自己的结果
  • 无代码重复

http://testng.org/doc/documentation-main.html#parameters-数据提供者

最新更新