Selenium测试组织

时间:2016-10-12 05:42:36

标签: java class selenium

好的硒大师在这里有点开放的问题。我正在寻找关于组织使用面向对象原则的测试的最佳方法的一些指导。

目前我正在创建一个testrunner主类,我从中创建了一个通用测试类的对象。然后我将这个类扩展为更细粒度的测试。

一个例子。

我需要打开浏览器,输入网址,以用户身份登录。

从那里你可以访问40个不同的链接,每个链接都包含自己的功能。例如。一个配置文件链接,通向一个profiule屏幕,您可以在其中输入简介文本,上传图片,更改图片等...

另一个示例是一个通知屏幕,您可以在其中导航以查看和标记为已读等等...您收到的通知。

我可以编写代码来测试它,例如通过在该1类中创建大量方法然后从主testrunner类调用它们。必须有一个更好的组织方式,我可以有一个单独的功能类,但我不必为每个测试创建一个新对象?

对于我试图彻底学习Java和硒的困惑的帖子感到抱歉。

EDITED

我已经复制了创建YouTube视频中记录的页面对象混合模型的过程:

https://www.youtube.com/watch?v=gxwh8D_tx-0

我创建了一个Pages包,其中包含所有Page特定类,如ProfilePage,NotificationPage等...

我有第二个包含测试的包和一个生成驱动程序对象的testbase类,打开浏览器。

我想进入一个阶段,在我的测试课中,我可以为测试设置一个特定的类,例如:

class test_that_user_can_upload_profile_picture

当我创建这样一个类时,我在类中有方法,例如:test_that_navigation_to _profile_page_successful()

test_to_upload_valid_picture()

这种导航方法应该在这个类中吗?

另外我发现为了从包中访问我的方法,我需要将我的方法标记为静态。这个可以吗?我在youtube视频中注意到教师的方法不是静态的。看看设置我不太明白为什么我不能访问方法,除非我将它们标记为静态。我得到的错误是 "无法对非静态方法进行静态引用"

这是我的设置: framework

我也发现在我的ProfilePageNavigation类中,我有一堆按字母顺序按特定顺序运行的方法。

是否只是我应该在每个测试类中只有1个方法并且只调用页面类方法(或任何其他相关类)来执行此测试?如果它只是每个测试类中的一个方法,那么我不会有太多的测试类,每个测试类都有一个名称(例如)upload_valid_profile_picture和一个使用相同名称的方法?然后是另一个带有upload_invalid_profile_picture的类及其方法。我不想走那条路 - 我该如何解决?

此外,我的所有Pages类方法都必须将WebDriver驱动程序作为参数来解决这个问题 - 它有很多重复。

如果你能指出我在正确的轨道上,让我知道,将页面类方法作为静态是可以的,我们将不胜感激。

我想我只是想知道我是在正确的轨道上还是在这个早期阶段走错路。

1 个答案:

答案 0 :(得分:-1)

@tarquin - 你可以在@web上找到很多文章,有多种方法可以处理你的代码并使用它,我的方法是:

  1. 在记事本或excel中创建对象存储库,您可以从中选择/更改/管理所有对象。
  2. 使用所有可重复使用的方法创建一个类。
  3. 创建一类测试。
  4. 由于 凯沙夫