接第二天
1.实现目标
这里我们是数据驱动方式,把数据注入到测试方法,在测试方法中就可以获取对象中的数据。
2.注入测试数据
上一篇我们已经把用例数据封装到对象并放到list中,这里我们把用例对象list中的对象分别放到Object类型的一维数组中,再把一维数组添加到新对象类型一维数组的list中
然后我们在测方法中打印获取到的用例数据,看获取到的数据对不对
修改BaseCase.java
package com.syq.autotest.testcase;
import com.syq.autotest.entity.CaseData;
import com.syq.autotest.entity.Variable;
import com.syq.autotest.utils.ExcelUtil;
import org.testng.annotations.*;
//import org.testng.log4testng.Logger;
import org.apache.log4j.Logger;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* @description
* @author: Admin
* @create: 2024/1/26 16:21
*/
public class BaseCase {
public static Logger logger = Logger.getLogger(BaseCase.class);
// 保存所有用例对象
public static List<CaseData> cases = new ArrayList<CaseData>();
// 存放变量对象的列表
public static List<Variable> variables = new ArrayList<Variable>();
@Parameters({ "excelPath", "dataSheetName", "variableSheetName"})
@BeforeTest
public void readDataFromExcel(@Optional("caseData/caseData-解决韧.xlsx") String excelPath, @Optional("case") String dataSheetName, @Optional("variables") String variableSheetName){
logger.info("excelPath: " + excelPath);
logger.info("dataSheetName: " + dataSheetName);
logger.info("variableSheetName: " + variableSheetName);
cases = ExcelUtil.loadExcel(excelPath, dataSheetName, CaseData.class);
variables = ExcelUtil.loadExcel(excelPath, variableSheetName, Variable.class);
// logger.info("读取文件获取到的cases对象:" + cases);
// logger.info("读取文件获取到的variables对象:" + variables);
}
@DataProvider(name = "datasFromExcel")
public Iterator<Object[]> getCaseDatas(){
List<Object[]> apiDataList = new ArrayList<Object[]>();
for (CaseData caseData : cases){
apiDataList.add(new Object[] { caseData });
}
return apiDataList.iterator();
}
@Test(dataProvider = "datasFromExcel", timeOut = 600000)
public void test(CaseData caseData){
// 获取对象中的数据
String url = caseData.getUrl();
String requestType = caseData.getRequestType();
String headers = caseData.getHeaders();
// String cookies = caseData.getCookies(); // 暂未涉及
String parameters = caseData.getParameters();
// String uploadFile = caseData.getUploadFile(); // 暂未涉及
String initSql = caseData.getInitSql();
String globalVariables = caseData.getGlobalVariables();
String assertFields = caseData.getAssertFields();
logger.info("url: " + url);
logger.info("requestType: " + requestType);
logger.info("headers: " + headers);
logger.info("parameters: " + parameters);
logger.info("initSql: " + initSql);
logger.info("globalVariables: " + globalVariables);
logger.info("assertFields: " + assertFields);
}
}
3.结果演示
运行xml