@DataProvider 實現數據的驅動

data provider 自定義二維對象數組

       注意事項: 1、定義DataProvider name, 如果沒有定義name屬性則匹配二維數組名

        2、test annotation 要指定dataProvider name和步驟1 的name值相同

        3、數組數據類型要和測試方法參數類型匹配。

package logpost;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import org.apache.http.client.ClientProtocolException;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;

public class LogCase {
	String url="http://114.91.125.84:9030/login";
	String Cookie="UM_distinctid=16dd35171317-034a3d44c9e52c-74797e32-1fa400-16dd3517132f5;"
			+ " __guid=210028117.1296739065877634300.1571208394195.895; "
			+ "localeValueTemp=undefined; remb=0; n_p_value=;"
			+ " _cnzz_CV1277120178=42%7C%E6%99%AE%E9%80%9A%E7%94%A8%E6%88%B7%7C0;"
			+ " localeCookie=\"\"; JSESSIONID=AAE0A86847D3FF2A5108FD6E027C02D4; "
			+ "CNZZDATA1277120178=347791446-1571204869-%7C1571215925; lang=zh_CN;"
			+ " monitor_count=12";
	@Test(dataProvider="createData1")//這裏用的就是函數名稱,如果@DataProvider(name="test1"),則@Test(dataProvider="test1")
	public void test(String a,String b) throws InterruptedException {
//		String username=a;
		String clientUrl="";
//		String password="e0efb90a49746d1cb8";
		Map<String, String> params=new HashMap<String, String>();
		params.put("username", a);
		params.put("clientUrl", clientUrl);
		params.put("password", b);
		System.out.println("---------------");
		Set<String>keys=params.keySet();
		for (String key : keys) {
			String value=params.get(key);
			System.out.println("key:"+key);
			System.out.println("value:"+value);
			
		}
		try {
			HttpUtil.doPost(url,Cookie,params);
		} catch (ClientProtocolException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
	//@DataProvider
	@DataProvider(name="test1")
	public Object[][] createData1(){
		 Object[][] datas= new Object[][]{
				{"13852772893","e0efb90a49746d1cb8"}		
		};
		return datas;
	}
	

	
}
[RemoteTestNG] detected TestNG version 6.9.10
[TestNG] Running:
  C:\Users\Administrator\AppData\Local\Temp\testng-eclipse--1490201973\testng-customsuite.xml

---------------
key:password
value:e0efb90a49746d1cb8
key:clientUrl
value:
key:username
value:13852772893
password
e0efb90a49746d1cb8
clientUrl

username
13852772893
狀態碼是:302
報文信息:[Content-Length: 0,Chunked: false]
報文信息:
str:Found
PASSED: test("13852772893", "e0efb90a49746d1cb8")

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================


===============================================
Default suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================

[TestNG] Time taken by org.testng.reporters.EmailableReporter2@152f6e2: 14 ms
[TestNG] Time taken by org.testng.reporters.jq.Main@818063: 46 ms
[TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 4 ms
[TestNG] Time taken by org.testng.reporters.XMLReporter@9a8472: 14 ms
[TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@1ebcae2: 24 ms
[TestNG] Time taken by org.testng.reporters.JUnitReportReporter@75222b: 2 ms

 

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