基于jmeter实现跨线程组传递token过程图解

遇到一些综合场景的设置,每个不同的请求并发数设置不同的时候,可以用多个线程组的组合来实现,但是这个时候,会遇到一个问题,那就是jmeter各个线程组之间是相互独立的,各个线程互不影响,所以线程组A中输出的参数,无法直接在线程组B中调用。

拿token来说,虽然每一个线程组中我们也可以在放一个登录请求,然后输出一个token供此线程组使用,但这样就比较繁琐且冗余。此时我们就可以使用跨线程组传递参数来解决这样的问题。

接下来,我们看下这个例子:

要发送短信,必须要先登录,才能发送。

实现思路:

在登录请求中添加一个正则表达式提取器,提取响应值中的token的值。然后再添加一个 Bean Shell PostProcessor 的后置处理器,在这个处理器中调用“__setProperty”函数,设置正则提取到的token的值为全局变量。然后在另外一个线程组中添加一个其他需要用到此token的请求,通过函数“__P”来调用token。

具体步骤:

1、在测试计划下添加一个线程组setUp Thread Group,然后把登录请求添加到该线程下,在登录请求下添加正则表达式提取器和BeanShell PostProcessor

注意,BeanShell PostProcessor中参数和脚本设置。在Script中输入${__setProperty(jsessionid,${token},)}

2、再添加一个线程组,把发短信的请求,添加在该线程组下面。在这个线程组下添加HTTP Cookie 管理器,调用上面的线程组的Token.

至此,跨线程组的参数调用就实现了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • jmeter设置全局变量与正则表达式提取器过程图解

    接口测试中,很多接口都要带上登录后的token才能正常发送请求,这里记录一下登录获取token设置为全局变量供其他接口使用 登录后返回信息信息中会有一个token值,添加后置处理器中的正则表达式提取token,然后用后置处理器中的BeanShell PostProcessor设置token为全局变量 1.获取token值: 1.1.用fiddler抓包 1.2.F12查看接口信息 1.3.用jmeter登录查看 2.正则表达式提取token: 3.BeanShell PostProcessor设

  • Jmeter调用java脚本过程详解

    这篇文章主要介绍了Jmeter调用java脚本过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 jmeter为纯java编写,所以有三种方式使用java脚本,分别是:调用 .java 文件:调用 .class文件 :调用 .jar 文件 1. jmeter调用.java文件 1>. 新建一java脚本,内容如下: 2>. 新建线程组>>添加BeanShell Sampler.Debug PostProcessor.查看结果树

  • jmeter如何自动生成测试报告

    1.准备.jmx脚本文件 2.在脚本文件路径下执行cmd命令: jmeter -n -t test.jmx -l result.jtl -e -o /tmp/ResultReport 参数解析: ● -n: 非GUI模式执行JMeter ● -t: 执行测试文件所在的位置 ● -l: 指定生成测试结果的保存文件,.jtl文件格式 ● -e: 测试结束后,生成测试报告 ● -o: 指定测试报告的存放位置 ● /tmp/ResultReport :手动创建的 ResultReport 报告文件夹的路

  • Jmeter线程组传参原理解析

    这篇文章主要介绍了jmeter线程组传参原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景介绍: 使用jmeter做登录和搜索接口的测试: 登录接口请求头为:Content-Type: application/x-www-form-urlencoded; charset=UTF-8 搜索接口请求头为:Content-Type: application/json; charset=UTF-8 同时,搜索的请求头中需要用到登录接口返回值中

  • python利用JMeter测试Tornado的多线程

    JMeter的简介   JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域. 它可以用于测试静态和动态资源,例如静态文件.Java 小服务程序.CGI 脚本.Java 对象.数据库.FTP 服务器, 等等.   JMeter的下载网址为:https://jmeter.apache.org/download_jmeter.cgi,下载前请先确定电脑中安装了Java,下载完毕后点击bin文件夹下的"meter

  • Jmeter如何添加循环控制器

    这篇文章主要介绍了Jmeter如何添加循环控制器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 场景描述:批量数据创建 新建线程组->编辑请求信息POST,创建产品 将入参录入Body Data 添加用户定义的变量,将数据参数化${value},在请求入参中引用 循环控制器应该控制的是多次请求,生成批量产品数据,添加循环控制器,设置循环次数,为3次,请求循环3次 添加循环变量参数,此处为年级递增创建,目标为:5,6,7 如果需要创建不同类型的数

  • java自定义jar包让jmeter使用的方法

    上一篇文章中,提到怎么生成jar包让jmeter使用,这次我们来试试做参数,因为发现调包的时候其实更多还是参数化,那么开始改造吧 1.在httpclientpost这个类中替换参数,且打印参数 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; impo

  • jmeter 在linux服务器的安装和运行教程图解

    linux环境下使用就meter进行压力测试: 1.linux环境部署:在Linux服务器先安装jdk: 2.以jdk-8u172-linux-x64.tar.gz为例: 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html 1.根据自己的服务器的机型选择:小编的是64位的,这里就以64位为例: 3.然后把下载tar.gz文件发送到服务器上: 这里我们可以使用xshell,连接服务器,同时也要下载xftp来

  • 基于jmeter实现跨线程组传递token过程图解

    遇到一些综合场景的设置,每个不同的请求并发数设置不同的时候,可以用多个线程组的组合来实现,但是这个时候,会遇到一个问题,那就是jmeter各个线程组之间是相互独立的,各个线程互不影响,所以线程组A中输出的参数,无法直接在线程组B中调用. 拿token来说,虽然每一个线程组中我们也可以在放一个登录请求,然后输出一个token供此线程组使用,但这样就比较繁琐且冗余.此时我们就可以使用跨线程组传递参数来解决这样的问题. 接下来,我们看下这个例子: 要发送短信,必须要先登录,才能发送. 实现思路: 在登

  • Jmeter跨线程组共享cookie过程图解

    一.Jmeter版本 此次示例采用的是apache-jmeter-5.2.1版本 二.设置配置文件使Cookie管理器保存cookie信息. 修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把CookieManager.save.cookies设置为true,并去掉前面的注释#号,如下图所示: ​ 修改完成后保存,退出,并重启jmeter. 三.在调试取样器和请求中查看具体的cookie信息 在线程组中添加HTTP Cookie 管理器,运行测试计划后

  • Jmeter跨线程组传值调用实现图解

    Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组.那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用呢?这里以已登录接口返回的access_token值为例,在这里我用了一个BeanShell后置处理器来结合使用,过程如下: 第一步:测试计划:必须勾选[独立运行每个线程组] ​ 第二步:登录接口返回access_token ​ 第三步:通过正则表达式提取器提取:access_token ​ 第四步:在BeanShell后置处理器中使用

  • Jmeter使用接口传递数据过程图解

    一. 1.提取响应结果中的"mobile_phone",作为下一个登录接口的账号信息 1)在当前接口下,添加-置处理器-正则表达式提取器 2)正则表达式处理器 说明: 后置处理器:在请求结束或者返回响应结果时发挥作用 APPly to:作用范围(返回内容的断言范围) Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器 Main sample only:仅作用于父节点的取样器 Sub-samples only:仅作用于子节点的取样器 JMet

  • Jmeter设置全局变量token过程图解

    返回登录后的token使用json path Extractor插件,定位到获取后的token为变量 在登录下后置处理器下添加json path Extracto插件 根据上面获取到的token位置路径编写变量 头部添加全局token变量 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • 基于IDEA,Eclipse搭建Spring Boot项目过程图解

    如何创建一个Spring Boot项目?这里使用maven来进行依赖管理,根据常用的IDE,可以使用IDEA.Eclipse.或者访问官方网站搭建. 项目搭建环境准备 JDK:1.8MAVEN:3.6.3 使用IDEA搭建Spring Boot项目 打开IDEA,选择File -- > New --> Project ,然后选择Spring Initializr,点击Next 输入Group --> Artifact --> Next,其他可以不用修改. 选择Spring Boot

  • 基于Jenkins搭建.NET Core持续集成环境过程图解

    我们用NuGet还原.NET Core项目会报以下错误: error NETSDK1064: 未找到版本为 1.8.2 的包 BouncyCastle.NetCore.它可能已在 NuGet 还原后删除.否则,NuGet 还原可能只是部分完成,这种情况可能是最大路径长度限制所导致. 关于这个问题我找了好久 也是google到一条信息才明白 这里就直接放解决办法,其实网上就有方法,有的简短,有的笼统 我们这里用到的是dotnet命令来还原.构建.以及部署 从 .NET Core 2.0 开始,无需

  • 详解Jmeter线程组的设置方法

    目录 一.事件背景 二.关于线程组的相关设置 一.事件背景 个人感觉自己做性能测试,可以说是轻车熟路了,而且工作多年一直都是这一套测试思路及体系,从未质疑过自己,也许是狮子座的迷之自信吧! 也就在上周让我对自己的测试方法及体系产生了质疑! 为什么?在性能测试的时候,压测500并发通过,人家40并发都过不去. 通俗点说,就是你测试没问题,在人家那测试出问题了,忽略脚本问题,显而易见因为测试方法差异导致测试结果的不同. 1.关于执行方法的差异 同事的做法是直接跑10分钟的稳定性测试,然后上并发数:

随机推荐