自動化測試~模塊篇
-
介紹
本篇介紹自動化測試的模塊劃分。
模塊劃分、用例切割、函數以及類的封裝,從某個角度來看,都可以提高代碼的可複用性。代碼隻有可複用了,才能一步步地減輕自動化測試人員的工作量。如果,還沒有在一個項目中寫了超過30個類的話,可以跳過本篇——也許你無法理解複用的重要程度。
本文介紹的自動化測試框架采用Java注解類的方式來進行模塊的劃分,而模塊類可以是一個普通的Java類,也可以實現框架提供的方便使用的接口(EngineAware、WebDriverAware)。而涉及的注解包括:AutoModule、AutoApplication。先給出一個簡單的示例:
import org.suren.autotest.web.framework.annotation.AutoModule; /** * @author suren */ @AutoModule(name = "loginModule") public class UserModule { public void login(){} public void logout() {} public void updateProfile() {} }
- AutoModule
該注解有三個屬性:name、description、acceptExcetpion。name屬性即模塊的名稱,description為模塊描述信息。這些信息都將會在測試報告中得到體現。
- AutoApplication
該注解有五個屬性:name、description、customEnvInfo、concernMailList、scanBasePackages。name屬性為獨立測試流程的名稱,將會在測試報告中有體現。
- EngineAware
如果您的模塊類實現該接口的話,就可以拿到SettingUtil類的實例,以便後續獲取Page類等等操作:
import org.suren.autotest.web.framework.annotation.AutoModule; import org.suren.autotest.web.framework.core.EngineAware; import org.suren.autotest.web.framework.settings.SettingUtil; /** * @author suren */ @AutoModule(name = "loginModule") public class UserModule implements EngineAware { private SettingUtil util; public void login() { util.getPage("LoginPage"); } public void logout() { util.getPage("LogoutPage"); } public void updateProfile() {} @Override public void setEngine(SettingUtil settingUtil) { this.util = settingUtil; } }
- WebDriverAware
通過該實現類,就能拿到Selenium框架中的webDriver示例,調用Selenium的原生api:
import org.openqa.selenium.WebDriver; import org.suren.autotest.web.framework.annotation.AutoModule; import org.suren.autotest.web.framework.selenium.WebDriverAware; /** * @author suren */ @AutoModule(name = "loginModule") public class UserModule implements WebDriverAware { private WebDriver webDriver; public void login(){} public void logout() {} public void updateProfile() {} @Override public void setWebDriver(WebDriver webDriver) { this.webDriver = webDriver; } }
- 測試流程
import org.suren.autotest.web.framework.annotation.AutoApplication; import org.suren.autotest.web.framework.selenium.SeleniumEngine; import org.suren.autotest.web.framework.settings.DriverConstants; import org.suren.autotest.web.framework.settings.SettingUtil; import org.suren.autotest.web.framework.util.ThreadUtil; import java.io.IOException; /** * @author suren */ @AutoApplication public class AnnoTest { public static void main(String[] args) throws IOException { SettingUtil util = new SettingUtil(AnnoTest.class); SeleniumEngine engine = util.getEngine(); engine.setDriverStr(DriverConstants.DRIVER_CHROME); engine.init(); UserModule module = util.getModule(UserModule.class); module.login(); } }
-
係列文章
-
參考
本文為原創,如果您當前訪問的域名不是surenpi.com,請訪問“素人派”。
最後更新:2017-08-15 10:32:26