如何将Java Selenium测试拆分为单独的类?

时间:2016-01-29 15:18:43

标签: java selenium testing web-testing design-principles

我目前正在工作,使用Selenium通过Java Eclipse对我们的网页进行GUI测试。我一直试图以这样的方式编写测试程序,以便最大化我可以重用的代码量,因此我现在有很多辅助方法,它们的功能几乎就像一个框架。这导致我的测试类变得相当臃肿,只有一种方法用作实际测试,其余方法是测试的实现。

目前我只是从Eclipse运行测试,我的所有方法都是静态的。

根据我的理解,我可以通过几种不同的方式将事情分开:

  • 一种方法是将所有方法放入我用作框架的类中,并在编写实际测试时扩展它,但我不知道框架中是否有框架({{ 1}})有道理。

  • 另一种方法可能是将我的辅助方法放入一个对象中,我可以为每个测试使用其中一个对象。我不知道这是不是很好的做法,或者它是否会导致问题。这也意味着我必须输入更多才能进行相同数量的测试。

我的主要问题是:

  • 将测试类拆分为测试类和实现类的最佳方法是什么?

  • 我在Selenium的预期用途之外做了什么?

1 个答案:

答案 0 :(得分:1)

最佳做法是为每个网络用户界面创建page object model。这将有助于您轻松访问网络元素.selenium提供该功能,您还必须做一些R& D事情。

ls | grep -l 'com.companyname.AppName' ~/Library/MobileDevice/Provisioning Profiles/*.mobileprovision | xargs rm

并将所有与selenium相关的动作放入一个类中。像 Home_Page.lnk_MyAccount(driver).click(); LogIn_Page.txtbx_UserName(driver).sendKeys("testuser_1"); LogIn_Page.txtbx_Password(driver).sendKeys("Test@123"); 或者你常见的一系列动作。

接下来是可重复使用的代码通过function.let实现,然后说Action.click(),Action.search(),然后处理其中的登录代码。你可以在其他地方重用这些代码。总是尝试模块化你的实现。