java自动化之自动化框架项目(第三天-测试数据注入到测试方法)

接第二天

1.实现目标

这里我们是数据驱动方式,把数据注入到测试方法,在测试方法中就可以获取对象中的数据。

2.注入测试数据

上一篇我们已经把用例数据封装到对象并放到list中,这里我们把用例对象list中的对象分别放到Object类型的一维数组中,再把一维数组添加到新对象类型一维数组的list中

然后我们在测方法中打印获取到的用例数据,看获取到的数据对不对

修改BaseCase.java

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

相关推荐
YoungStudyAI5 小时前
QA的下一个自动化阶段,可能不是再写更多脚本,而是设计测试Agent
运维·自动化
金八梭5 小时前
车辆能源种类
自动化·车辆工程·电气工程
分布式存储与RustFS6 小时前
纠删码到底吃掉了多少容量:EC:4、EC:8 的利用率与容错怎么算
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
遇见小修修6 小时前
3步解决打印机0x00000709报错 ,广州深圳程序员可自行排查
运维·打印机·维修·打印机报错·打印机运维·打印机故障自查
Huangjin007_8 小时前
【Linux 系统篇(二十五)】文件(二) 系统文件I/O详解
linux·运维·服务器
微小冷8 小时前
Mermaid画甘特图
运维·markdown·甘特图·mermaid·时间图
天远Date Lab8 小时前
微服务架构实战:基于天远学历信息高级版构建自动化人才准入网关
人工智能·微服务·架构·自动化
LBL12209 小时前
内网容器部署FTP日志监控服务
运维·服务器·容器
志栋智能10 小时前
超自动化巡检:驱动持续改进的运维飞轮
运维·自动化
海宇大数据10 小时前
零信任架构实战:基于海宇学历核验版构建自动化风控审查网关
运维·人工智能·架构·自动化