我已经编写了一个selenium测试,点击了管理面板上的每个选项"页面,然后拍摄每个新页面的屏幕截图。
我现在的任务是对所有语言(目前为11)进行此测试。
我该怎么办? 我是否为每种语言创建了一个新的测试类。 或者我在现有测试中循环遍历每个URL(每种语言的不同URL)。
我测试的代码适用于每种语言。
那么实现这一目标的最佳做法是什么?感谢所有帮助
使用Java,TestNG和POM编辑
答案 0 :(得分:1)
如果您已在JUnit中编写测试,则可以使用Parameterized运行器来参数化测试。 您可以将语言定义为参数,它会自动运行所有语言的测试。
如果您正在使用TestNG,您也可以参数化测试并使用GetControlValidationValue();
带注释的方法提供数据,更多详情here。
答案 1 :(得分:0)
在我的理解中使用现有的代码所以如果有任何改变,那么你需要更少的可维护性来让脚本再次正确运行它。
在每种语言相应地维护日志和屏幕截图说明之后,您可以正确地跟踪错误。
答案 2 :(得分:0)
我假设您正在使用POM!?如果是这样,那么重新使用页面对象当然是好的,但是你只能通过链接文本找到你的网页元素,这在某些网站上可能会变得很困难。
如果这不是您正在测试的网站上的问题,那么请继续重复使用您的课程。如果 是一个问题,那么你应该考虑为每个网页编写一个基类,并从每个基类中推导出每种语言的特定类,其中所有LinkText
和其他语言 - 特定的东西位于。如果每个页面的90%是特定于语言的,那么省略基类并且每页/语言组合只编写一个类当然更为明智。
答案 3 :(得分:0)
@RichardHansson使用像上面提到的Gerald这样的DataProvider。如果您使用循环,那么任何测试上的1个错误都将导致所有其他测试无法运行,并且可能很难确定问题所在。如果使用@DataProvider注释,则
http://testng.org/doc/documentation-main.html#parameters-dataproviders