jmeter 正则获取多个返回token至本地文件,并跨线程组调用

1、打开jmeter,创建setup Thread Group

对于setup Thread Group和tearDown Thread Group来说,从字面意思上来看就是安装线程组和卸载线程组,所以可以理解为对于线程组的初始化和完成时处理,setup Thread Group是所有我们真正开始线程并发之前的准备工作,必须是在线程组开始之前完成的并且拥有自己独立的线程设置。

2、添加HTTP信息投管理工具
将接口需要的头信息放在这里

3、添加接口信息:setup Thread Group-->add-->sampler-->http request

4、因要从本地文件中获取多个登录账号密码实现多线程测试,所以这里使用CSV数据文件:

5、只用正则表达式,提取登录接口返回的token值,以便后续接口使用:

正则使用说明:
引用名称(Reference Name):Jmeter变量的名称,存储提取的结果;即下个请求需要引用的值、字段、变量名。

引用方法:引用方法:${引用名称}。

正则表达式(Regular Expression):使用正则表达式解析响应结果,“()”表示提取字符串中的部分值,请不要使用“||”,除非你本身需要匹配这个字符。

模板(Template):从匹配的结果中创建一个字符串,这是通过正则表达式匹配出来的一组值,意为使用提取到的第几个值(可能有多个值匹配,因此使用模板);从1开始匹配,以此类推。 参数可以在取值模板组合使用,例如:“1-2”作为模板得到的值是使用“-”连接的第一个待匹配内容与第二个待匹配内容组合而成的字符串。

匹配数字(Match No):正则表达式匹配数据的结果可以看做一个数组,表示如何取值:0代表随机取值,正数n则表示取第n个值(比如1代表取第一个值),负数则表示提取所有符合条件的值。

缺省值:匹配失败时候的默认值;通常用于后续的逻辑判断,一般通常为特定含义的英文大写组合,比如:ERROR。

6、添加后置处理器JSR223 PostProcessor,将正则获取到的token数据写到本地文件:

7、添加新的线程组,该线程组中添加的是需要做压测的接口及相关配置:

获取本地文件中的token值依旧使用CSV文件操作。

8、注意事项
获取token时,需要把其他线程组禁用,只开启获取token的接口。
当文件中有token数据时,再讲获取token的接口禁用,开启其他需要调用token的线程组。

原文地址:http://blog.51cto.com/zoe26/2155326

时间: 2024-10-31 10:32:25

jmeter 正则获取多个返回token至本地文件,并跨线程组调用的相关文章

Jmeter跨线程组调用token

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 响应结果是如下 2.在登录接口下添加 BeanShell PostProcessor ,并写入脚本如下:

jmeter 跨线程组调用变量

由于有些特殊需求需要在线程组之间调用变量,这里就总结一下几种常用方法(只是个人会的). 在使用时要注意线程组的执行顺序,需要勾选测试计划里的独立运行每个线程组按钮.还需要注意设置全局变量的后置处理器应该是在第一个线程组(即提取局部变量的那个线程组). 一.beanshell自带方法 props.put("变量名","值") 全局变量赋值 props.get("变量名") 获取全局变量 二.jmeter自带函数__setProperty ${__s

Jmeter跨线程组传值

Jmeter是一个工具,一个很好用的工具,对于它我们用来做压力测试后,还可以用来做自动化测试,但是作自动化的时候我们 需要考虑到流程的流转和顺序排版,那么此时我们该怎么做? 对于模块的分割我们或许可以用控制器来分割,但是有时为了将某个模块独立出去,我又需要用线程组来分割,但是线程组与 线程组之间有些参数的数值需要传递,该怎么办? PS:Jmeter的线程组之间是独立的 已登录接口返回的token值为例,在这里我用了一个后置器和一个前置器结合使用,如下图: 1.1.登陆后先获取到token值,(用

Jmeter跨线程组传值实例

转载:http://www.51testing.com/html/01/n-3725501.html???Jmeter是一个工具,一个很好用的工具,对于它我们用来做压力测试后,还可以用来做自动化测试,但是作自动化的时候我们 需要考虑到流程的流转和顺序排版,那么此时我们该怎么做? 对于模块的分割我们或许可以用控制器来分割,但是有时为了将某个模块独立出去,我又需要用线程组来分割,但是线程组与 线程组之间有些参数的数值需要传递,该怎么办? PS:Jmeter的线程组之间是独立的 已登录接口返回的tok

[存]Jmeter 如何实现跨线程组传递参数

此文来源与组里小白的分享~ Jmeter 如何实现跨线程组传递参数(以传递token为例)   1.首先选择一个登陆接口(线程组1),添加正则表达式提取器提取token,接着再添加一个后置处理器BeanShell PostProcessor 2.BeanShell PostProcessor中参数项输入引用变量${token};脚本项输入动作语句${__setProperty(token1,${token},)}; 3.在线程组2添加一个前置处理器BeanShell PreProcessor 4

Jmeter跨线程组传递变量

跨线程组传递变量只能通过属性来传递,并且属性只能传字符串变量. 如果想传数组变量,需要先将数组转化为字符串,在下一个线程组再转化为数组. [注意]在使用时要注意线程组的执行顺序.需要勾选测试计划里的独立运行每个线程组按钮. 一.beanshell自带方法 props.put("变量名","值") 全局变量赋值 props.get("变量名") 获取全局变量 这里简单介绍一个例子,从线程组1里传递给线程组2 字符串:hao123. 1)使用正则提取

Jmeter 跨线程组传递参数 之两种方法

终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为同一个线程组下的请求是同时发送的),只需要发送一次登录请求,请求B直接用登录请求的参数即可,直到登录接口的参数失效了,需再次发送一次登录接口,又可以多次使用其参数,下面举例子: 1.登录接口中利用 Json Path Extractor 获取到登录接口的响应参数,(怎么获取上一节讲过) 终于搞定了Jmeter跨线程组之间传递参数,这样就不用每次发送请求B之前,都需要同时发送一下登录接口(因为

jmeter 正则获取参数集合和ForEach控制器结合使用(转)

怎么把第一个请求获取的返回的多个id,在第二个请求中逐个以单个id作为请求参数来请求? 为了解决这个问题,模拟下该场景 1.请求www.163.com 主页,获取响应中的所有数字,这个获取的数字集合暂且叫ids吧,里面保存的是每个数字作为一个id 2.第二个请求也是访问www.163.com,不过域名后面追加了作为单个id的数字 步骤如下: 1.新建一个访问163的请求,并查看响应信息 2.正则获取响应信息,响应信息中包括很多数字,其中ids 表示id的集合,匹配数字-1 表示获取所有匹配的值

jmeter 跨线程组实现变量引用

1.假设线程组1,提取了一个token: 想要线程组2,每个请求引用在头或者请求体, 实现方式,线程组1中使用bean shell sample ${__setProperty(newtoken,${token},true)}; 线程组2调用使用: ${__P(newtoken,)} 请求参数查看name: 原文地址:https://www.cnblogs.com/SunshineKimi/p/12508220.html