Jmeter 接口自动化-脚本数据分离实例
发布网友
发布时间:2024-10-14 17:13
我来回答
共1个回答
热心网友
时间:2024-10-15 06:09
为了使大家对JMeter有更全面的理解,并使其操作得心应手,本文将重点介绍如何优雅地使用JMeter实现接口自动化,实现脚本与数据的分离。我们将把接口变更时对脚本的维护转移到CSV文本中,以降低维护成本。最终目标是编写好接口自动化脚本后,仅需对CSV文件进行操作即可完成接口变更维护。
JMeter脚本、数据和报告地址:链接
接下来,我们首先介绍一个JMeter函数:csvRead函数。该函数从外部读取参数,适用于简化接口自动化过程。熟悉此函数的用户可以直接跳过以下介绍。
csvRead函数使用
为了演示,我们创建一个名为test.csv(或test.txt)的文件,内容为:grizz,qq1111 jiezai,qq1111。每一行包含一组用户名和密码,用逗号分隔。
执行步骤如下:
新建文件,例如test.csv(或test.txt),存放参数。
在JMeter中,通过“选项”菜单选择“函数助手”对话框,选择“csvRead”函数。
设置参数:CSV file to get values from | *alias:文件路径,为绝对路径;CSV文件列号| next| *alias:从第几列开始读取。
示例:${__CSVRead(D:/test.csv,0)}取到值为“grizz”;${__CSVRead(D:/test.csv,1)}取到值为“qq1111”。
当线程数大于文件行数时,JMeter将循环读取文件内容。
注意:csvRead函数不适用于大文件,因为文件内容会被加载到内存中。对于大文件,推荐使用CSV Data Set或StringFromFile配置元件。
接口示例
以两个接口为例,其中一个是获取token的接口(/getToken),入参为 JSON:{"flag":"test", "appId":"001"};返回值为{"returnFlag":"1000","returnMsg":"获取token成功","token":"19940622"}。
另一个接口(/useToken)用于测试token,入参为 JSON:{"flag":"${token}","appId":"001"};返回值示例包括:{"returnFlag":"1000","returnMsg":"使用token成功"},{"returnFlag":"1001","returnMsg":"token为空"},{"returnFlag":"1002","returnMsg":"token错误"}。
版本分解
从入门到熟练,我们将接口自动化过程分为v1至v4版本。
v1版本
初始脚本简单,从getToken接口获取token,使用正则表达式提取。然后请求useToken接口,使用提取到的token值。测试接口异常情况,确保覆盖所有场景。
v2版本
引入数据文件,将useToken接口的请求参数从文件中读取。针对不同场景,优化脚本结构,减少重复的sampler。
v3版本
利用JMeter的eval函数,简化脚本逻辑,直接从文件中读取响应断言,提高脚本可维护性。
v4版本
针对新增的token过期场景,优化CSV文件和线程组配置,确保接口变更维护仅需操作CSV文件。
本文旨在展示如何通过JMeter实现接口自动化,实现脚本与数据分离,以简化接口变更维护过程。我们通过逐步优化,从入门到熟练,最终实现接口变更维护的自动化。
Jmeter 接口自动化-脚本数据分离实例
版本分解从入门到熟练,我们将接口自动化过程分为v1至v4版本。v1版本初始脚本简单,从getToken接口获取token,使用正则表达式提取。然后请求useToken接口,使用提取到的token值。测试接口异常情况,确保覆盖所有场景。v2版本引入数据文件,将useToken接口的请求参数从文件中读取。针对不同场景,优化脚本结构,减...
非结构化数据如何可视化呈现?
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准...
案例分享丨JMeter进行接口测试,两种方法获取Cookie值
新建线程组和简单控制器,保持脚本结构清晰。 创建HTTP请求,分别填写登录接口和获取商品接口的详细参数。 登录接口后,我们使用正则表达式提取器提取Set-Cookie值,将其存储在变量${token}中,以便后续请求使用。 在查看商品信息接口的请求中,HTTP信息头管理器会自动应用Cookie,确保状态的连续性。
jmeter接口测试-15正则表达式关联
自此,一个完整的登录关联就结束了。后续接口直接调用该token就可以。我们接下来继续说其它的参数关联 比如一个增删改查流程,想要做自动化检验就必须形成一个闭环,那么删除-修改-查看就必须调用同一个必填参数,例如唯一性的id。 先新增一个经验库,可以看到结果中返回了一个id,我在后续接口中都必...
案例分享丨JMeter进行接口测试,两种方法获取Cookie值
首先,使用HTTPCookie管理器处理Cookie。在测试计划中,创建一个名为“商品前台接口(测试环境)”的测试计划,包含配置元件,如用户定义的变量(用户名、密码、验证码),HTTP请求默认值(协议、服务器信息等),以及HTTP信息头管理器,其中可能填写Refer、Content-Type等信息。在测试脚本中,创建一个线程组和...
Jmeter读取本地txt/csv文件作为请求参数,实现接口自动化
前提1: 找到 apache-jmeter-3.2->bin ,点击 Jmeter.bat 启动 Jmeter 4、HTTP 请求里的 Body 内容,需要用本地的值作为参数,按照下面方式书写,格式是 "${variable name}" ,如果请求值有中文,记得 Content encoding 里要输入 UTF-8 ,否则会乱码 请求数据是一串ID,误以为是编码问题,排查了...
【接口自动化测试】Jmeter(8)后置处理器
接口自动化测试:JMeter后置处理器详解在JMeter的测试流程中,后置处理器扮演着关键角色,它们负责请求完成后的操作,特别是数据提取。下面主要介绍几种常用的后置处理器。1. JSON提取器使用JSON-PATH语法,如"$"代表根节点,"."或"[]"用于子节点提取,支持数组索引、相对路径和过滤计算。设置时,需指定...
Jenkins+Jmeter+Ant实现接口自动化
Jenkins+Jmeter+Ant这套接口自动化框架,能够帮助绝大多数技术团队快速搭建并实施接口自动化测试。Jmeter图形界面友好,易于上手,同时支持并发测试。Jenkins配合Ant可自动定时执行jmx脚本并生成测试报告。一、Ant简介 下载地址:ant.apache.org/bindownl... windows下载zip包,mac下载tar包(建议用homebrew安装...
使用jmeter做接口验证测试
步骤适合有点基础的同学 首先登录、然后提取登录接口返回参数 [多个参数使用json提取器,使用规则见下图]; 将接口默认设置配置元件中,最后将token设置为全局变量 [ 脚本见下图]一、Response Assertion(响应断言)二、Size Assertion(数据包字节大小断言) 判断响应结果是否包含正确数量的byte。可...
【接口自动化测试】Jmeter(1) 安装和环境以及目录介绍
【接口自动化测试】JMeter的安装、环境配置及目录详解 1. 环境配置:JMeter是一款基于Java的接口测试和性能测试工具,推荐安装JDK17版本,因其与最新Jenkins兼容。下载地址为:codebaoku.com/jdk/jdk-i...2. JDK安装:可选择非C盘安装,避免冲突。新版本JDK无需安装JRE。安装完毕后,配置环境变量。首先...
【接口自动化测试】Jmeter(5)逻辑控制器
逻辑控制器在JMETER中起着控制测试计划执行顺序的重要作用,它们包括多种类型以满足不同的测试需求。IF控制器,通过条件判断来决定是否执行特定节点。可以设置用户变量或从响应中提取变量值用于判断。循环控制器(Loop Controller)用于控制元素执行次数,若同时设置线程组循环次数与控制器循环次数,子节点执行...