接口测试框架+数据驱动

前置知识

接口测试框架
采用HTTPOk + testNg 搭建而成,其中HttpOk 进行 http类型接口收发包,testNg 进行用例管理

背景

本文讲解项目中涉及到的数据驱动
项目中常用的数据驱动为@DataProvider 注解进行 经常将用例所需不同的场景参数以二维数组格式给出,
如:

 	@DataProvider(name = "paramsData")public Object[][] paramsData() {return new Object[][]{{"创建行中实时路线分享", "1", createShareNaviData(locInfo, linkInfo, naviId, naviType, startPoint, endPoint, viaPoint, beforeShareId), "2"},{"创建主图位置分享", "100", createShareDurtion(6000), "3"},{"创建直播路线分享", "102", createShareLiveData("a38af2efe4940f2b33d321a8b123c916"), "4"},{"创建直播路线分享", "101", createShareLiveData("a8c084090f26a38295e4a89e259000a6"), "4"},{"创建行中实时路线分享", "4", createShareNaviData(locInfo, linkInfo, naviId, naviType, startPoint, endPoint, viaPoint, beforeShareId), "2"},};}

由于该版本需要对路线直播模块进行性能验证,如直播间需要加入人员500人
则需要引入客户给出的测试数据

脚本梳理/实现思路

  1. 框架需要给出与excel文件对应的模板类
  2. 需要将excel文件中的行数据转化为json串,将所有数据以json数组(JSONFAST实现)
  3. 将第二部解析的json数组转化为二维数组

脚本实现

  1. 构造excelPojo类,私有参数与excel文件列一一对应
public class ExcelPojo {
//excel列字段private String uid;private String name;private String pwd;@Overridepublic String toString() {return "Pojo{" +"uid='" + uid + '\'' +", name='" + name + '\'' +", pwd='" + pwd + '\'' +'}';}public String getUid() {        return uid;    }public void setUid(String uid) {        this.uid = uid;    }public String getName() {       return name;    }public void setName(String name) {        this.name = name;    }public String getPwd() {        return pwd;    }public void setPwd(String pwd) {        this.pwd = pwd;    }
}
  1. excel文件数据转化为JSONArray
public static String excel2Json(String name) {Sheet sheet;Workbook book;Cell cell1, cell2;JSONArray array = new JSONArray();try {book = Workbook.getWorkbook(new File(name));sheet = book.getSheet(0);for (int i = 1; i < sheet.getRows(); i++) {cell1 = sheet.getCell(0, i);cell2 = sheet.getCell(1, i);if ("".equals(cell1.getContents())) {break;}JSONObject object = new JSONObject();object.put("name", cell1.getContents());object.put("pwd", cell2.getContents());array.add(object);}//System.out.println(array.toString());System.out.println(array.size());book.close();} catch (IOException e) {throw new RuntimeException(e);} catch (BiffException e) {throw new RuntimeException(e);}return array.toString();}
  1. DataProvider注解中将JSONArray 数据转化为二位数组,以适配脚本
 @DataProvider(name = "dataParams",parallel=true)public Object[][] dataParams() {JSONArray ary = JSON.parseArray(excel2Json("case/perception/case/testData.xls"));//批量加入人员文件路径Object[][] data = new Object[ary.size()][2];for (int i = 0; i < ary.size(); i++) {data[i][0] = ary.getJSONObject(i).getString("name");data[i][1] = ary.getJSONObject(i).getString("pwd");}return data;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/60390.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SOLIDWORKS代理商鑫辰信息科技

鑫辰信息科技是一家专业的SOLIDWORKS代理商&#xff0c;致力于为客户提供全面的CAD解决方案和技术支持。作为SOLIDWORKS的授权合作伙伴&#xff0c;鑫辰信息科技在机械设计、产品开发和工程仿真等领域拥有丰富的经验和专业知识&#xff0c;能够帮助客户有效提升设计和生产效率。…

【 AI写作鹅-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

什么是 eCPRI,它对 5G 和 Open RAN 有何贡献?

这里写目录标题 eCPRI 协议平面&#xff1a;功能分解eCPRI与CPRI的区别CPRI具有以下特点&#xff1a;eCPRI具有以下特点&#xff1a;eCPRI 的优势 所需带宽减少 10 倍适用于 5G 和 Open RAN 的 eCPRI&#xff1a; 通用公共无线接口&#xff08;CPRI&#xff09;是一种行业合作&…

关键字“退出、结束、跳过”(day13)

一、break和continue的用法 1. break关键字可以用来退出switch或循环语句 不能在if语句中使用break和continue break关键字&#xff1b;会立即终止离他最近的那个循环语句 - 可以为循环语句创建一个lable&#xff0c;来标识当前的循环 lable:循环语句 使用循环语句的时&#…

《硬件架构的艺术》笔记(二):时钟与复位

本章主要针对ASIC设计给出建议&#xff0c;独立于CAD工具以及工艺&#xff0c;主要针对模块设计和存储器接口。 同步设计 这是对时钟域控制最安全的方法&#xff0c;单个主时钟和单个主置位/复位信号驱动设计中所有时序器件。 避免使用行波计数器 行波计数器&#xff1a;用触…

使用@react-three/fiber,@mkkellogg/gaussian-splats-3d加载.splat,.ply,.ksplat文件

前言 假设您正在现有项目中集成这些包&#xff0c;而该项目的构建工具为 Webpack 或 Vite。同时&#xff0c;您对 Three.js 和 React 有一定的了解。如果您发现有任何错误或有更好的方法&#xff0c;请随时留言。 安装 npm install three types/three react-three/fiber rea…

什么是UDP和TCP?有什么区别?应用场景分别都有哪些?

UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议&#xff09;都是互联网协议套件的一部分&#xff0c;用于在网络中传输数据。它们都位于OSI模型的传输层&#xff0c;但两者在工作方式、可靠性和使用场景上存在显著差异。 UDP (User Datagram Protoc…

「QT」几何数据类 之 QVector2D 二维向量类

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「QT」QT5程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasolid…

NVIDIA RTX 系统上使用 llama.cpp 加速 LLM

NVIDIA RTX 系统上使用 llama.cpp 加速 LLM 文章目录 NVIDIA RTX 系统上使用 llama.cpp 加速 LLMllama.cpp 概述llama.cpp 在 NVIDIA RTX 上的加速性能使用 llama.cpp 构建的开发人员生态系统使用 llama.cpp 在 RTX 平台上加速的应用程序开始使用 适用于 Windows PC 的 NVIDIA …

[CKS] K8S NetworkPolicy Set Up

最近准备花一周的时间准备CKS考试&#xff0c;在准备考试中发现有一个题目关于不安全项目修复的题目。 ​ 专栏其他文章: [CKS] Create/Read/Mount a Secret in K8S-CSDN博客[CKS] Audit Log Policy-CSDN博客 -[CKS] 利用falco进行容器日志捕捉和安全监控-CSDN博客[CKS] K8S Ne…

Kubernetes中ETCD组件的作用

在Kubernetes&#xff08;k8s&#xff09;中&#xff0c;etcd是一个关键的组件&#xff0c;它扮演着集群状态存储的角色&#xff0c;具有至关重要的作用。以下是etcd在Kubernetes中的具体作用&#xff1a; 存储配置数据&#xff1a;etcd是一个分布式键值存储系统&#xff0c;用…

Odoo:免费开源的流程制造行业ERP管理系统

概述 聚焦流程制造连续性生产的特性&#xff0c;提供集成PLMERPMESBI的一体化解决方案&#xff0c;涵盖计划、生产、质量、配方、供销、库存、成本、设备、资金管理等业务领域的整体性解决方案 行业的最新洞察&行业典型痛点 一、生产过程需要精细化控制 需要在各种制约…

MySQL技巧之跨服务器数据查询:基础篇-动态参数

MySQL技巧之跨服务器数据查询&#xff1a;基础篇-动态参数 上一篇已经描述&#xff1a;借用微软的SQL Server ODBC 即可实现MySQL跨服务器间的数据查询。 而且还介绍了如何获得一个在MS SQL Server 可以连接指定实例的MySQL数据库的连接名: MY_ODBC_MYSQL 以及用同样的方法&a…

在卷积神经网络中真正占用内存的是什么

在卷积神经网络&#xff08;CNN&#xff09;中&#xff0c;占用内存的主要部分包括以下几个方面&#xff1a; 1. 模型参数&#xff08;Weights and Biases&#xff09; CNN 中的权重和偏置&#xff08;即模型的参数&#xff09;通常是占用内存的最大部分。具体来说&#xff1…

【Python爬虫实战】轻量级爬虫利器:DrissionPage之SessionPage与WebPage模块详解

&#x1f308;个人主页&#xff1a;易辰君-CSDN博客 &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html ​ 目录 前言 一、SessionPage &#xff08;一&#xff09;SessionPage 模块的基本功能 &#xff08;二&#xff09;基本使…

蓝牙BLE开发——iOS 每次写入数据超过200字节报错?

iOS 写入数据超过200字节报错 文章目录 iOS 写入数据超过200字节报错官方建议&#xff1a;报错问题解决 writeblecharacteristicvalue 官方建议&#xff1a; 并行调用多次会存在写失败的可能性。APP不会对写入数据包大小做限制&#xff0c;但系统与蓝牙设备会限制蓝牙4.0单次…

vue3使用VueQuill插入自定义按钮

在 Vue 3 项目中使用 VueQuill 编辑器时&#xff0c;我们可以自定义内容来满足特定的需求。本文将介绍如何在 VueQuill 中插入自定义内容&#xff0c;比如插入特定的标签或样式元素。 Quill官方中文文档 1. 项目设置和依赖安装 如果你还没有创建 Vue 3 项目&#xff0c;可以…

OpenHamrony4.0去除锁屏是一种什么体验?触觉智能给你支支招

本文介绍在开源鸿蒙OpenHarmony 4.0系统下&#xff0c;去除锁屏开机后直接进入界面的方法&#xff0c;触觉智能Purple Pi OH鸿蒙开发板演示&#xff0c;搭载了瑞芯微RK3566芯片&#xff0c;类树莓派设计&#xff0c;Laval官方社区主荐&#xff0c;已适配全新OpenHarmony5.0 Rel…

【bat】自动生成指定层级文件夹

&#x1f305; 一日之计在于晨&#xff0c;启航新程 ⭐ 本期特辑&#xff1a;自动生成指定层级文件夹 &#x1f3c6; 系列专题&#xff1a;BAT脚本工坊 文章目录 前言批处理脚本介绍脚本执行过程总结 前言 在日常的计算机使用过程中&#xff0c;我们经常需要创建文件夹来组织和…

AI 扩展开发者思维方式:以 SQL 查询优化为例

在现代软件开发中&#xff0c;AI 技术的兴起让开发者的思维方式发生了显著变化。尤其是在 SQL 查询优化、代码重构以及算法设计等领域&#xff0c;AI 提供的建议不仅扩展了开发者的思考路径&#xff0c;还帮助他们发现以往没有意识到的潜在解决方案。 1. 传统思维模式下的 SQL…