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

}

  

posted on 2023-05-18 17:02  groby  阅读(44)  评论(0编辑  收藏  举报