当遇到如跨线程组调用变量等情况,需要设置全局变量。

1、打开函数助手

输入需要的值然后点击生成按钮,或者直接使用${__setProperty(newuserid,${userid},)}的格式

设置局部变量userid和token为全局变量并在另一线程中调用,调用方式见下

${__property(变量名)}

业务场景
一、登录系统后进行商品购买,进行做接口并发。

1、首先分了两个线程组login、pay_buy_finish 如图:

 

2、获取接口A正则表达式提取的session_sid作为全局变量,login线程只运行1次。如图:

 

3、把获取的sid 作为全局变量传递给线程组pay_buy_finish 中的请求使用:如图:

 

4、运行结果是这样:
线程组login 运行1次

 

pay_buy_finish运行5次
4次错误结果:

 

1次正确结果:

 

线程组pay_buy_finish总共运行5次,其中4次取值都不正确,只有1次取值正确。 如果有同学知道原因的请留言!

「原创声明:保留所有权利,禁止转载」
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。 除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。 具体请参见TesterHome 知识产权保护协议
共收到 10 条回复时间 点赞

图形界面没关闭过的情况下,上次运行时的__setProperty会一直在,比如设置了属性A=11;下次运行的时候初始A就=11,然后才是被重新赋值,看你的查看结果树是在2个线程组下的,你可以把它拉到外面,看下login、pay_buy_finish的执行顺序,如果是这个原因,可以把login改成setup的

Mr.W #2 · 2017年08月15日 作者
对 北溟 #1回复

我在nogui 下运行也是如此,貌似和关闭图形界面没关系

对 北溟 #1回复

正好也解决了我的疑问 十分感谢!

对 Mr.W #2回复

另外我还有一个问题想要请教:设置全局变量后,在其他线程组中可以使用使用__property获取到该全局变量,可是该全局变量如何在beanshell中使用呢?

 Mr.W 关闭了讨论 08月15日 12:50
 Mr.W 重新开启了讨论 08月15日 13:22

${__property (x)}也可以直接用在beanShell中的,但是就是简单的替换,我觉得用props.get("x")会更加安全,否则x属性值有特殊字符时,遇到一些逻辑处理可能就会有问题,比如字符串相加等,beanShell窗口最下面有说明的有哪些可以用的内置对象

对 北溟 #7回复

setup中定义全局变量x,然后在其他线程组中beanshell里直接使用${__property (x)}会报错: Attempt to access property on undefined variable or class name ,使用props.get("x"),提示“ Undefined argument: x”

之前遇到过这个问题,我的解决方式是:在beanshell中设置参数:${__property(x)},然后在beanshell script中使用bsh.args[0]进行获取,可是我不是很喜欢这种方式~~

props.get("x") 你这个报错的话Undefined argument: x
检查下是不是没加引号?

 
对 北溟 #9回复

哈哈~~果真 tks!!!

谢楼主帖子!

jmeter如何设置全局变量以及调用方法的更多相关文章

  1. jmeter如何设置全局变量

    场景:性能测试或者接口测试,如果想跨线程引用(案例:A线程组里面的一个输出,是B线程组里面的一个输入,这个时候如果要引用),这个时候你就必须要设置全局变量;全链路压测也需要分不同场景,通常情况,一个场 ...

  2. Struts2 动态调用方法

    struts2动态调用方法有两种方式 方式一:用通配符进行调用: Action方法: package com.bjyinfu.struts.actions; public class CatchDyn ...

  3. ios开发中全局变量设置和调用方法

    ios开发中,全局变量设置和调用方法如下:在AppDelegate.h文件中设置全局变量:@interface ***AppDelegate{NSString *myName;}@property ( ...

  4. angularjs 设置全局变量的3种方法

    angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种.要实现的功能是,在ng-app中定义的全局变量,在不同的ng-controller里都可以使用. 1,通过 ...

  5. [转]angularjs 设置全局变量的3种方法

    本文转自:http://blog.51yip.com/jsjquery/1601.html angularjs自身有二种,设置全局变量的方法,在加上js的设置全局变量的方法,总共有三种.要实现的功能是 ...

  6. jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法

    jquery ajax success 函数 异步调用方法中不能给全局变量赋值的原因及解决办法   在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们 ...

  7. JS访问或设置cookie的方法+跨域调用方法

    无意中从163网站获取的JS访问或设置cookie的方法,Log到日志上以防遗忘 //COOKIE功能检查function fCheckCookie(){    if(!navigator.cooki ...

  8. destoon6.0调用公司设置任意信息的方法-最新

    destoon6.0调用公司设置任意信息的方法 用法: 把以下函数加入到api/extend.func.php 中 function company_setting($userid, $key = ' ...

  9. Linux里设置环境变量的方法(export PATH)

    1.动态库路径的设置 Linux下调用动态库和windows不一样.linux 可执行程序是靠配置文件去读取路径的,因此有些时候需要设置路径 具体操作如下 export LD_LIBRARY_PATH ...

随机推荐

  1. php实现多文件上传和下载。

    http://1229363.blog.163.com/blog/static/19743427200751291055264/

  2. I.MX6 Python3 OpenCV

    /************************************************************************* * I.MX6 Python3 OpenCV * ...

  3. freeMarker(一)——freeMarker简介

    学习笔记,选自freeMarker中文文档,译自 Email: ddekany at users.sourceforge.net FreeMarker简介: FreeMarker 是一款 模板引擎: ...

  4. Python的几种版本的不同实现

    Python自身作为一门编程语言,它有多种实现.这里的实现指的是符合Python语言规范的Python解释程序以及标准库等.这些实现虽然实现的是同一种语言,但是彼此之间,特别是与CPython之间还是 ...

  5. C/C++面试题总结(1)

    首先说一下,这些东西,有的是必须掌握的,有的是面试时你讲出来就是闪光点.自己把握.把握不好的都搞懂.实在不行背下来. 由于时间关系,总结的比较随意,有的就直接贴链接了,希望理解一下. 第一篇:基础(必 ...

  6. 苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲

    苹果公司CEO乔布斯在斯坦福大学毕业典礼上的演讲 摘要:这是苹果公司CEO乔布斯2005年在斯坦福大学毕业典礼上的演讲,大学途中退学,创业,被解雇,东山再起,死亡威胁,这些他都一一经历了.经营自己与众 ...

  7. vs2015解决fopen、fscanf 要求替换为fopen_s、fscanf_s的办法

    在工程项目设置一下就行:项目属性 -- C/C++-- 预处理器 -- 预处理器定义,添加:_CRT_SECURE_NO_WARNINGS

  8. ss2

    一. *** 服务端配置 1. 在命令行窗口输入下面4行命令并回车执行 yum -y update yum install -y python-setuptools && easy_i ...

  9. linux日常管理-screen

    假如一个任务要执行好几天,为了防止中途中断的情况, 在让后台运行的命令后面加一个 nohup会生成一个 .nohup.out文件,会搜集在运行过程中所产生的日志. 比直接后台运行任务的好处是,万一断电 ...

  10. linux日常管理-vmstat命令

    系统负载用w查看.是什么原因造成了系统负载.查看系统负载状态 命令:vmstat vmstat就查看一次 vmstat 1 每秒钟更新一次.按ctrl+c取消. vmstat 1 5 每秒钟更新一次, ...