首页 > 编程语言 >java接口自动化系列(05):测试数据注入到测试方法

java接口自动化系列(05):测试数据注入到测试方法

时间:2023-12-23 21:11:38浏览次数:42  
标签:info java String 05 测试数据 caseData import logger public

 

注入测试数据

这里我们是数据驱动方式,把数据注入到测试方法

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

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

修改BaseCase.java

package com.qzcsbj.autotest.testcase;

import com.qzcsbj.autotest.entity.CaseData;
import com.qzcsbj.autotest.entity.Variable;
import com.qzcsbj.autotest.utils.ExcelUtil;
import org.apache.log4j.Logger;
import org.testng.annotations.*;
import org.testng.annotations.Optional;
import java.util.*;

/**
 * @博客 : www.cnblogs.com/uncleyong
 * @微信 : ren168632201
 * @描述 : <BaseCase>
 */

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);
        // VariableUtil.loadVariablesToMap(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);
    }
}

  

结果

运行testng.xml可以看到,用例数据注入到测试方法了

 

标签:info,java,String,05,测试数据,caseData,import,logger,public
From: https://www.cnblogs.com/uncleyong/p/17923600.html

相关文章

  • CF1055F Tree and XOR
    这道题代码虽然比较短,但花了我整整一天才过,太菜了这是CF241B的加强版,但是有点不同,因为CF241B后半部分求前\(k\)大的和没法优化了,而这道题能把前面的求第\(k\)小时间复杂度优化到单log,但是需要注意这道题开trie完全开不下,所以肯定没法trie上二分做到单log对于某些......
  • Java登陆第二十九天——Servlet继承关系,service和doGet的区别
    Servlet继承关系树:Servlet接口查看Servlet源码publicinterfaceServlet{voidinit(ServletConfigvar1)throwsServletException;ServletConfiggetServletConfig();voidservice(ServletRequestvar1,ServletResponsevar2)throwsServletException,I......
  • Java数组常见的几种排序。
    publicclasscode2{publicstaticvoidmain(String[]args){int[]x={37,89,23};for(intz=0;z<x.length-1;z++){intminIndex=z;for(inti=z+1;i<x.length;i++){if(......
  • 一文让你玩转 Java 8 Stream
    Java8中的StreamAPI是一个强大的处理数据的新特性,它提供了一种声明式、高效且易于并行化的数据处理方式。以下是一些Stream的主要特性和常用场景:主要特性:延迟执行(LazyEvaluation):Stream不会立即执行任何操作,而是在需要时才进行计算。这有助于提高性能和资源效率。函数式编......
  • Java语言学习第一步:JDK下载与安装教程(超详细)
    一、简介JRE(JavaRuntimeEnvironment)Java程序运行时的环境,包含JVM和运行时所需的核心类库。若想运行一个已有的Java程序,只需要安装JRE即可。JDK(JavaDevelopmentKit)Java程序开发工具包,包含JRE和开发人员使用的工具。其中的开发工具:编译工具(javac.exe)和运行工具(java.exe......
  • Java Spring Boot 集成 elasticsearch6.8.x
    在全文搜索领域,毫无疑问,当下elasticsearch应用广泛,其优势自不必说,凭借全文快速搜索,可以在短时内实现大数据量的查询。今天学习下在SpringBoot中集成elasticsearch开发,这里主要展示可以怎么用,至于开发人员向通过ElasticsearchORM封装,也可以参考下面的示例。环境:Sprin......
  • 【P2505】今天开始我要自己上厕所 爸爸妈妈你们不要小看我 宝宝巴士教我上厕所秘诀 我
    题目传送门不管怎么说,双倍经验。题意很简洁了。对于每个源点\(s\),先跑一遍dijkstra。显然,若满足\(dis_v=dis_u+w_{u,v}\),则\(e(u,v)\)一定在最短路上。显然在\(w_{u,v}>0\)时,不存在\(u,v\)使得\(dis_u=dis_v+w_{u,v}\wedgedis_v=dis_u+w_{u,v}\)。因此,若将最短......
  • JAVA面试心得
    当参加Java面试时,了解一些常见的问题和准备相应的答案是至关重要的。在我的面试经验中,我总结出了一些有助于成功的关键因素。以下是我在Java面试中的一些心得:1.深入理解Java基础知识在面试中,Java的基础知识是至关重要的。包括面向对象编程(OOP)的概念,如封装、继承和多态,以及Java的基......
  • 【开源】基于JAVA的超市商品管理系统
    一、摘要1.1简介随着社会的发展,人们的生活水平不断地提高,超市遍布城市各个社区,它们繁荣了社会经济,也便利了人们的生活,是人们生活中不可缺少的一部份。顾客需要非常方便的找到自己想要的商品,超巿商品库存、摆放、价格方面的工作,需要一个稳定、可靠的管理系统帮助寻找管理商品的位置......
  • 抓取java堆栈失败的思考-Safepoint等的学习
    抓取java堆栈失败的思考-Safepoint等的学习背景前期解决问题都是靠抓取进程堆栈jstack,后者是jmap到内存dump的方式来进行分析.最近连续有两个比较大的项目出现了抓取dump/stack失败的情况.具体原因可能还不太一样.周末再翻找之前的资料时猜到了可能得几个原因.想总结......