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")); } }