testng參數化學習

有兩種方式:

1.使用testng.xml----@parameter ,適合參數化簡單的測試數據

2.數據提供者 ------@dataProvider,適合複雜的測試數據,如對象、從數據庫和文件中讀取的數據等。

 

一.使用@parameter參數化登錄腳本

腳本代碼:

@Test

  @Parameters({"username","pwd","expect"})

  public void testLogin(String username,String pwd,String expected) {

  WebElement name = driver.findElement(By.id("login_name"));

  name.sendKeys(username);

  WebElement passwd = driver.findElement(By.id("user_pass"));

  passwd.sendKeys(pwd); 

  WebElement clk = driver.findElement(By.className("btn_01"));

  clk.click();

  WebElement message = driver.findElement(By.className("error2"));

  System.out.print(message.getText());

  assertEquals(expected,message.getText());

  }

Testng.xml配置參數:

<?xml version="1.0" encoding="UTF-8"?>

<suite name="Suite" parallel="false">

  <test name="Test">

      <parameter name="username" value="ranling"/>

      <parameter name="pwd" value=""/>

      <parameter name="expect" value="用戶名或密碼不能爲空"/>

    <classes>

      <class name="com.sample.sampleTest"/>

    </classes>

  </test> <!-- Test -->

</suite> <!-- Suite -->

.testng.xml文件中通過<parameter/>設置參數、參數值,但要注意範圍,<suite><test>標籤定義了suitetest兩種測試範圍。滿足規律如下:

1.在suit範圍內定義某個參數對所有的test都有效

2.在test範圍內定義某個參數只針對當前test有效

3.在suittest中有某個相同的參數,test範圍內的參數會自動屏蔽suit中的參數

 

二.使用@dataProvider參數化登錄腳本

 

//1.聲明數據提供者,並命名

      @DataProvider(name="keyword")

  public Object[][] keywordProiverd(){

  return new Object[][]{{"hi"},{"nihao"}};

  }

//2.爲測試方法提供測試數據

  @Test(dataProvider="keyword")

  public void testProvider(String key){

  System.out.println(key);

  }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章