四种方法实现自动化的逻辑部分和数据处理独立性
介绍四种方法实现selenium自动化逻辑部分和测试数据的独立的常用方法:
1) 使用testng.xml设置参数
2) 使用DataProviders提供参数
3) 使用excel表格读取测试数据
4) 使用读取mysql数据库的方法获取测试数据
其中1,2两种方法都涉及到TestNG的使用,请大家用此两种方法之前熟悉TestNG,在项目的Java Build Path里边需要添加testng.jar这个包。
以登录163邮箱的登录页面为例说明这三种测试方法:
注:我在测试的时候所有的程序段都放在com..test.java这个包下
由于以下的程序段中都会用到login()这个方法,所以把这个login()相关的程序段也展示出来:
注:login方法在Login()这个类里边
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.WebElement;
importorg.openqa.selenium.support.FindBy;
importorg.testng.annotations.Test;
@Test
publicclasslogin {
@FindBy(id="idInput")
privateWebElementyonghuming;
@FindBy(id="pwdInput")
privateWebElementmima;
@FindBy(id="loginBtn")
privateWebElementdenglu;
public voidlogin(WebDriver driver,String username,String password)
{
driver.get("http://mail.163.com");
yonghuming.sendKeys(username);
mima.sendKeys(password);
denglu.click();
}
}
一、使用testng.xml设置参数
testLogin1.xml里边的内容为:
<?xmlversion="1.0"encoding="UTF-8"?>
<suitename="Suite"parallel="false">
<parametername="username"value="justForYourTesting"/>
<parametername="password"value="135135"/>
<testname="testLogin1">
<classes>
<classname="com.test.java.testLogin1"/>
</classes>
</test><!-- Test -->
</suite><!-- Suite -->
上面的username和password两个参数是登录163邮箱的时候用到的用户名和密码。
packagecom.test.java;
importorg.openqa.selenium.WebDriver;
importorg.openqa.selenium.firefox.FirefoxDriver;
importorg.openqa.selenium.support.PageFactory;
importorg.testng.annotations.Parameters;
importorg.testng.annotations.Test;
publicclasstestLogin1 {
@Test
@Parameters({"username","password"}) // username和password两个变//量名称必须和testLogin.xml里边的参数名字一样
publicvoidtestLogin(String username, String password)
{
WebDriver driver=newFirefoxDriver();
login m=PageFactory.initElements(driver, login.class);
m.login(driver,username,password);
}
}
当程序运行到@Parameters({"username","password"})这条注解的时候会自动去testLogin.xml里边查找这两个参数的值。然后将这两个参数的值作为实参传递给testLogin(String,String)方法。
这种方法只能通过右键点击testLogin1.xml选择Run as > TestNG Suite的方式运行了.
注:原创作品 转载请注明出处。