Jmeter的三种参数化方式(2)

article/2025/9/18 17:02:53


小伙伴们在使用JMeter的过程中,肯定会遇到参数值传递的问题,下面来和大家总结下,在使用JMeter做压力测试的时候,常见的3种参数值的传递是怎样的。

(一)从CSV文件读取要批量输入的变量

假如我们要登录的数据保存在login.csv文件里,数据如下:


在JMeter中,我们需要添加CSV Data Set Config这个配置文件,如下图:



添加后,我们需要填写其中的必要参数,如Filename和Variable Names:



这里要注意下Variable Names里面的分隔符,为啥是用','号呢,因为csv文件login.csv用notepad++打开是如下所示,前面的字段是代表用户的user,后面的字段代表的pwd:



配置好CSV Data后,我们添加login的HTTP请求,截图如下:



其中用户的user和pwd都是用${}包围着的,这个是JMeter的语法规定。配置线程数为5,点击启动按钮运行后,看到的结果如下:




可以看到,login.csv文件中的2个字段被当作参数值进行了传递。

(二)利用Cookie进行值的传递

  用JMeter进行接口调试时,有时候会遇到需要登录的情况,如请求wetest的DataSearchAjax接口:


返回的结果如下:


出现这种情况的原因很明显是未登录引起的。一个较好的解决方法就是将登录后的cookies保存下来,在访问DataSearchAjax接口的时候,带上用户登录后的cookies信息进行查看。

   在JMeter中,我们可以通过如下途径进行cookies的传递,如下图添加HTPP Cookie管理器:


再给登录的接口添加前置处理器Bean Shell PreProcessor,用来保存登录的cookies:


下面,我们要在Bean Shell PreProcessor里面添加我们的cookies值了。

import org.apache.jmeter.protocol.http.control.CookieManager; import org.apache.jmeter.protocol.http.control.Cookie; // 身份验证必须的cookie值字段(可以询问开发哪些是必须要校验的字段)// 可以在登录后,点击chrome里URL右边的查看网站信息按钮,查看所有的cookie值找到// wetest的校验字段是:csrftoken和sessionidCookieManager manager = sampler.getCookieManager();String csrftoken = "898b3ade5cb3744140503da601dee5d6793f82807cda581de9eb0982c05dfdc7a";  //定义Cookie对象,其中参数:cookie的名称, cookie值, cookie域, 路径, 安全Cookie cookie = new Cookie("csrftoken",csrftoken,"wetest.qq.com","/",false,0);manager.add(cookie);String sessionid = "0ir0hrodptu5qgv9qurk98c3l4"; Cookie cookie1 = new Cookie("sessionid",sessionid,"wetest.qq.com","/",false,0);manager.add(cookie1);

添加完HTPP Cookie管理器和在前置处理器Bean Shell PreProcessor写好脚本后,再次运行登录接口和DataSearchAjax接口:

可以看到,后面的请求携带了我们在Bean Shell PreProcessor脚本中保存的cookie值,并且成功返回了要查询的数据。


(三)利用正则匹配提取上一个接口的返回数据作为下个请求的输入

  用JMeter进行接口调试时,经常会遇到上一接口的返回值中的某个字段,要作为下一接口的输入,这种情况下,我们需要利用正则匹配来提取我们需要的值。


例如,若要提取相应数据中的goodpraise字段作为下个接口的输入的话,可以在该接口请求后面添加正则表达式提取器:


我们给正则表达式提取器命名为get_goodpraise,并填写引用名称、正则表达式、模板、匹配数值、缺省值,填写后的如如下:



填写完成后,在添加新的HTTP请求,来测试提取到的goodpraise_name字段:


这里要注意,${}里面填写的一样要是引用名称的变量,保存后执行:


若返回的请求goodpraise_name字段为-1,-1是我们设定的默认字段。那说明我们的正则表达式写错了,要仔细检查下改成正确的正则表达式,再执行:


可以看到,我们提取到的goodpraise_name字段成功传递给新的http请求。

  至此,JMeter中3种参数值的传递已全部讲解完,小伙伴们学会了吗~*(^_^)*~

 

  本文由腾讯WeTest团队提供,更多资讯可直接戳链接查看:http://wetest.qq.com/lab/
  微信号:TencentWeTest


http://chatgpt.dhexx.cn/article/VrexYJa9.shtml

相关文章

Jmeter基础知识

前言:性能测试是现如今测试人员都要有具备会的,至少目前内卷的来说,不会点性能测试、自动化测试,都不对不起自己的高薪,对吧,所以小白想要高薪,就必须要学会这些技能,因为你不会不代…

JMeter如何实现参数名称和个数动态变化的接口请求

需求分析 在做接口自动化和性能测试,经常会遇到一些请求参数是根据上一个请求结果,动态变化的参数个数,参数名可能相同,也可能为序列递增格式,参数个数可能为10、20个,这样就导致手工不好模拟该请求效果&am…

【性能测试系列】JMeter核心技术:分布式压测和参数化

微信搜索关注公众号:测试小工,第一时间获取最新软件测试技术文章 JMeter分布式压测 1. 为什么要做分布式部署? 在上一篇文章中,我们提到了JMeter的线程启动和运行,是会占用系统资源的,一旦需要大并发,而JMeter单机部署配置不够,将会导致JMeter无法在规定时间内启动对…

接口测试参数化详解(Jmeter)

简介 接口测试是目前最主流的自动化测试手段,它组合不同的参数向服务器发送请求,接受和解析响应结果,通过测试数据的交换逻辑来验证服务端程序工作的正确性。我们在测试过程中需要考虑不同的输入组合,来覆盖不同的测试范围&#…

【JMeter】JMeter的工作原理

一、JMeter简介 JMeter是Apache组织开发的基于Java的开源的压力测试工具、接口测试工具 可以模拟高并发和多次循环的测试场景,能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试,具有可移植性 二、压测的原理 …

jmeter设置参数化

设置参数化方法有3种 第一种: 1.打开 jmeter,导入badboy录制的脚本 导入后记得选择“step”右键选择change controller -》逻辑控制器-》循环控制器或者简单控制器 注意:badboy 仅s适用于B/S架构的产品录制 因为内置浏览器的内核的兼容性问题…

JMeter接口测试_参数化

对应qq群号:616961231 简介: 环境: Mac OS home 目录类似windows 的自建目录 如: D:/test/id.txt 上篇内容介绍了jmeter的基本使用, 略微提了如何做参数化, 本篇对参数化做进一步深入讲解. Jmeter大概有以下几种参数化方法: 参数化方式使用场景1User Parameters适用于参…

Jmeter如何实现参数化用户,并且管理Cookie

谈到性能测试,经常需要对用户进行参数化,jemter工具参数化经常使用的一个元件就是CSV数据文件设置 一、 操作步骤 1. 首先建议大家创建一个规范的目录保存文件 目录作用data保存参数result保存结果script保存脚本 2. 如下图所示 设置目录的好处&#x…

jmeter + mysql数据驱动自动化测试

测试对象:前端web等后端接口mysql数据库 https://www.cnblogs.com/testfan2019/p/12124093.html 需求: 通过后端接口,对数据进行查询,对比查询返回内容和数据库内容是否一致。 Jmeter配置: 安装mysql驱动包 1. 下…

Jmeter参数化设置,多用户登录

一、模拟多用户登录场景 如登录模式如下图所示,登录界面中需要输入:用户名、密码、验证码 用户名以及密码均是固定值,不需要做处理。验证码需要处理一下,可以后台配置成固定值,具体可以找开发咨询。 在此场景中&#x…

【完结版】jmeter+ant+python自动化框架,且支持jenkins持续集成

前言:本文是实现jmeterantpython脚本的自动化测试框架,并且把整套部署在jenkins,通过jenkins的构建来出发脚本的运行,而且还会在jenkins上展示html报告。本文记录搭建框架的整个步骤,以及遇到的问题和记录解决办法。 一…

Jmeter之参数化

这里我用到的是微信的获取access_token接口。 https请求方式: GET https://api.weixin.qq.com/cgi-bin/token?grant_typeclient_credential&appidAPPID&secretAPPSECRET 共有三个参数。接下来是设计接口测试用例 新建一个excel文件,输入标题&#xff0c…

常用的Jmeter参数化技巧总结,总有一个你不知道

说起接口测试,相信大家在工作中用的最多的还是Jmeter。 JMeter是一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA 等多种协议。 在做…

Jmeter关联实现及参数化使用解析

这篇文章主要介绍了Jmeter关联实现及参数化使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一、Jmeter介绍 一款融合接口、性能都能完成的测试工具纯JAVA开发的工具开源工具支持多种协议应该是测试业界…

Jmeter系列之参数化

VOL 132 08 2020-06 今天距2021年206天 这是ITester软件测试小栈第132次推文 点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。 微信公众号后台回复“资源”、“测试工具包”领取测试资源,回复“21天打卡”一起学习成长,打…

Jmeter参数化---使用CSV 数据文件设置

上一篇写了jmeter做接口测试的流程(链接:使用 jmeter 做接口测试) 这一篇写的是如何参数化的做Jmeter接口测试 这次依然是获取access_token的接口,相关文档详询:(https://developers.weixin.qq.com/doc/offiaccount/…

Jmeter参数化--后置处理器之正则表达式提取器

在接口测试中,很多都需要依赖前一个请求的响应数据放到后一个请求的请求数据中来,在Jmeter中提供了正则表达式提取器来提取响应数据中的片段 本次使用的实例是微信公众号的客服发消息,在这个接口中,需要用到access_token接口返回…

jmeter java csv_Jmeter之csv参数化

Jmeter之csv参数化 创建数据源csv文件 在线程组中添加CSV Data Set Config 1、添加CSV Data Set Config 图 1 添加CSV Data Set Config 2、配置CSV Data Set Config 图 2 配置CSV Data Set Config Filename: 指保存信息的文件目录,可以相对或者绝对路径。否则会在jm…

Jmeter之数据参数化方法汇总

一、什么是参数化 Jmeter参数化是指将脚本中的某些需要输入数据使用参数来代替,在脚本运行时指定参数的取值范围和规则。脚本在运行时就可以根据需要选取不同的参数值作为输入。 常用的Jmeter的参数化请求,包括以下几种方式: 用户参数用户…

Jmeter参数化的方式

拿微信公众平台获取token-创建标签接口举例:微信公众平台 一、正则表达式提取参数 1、获取token后,使用后置处理器-正则表达式提取器,提取返回的token值 2、创建标签接口引用token参数 二、用户参数 1、选中线程组添加前置处理器&#xff…