91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

利用Testng做參數化

發布時間:2020-06-28 14:57:49 來源:網絡 閱讀:1945 作者:AnthonyGao1105 欄目:軟件技術

簡述下testng做參數化的幾種方式:

@Parameters

dataProvider


如果使用的參數相對簡單可以使用@Parameters,把參數定義在.xml文件中即可,如新建一個testng.xml
考慮如下測試場景,我想打開51cto的官網,然后退出

我就可以把url定義在testng.xml中

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

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<!--  thread-count="4" 為同時執行的線程數   parallel="tests" 為同時執行的測試級別  -->

<suite name="ppTest" thread-count="4" parallel="tests">

<parameter name="url" value="http://www.zhengmoney.com" />


<test name="ppTest" preserve-order="true">

<classes>

<class name="pp.PPTest" />

</classes>

</test>

</suite>

然后在pp包下面新建PPTest類:

package pp;


import org.openqa.selenium.WebDriver;

import org.openqa.selenium.firefox.FirefoxDriver;

import org.testng.annotations.Optional;

import org.testng.annotations.Parameters;

import org.testng.annotations.Test;


/**

 * @author Anthony

 *

 */

public class PPTest {

  public WebDriver driver;


  /**

   * @param domainURL @Optional是如果在xml中沒讀到url就用Optional里面的值

   */

  @Parameters({"url"})

  @Test

  public void ppTest(@Optional("http://www.baidu.com/") String domainURL) {

    driver = new FirefoxDriver();

    driver.get(domainURL);

    driver.quit();

  }

}

@Parameters 可以被放置到如下位置:

(1)在任何已經被 @Test, @Before/After 或 @Factory 注解過的地方。

(2)在測試類中至多被放到一個構造函數簽。這樣,TestNG才能在需要的時候使用 testng.xml 中特定的參數來實例化這個類。這個特性可以被用作初始化某些類中的值,以便稍后會被類中其他的方法所使用。

注意:

XML中的參數會按照Java參數在注解中出現的順序被映射過去,并且如果數量不匹配,TestNG會報錯。

參數是有作用范圍的。在testng.xml 中,你即可以在<suite> 標簽下聲明,也可以在 <test>下聲明。如果兩個參數都有相同的名字,那么,定義在<test> 中的有優先權。這在你需要覆蓋某些測試中特定參數的值時,會非常方便。


DataProvider返回的是一個Object的二維數組,二維數組中的每個一維數組都會傳遞給調用函數,作為參數使用。運行的時候,會發現, @Test標識的test method被執行的次數和object[][]包含的一維數組的個數是一致的,而@Test標識的函數的參數個數,也和object內一維數組內的元素數是一致的。

申明數據源可以像這樣:

package com.example.testdata;


import org.testng.annotations.DataProvider;


/**

 * @author Anthony

 *

 */

public class TestProvider {

@DataProvider(name = "account")

public static Object[][] accountInfo() {

return new Object[][] { new Object[] { "古雷馬", "1234qwer" },

new Object[] { "古雷星", "1234qwer" } };

}


}

調用時則可以這樣:

import org.testng.Assert;

import org.testng.annotations.Test;

import com.example.testdata.TestProvider;


/**

 * @author Anthony

 *

 */

public class TestPractice {

 @Test(dataProvider = "account", dataProviderClass = TestProvider.class)

  public void testAgain(String userName, String password) {

    System.out.println("I'm test again");

    Assert.assertEquals("古雷馬", userName);

  }

}

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

东明县| 循化| 晋州市| 东至县| 巧家县| 泸定县| 稻城县| 靖西县| 犍为县| 瑞金市| 高邮市| 阳原县| 平江县| 曲阳县| 道孚县| 乐亭县| 济源市| 长阳| 敦化市| 蒲城县| 密山市| 吴堡县| 繁峙县| 阳江市| 陆川县| 陆良县| 塘沽区| 东城区| 高雄市| 手游| 康定县| 亚东县| 册亨县| 辉县市| 宜春市| 章丘市| 巴彦淖尔市| 原平市| 陆良县| 禄劝| 溆浦县|