第十八章 TestNG-Parameters
1.读取xml文件中的参数
xml配置文件:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression Test">
<test name="Application name" preserve-order="false">
<parameter name="result" value="9"></parameter>
<classes>
<class name="TestClass.TestDemo1"></class>
</classes>
</test>
</suite>
@Parameters({“result”})使用xml中的添加的parameter
public class TestDemo1 {
@Test
@Parameters({"result"})
public void test01(String result) {
ClassToBeTest classToBeTest = new ClassToBeTest();
int prosum = Integer.parseInt(result);
int sum = classToBeTest.sum(4, 5);
Assert.assertEquals(sum, prosum);
System.out.println("test01执行完成");
}
}
2.用TestNG并行执行case
根据情况选择parallel=“classes” parallel="tests"parallel=“methods”
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Regression Test" parallel="classes">
<test name="Application name" preserve-order="false">
<parameter name="result" value="9"></parameter>
<classes>
<class name="TestClass.TestDemo1"></class>
<class name="TestClass.TestDemo2"></class>
</classes>
</test>
<test name="Application name01" preserve-order="false">
<parameter name="result" value="9"></parameter>
<classes>
<class name="TestClass.TestDemo1"></class>
</classes>
</test>
</suite>
3.在谷歌和IE并行打开百度并登录
ChromeLoginDemo
package LoginDemo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import javax.xml.bind.Element;
/**
* @author 96510
* @version 1.0
* @date 2021/7/20
*/
public class ChromeLoginDemo {
WebDriver driver;
String url;
@BeforeTest
@Parameters({"browserChrome"})
public void setup(String browserChrome){
if(browserChrome.equals("Chrome")){
driver = new ChromeDriver();
}
url = "http://www.baidu.com";
driver.get(url);
driver.manage().window().maximize();
}
@Test
@Parameters({"name","password"})
public void login(String name,String password) throws InterruptedException {
WebElement element = driver.findElement(By.id("s-top-loginbtn"));
element.click();
Thread.sleep(3000);
driver.findElement(By.id("TANGRAM__PSP_11__footerULoginBtn")).click();
Thread.sleep(2000);
driver.findElement(By.id("TANGRAM__PSP_11__userName")).sendKeys(name);
driver.findElement(By.id("TANGRAM__PSP_11__password")).sendKeys(password);
driver.findElement(By.id("TANGRAM__PSP_11__submit")).click();
}
@AfterClass
public void quit(){
// driver.quit();
}
}
IELoginDemo
package LoginDemo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
import javax.xml.bind.Element;
/**
* @author 96510
* @version 1.0
* @date 2021/7/20
*/
public class IELoginDemo {
WebDriver driver;
String url;
@BeforeTest
@Parameters({"browserIE"})
public void setup(String browserChrome){
DesiredCapabilities caps = DesiredCapabilities.internetExplorer();
caps.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);// //忽略缩放设置
if(browserChrome.equals("IE")){
driver =new InternetExplorerDriver(caps);
}
url = "http://www.baidu.com";
driver.manage().window().maximize();
driver.get(url);
}
@Test
@Parameters({"name","password"})
public void login(String name,String password) throws InterruptedException {
WebElement element = driver.findElement(By.id("s-top-loginbtn"));
element.click();
Thread.sleep(3000);
driver.findElement(By.id("TANGRAM__PSP_11__footerULoginBtn")).click();
Thread.sleep(2000);
driver.findElement(By.id("TANGRAM__PSP_11__userName")).sendKeys(name);
driver.findElement(By.id("TANGRAM__PSP_11__password")).sendKeys(password);
driver.findElement(By.id("TANGRAM__PSP_11__submit")).click();
}
@AfterClass
public void quit(){
// driver.quit();
}
}
ParallelloginDemo.xml
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite thread-count="2" name="Regression Test" parallel="tests">
<parameter name="browserIE" value="IE"></parameter>
<parameter name="browserChrome" value="Chrome"></parameter>
<parameter name="name" value="xiexiie"></parameter>
<parameter name="password" value="hahaha"></parameter>
<test name="Application name" preserve-order="false">
<classes>
<class name="LoginDemo.ChromeLoginDemo"></class>
</classes>
</test>
<test name="Application name01" preserve-order="false">
<classes>
<class name="LoginDemo.IELoginDemo"></class>
</classes>
</test>
</suite>