testng数据驱动返回map和string两种方式
1.yaml数据展示 user.yaml
#登录接口正确的用户名密码 - 'uri': '/console/index.html#/login' 'username': 'liqiang1' 'password': '111111' #错误的接口数据 - 'uri': '/console/index.html#/login' 'username': 'liqiang222' 'password': '22222'
2.代码展示
package com.cloud7.classic.User;
import com.cloud7.utils.ConfigBaseUtils;
import com.cloud7.utils.httpclient.HttpClientUtils;
import com.cloud7.utils.YamlUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* 登录接口测试
*/
public class LoginTest {
public LoginTest() {
}
private static final Logger logger = LoggerFactory.getLogger(LoginTest.class);
Map<String, String> globalProper=ConfigBaseUtils.getConfig();
//获取yaml中的所有数组值
List<Object> list= YamlUtils.getYmalList("/datas/user.yaml");
//获取全局ip
String ip= globalProper.get("ip");
//获取全局port
String port= globalProper.get("port");
@DataProvider(name="datas")
public Object[][] dataProvider() {
Object[][] obj = new Object[list.size()][3];
for (int i = 0; i < list.size(); i++) {
LinkedHashMap<String, String> map= (LinkedHashMap<String, String>) list.get(i);
int j=0;
for(Map.Entry<String,String> entry: map.entrySet()){
obj[i][j] = String.valueOf(entry.getValue());
j++;
}
}
return obj;
}
@Test(dataProvider = "datas")
public void testLogin(String a,String b,String c){
System.out.println("a:"+a+"b:"+b+"c:"+c);
}
@DataProvider(name="datas2")
public Object[][] dataProvider2() {
Object[][] obj = new Object[list.size()][];
for (int i = 0; i <list.size() ; i++) {
obj[i]=new Object[]{
list.get(i)
};
}
return obj;
}
@Test(dataProvider = "datas2")
public void testLogin2(Map<?,?> map){
System.out.println("ok:"+map.get("username"));
}
}
浙公网安备 33010602011771号