自动化测试~模块篇
-
介绍
本篇介绍自动化测试的模块划分。
模块划分、用例切割、函数以及类的封装,从某个角度来看,都可以提高代码的可复用性。代码只有可复用了,才能一步步地减轻自动化测试人员的工作量。如果,还没有在一个项目中写了超过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