我目前正在工作,使用Selenium
通过Java
Eclipse
对我们的网页进行GUI测试。我一直试图以这样的方式编写测试程序,以便最大化我可以重用的代码量,因此我现在有很多辅助方法,它们的功能几乎就像一个框架。这导致我的测试类变得相当臃肿,只有一种方法用作实际测试,其余方法是测试的实现。
目前我只是从Eclipse
运行测试,我的所有方法都是静态的。
根据我的理解,我可以通过几种不同的方式将事情分开:
一种方法是将所有方法放入我用作框架的类中,并在编写实际测试时扩展它,但我不知道框架中是否有框架({{ 1}})有道理。
另一种方法可能是将我的辅助方法放入一个对象中,我可以为每个测试使用其中一个对象。我不知道这是不是很好的做法,或者它是否会导致问题。这也意味着我必须输入更多才能进行相同数量的测试。
我的主要问题是:
将测试类拆分为测试类和实现类的最佳方法是什么?
我在Selenium
的预期用途之外做了什么?
答案 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(),
然后处理其中的登录代码。你可以在其他地方重用这些代码。总是尝试模块化你的实现。