JMeter的__threadGroupName使用注意事项
JMeter从4.1版本开始引入了一个新函数“${__threadGroupName}”,这个函数的作用是返回当前线程组的名字。${__threadGroupName}的用途也较为广泛,比如:
在非图形界面执行时,在日志中记录不同脚本的出错信息使用。
用于定义不同脚本(ThreadGroup)特有的标识,如特有的属性(Property)、字符串等。
不过__threadGroupName的使用是有注意事项的,不能在任何配置元件(Configuration elements)中使用,比如User Defined Variables,包括Test Plan的User Defined Variabels中也不能用。如果在这些地方中使用
脚本执行的时候就会有如下的错误:
jmeter.log中则会有指示稍微明显一点的错误记录,提示我们是ThreadGroupName相关的
比较令人崩溃的是,当不小心这样误用了ThreadGroupName后,JMeter的界面就无法正常关闭了,点X或者从File->Exit菜单中退出,JMeter都会提示有测试正在执行,不能正常结束,只能通过任务管理器杀java进程来关闭JMeter窗口。
我在刚开始用的时候,就在这个问题上浪费了很长的时间,以致于一度想去官网提bug。后来翻JMeter的函数手册,结果发现在函数的说明中对此有一段明确的使用禁忌说明和一个bug描述![]()
按照这个说明,除了配置元件部分,其他的地方都可以使用,也就是说在Sampler取样器、前置/后置处理器、断言中都可以放心使用。可是~~BUT~~~
经过一天痛苦的试验,在前置处理器、后置处理器、断言上尝试了好久,终于发现BeanShell、JSR223的前置处理器、后置处理器、断言均不能用。唯一可以比较稳定使用的就是前置处理器中的User Parameters。当使用的时候,我们在User Parameters中定义一个参数,值设置为${__threadGroupName},然后在其他的需要使用的地方直接引用这个参数。
在BeanShell、JSR223的前置、后置处理器和断言中应用JMeter的Parameters
最后再提一下,${__threadGroupName}在Sampler取样器中是可以直接使用不会报错的。
由于GFW的因素,JMeter的bug62178我还没打开,不知道要不要再去官方提交一下现在发现的这个描述和实际情况不符的bug呢?
JMeter的__threadGroupName使用注意事项的更多相关文章
- Jmeter分布式测试需要注意事项
Jmeter分布式测试需要注意事项: 1. 如果脚本中有用到CSV Data Set Config,则所有的模拟机都必须在相应的目录下存在该文件.如下图,则必须所有模拟机的F盘下都有user.txt文 ...
- jmeter跑脚本的注意事项
指标主要看以下几点: 1.jmeter性能测试的报告,不要看平均响应时间,而是看90%响应时间,一般不能超过3s,超过3s则不符合标准2.响应时间超过3s就要优化,但不是平均响应时间,因为最小响应时间 ...
- jmeter笔记8
JMETER接口性能测试方案 JMETER简介 JMeter可以用于测试静态或者动态资源的性能(文件.Servlets.Perl脚本.java对象.数据库和查询.ftp服务器或者其 ...
- jmeter学习之安装篇(一)
一.Jmeter简介 Jmeter是Apache组织开发的基于Java开源项目,设计之初是用于做性能测试的,同时它在实现对各种接口的调用方面做的比较成熟,因此,常被用做接口功能测试和性能测试. Jme ...
- jmeter(二十七)分布式压测注意事项
之前的博客:jemter(二十三):分布式测试简略的介绍了利用jmeter做分布式测试的方法,当时只是介绍了背景和原因,以及基本的配置操作,有同学说写得不够详细. 正好今年双十一,我司的全链路压测,也 ...
- jmeter进行分布式压测过程与 注意事项
jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对jmeter进行分布式 ...
- Jmeter入门(4)- 注意事项
一.中文乱码问题的解决方法 1. 将HTTP请求的内容编码改成UTF-8 2. 修改配置文件jmeter.properties 将jmeter安装目录的bin目录下的jmeter.properties ...
- jmeter系列-------注意事项
1.自己创建的数据自己擅长,不要留垃圾数据 2.每个接口都需要增加断言,保证脚本的结果的正确性 3.相同的应用放在一个简单控制器下,所有的应用尽量放在一个线程组下面,将特殊场景单独抽离成一个线程组 4 ...
- JMeter循环控制器循环次数使用变量控制注意事项
1.进入循环控制器之前变量要有值: 2.BeanShell处理文件,读取行数,赋值给变量,要有相应的Sampler,不然脚本不会运行. 对于单个线程来说,假如设置了循环2次,线程启动后,运行结束,此时 ...
随机推荐
- CSS-定位属性
Css学习——定位属性 定位可以看作是一种分层,通过对页面中的各种元素进行定位,可以将某些元素放到其他元素的上层,并在浏览器的窗口中设置这些元素的具体位置. position属性以及Css所提供的4中 ...
- 成为技术领导者笔记--领导的MOI模型
一. 想让周围环境发生变化,环境必须包含三个条件: M:激励(Motivation)---有奖品或有困难,这样才对相关人员有推动力或吸引力. O:组织(organization)---利用现有的组织结 ...
- 内置函数 sorted
内置函数 sorted 语法: sorted(iterable,key = None,reverse= false)iterable: 可迭代的对象key:排序规则(排序函数),在sorted内部将& ...
- DevExpress01、独立使用的控件
XtraEditors 库提供了只能独立使用的控件,也就是说不能在容器控件的内置编辑中使用它们. 这些控件包括: 几种类型的列表框.数据导航控件.滚动条和一个按钮控件. 这些控件都是 BaseStyl ...
- python第十四课--排序及自定义函数之自定义函数(案例三)
return关键字的使用:1).结束函数 2).将结果返回给函数的调用者/调用处 [注意事项]1).与return同一作用范围内的后面不要显示书写任何代码,因为永远不可能被执行到,不会报错. 2).r ...
- mybatis #{}和${}的区别是什么
#{}和${}的区别是什么?正确的答案是:#{}是预编译处理,${}是字符串替换.(1)mybatis在处理#{}时,会将sql中的#{}替换为?号,调用PreparedStatement的set方法 ...
- windows配置cider和clojure clj
windows配置cider和clojure clj */--> pre.src {background-color: #292b2e; color: #b2b2b2;} windows配置ci ...
- EF Core 入门
官方文档地址 https://docs.microsoft.com/zh-cn/aspnet/?view=aspnetcore-2.2#pivot=core EF Core 使用 1. 创建数据库上下 ...
- (转)Fiddler菜单栏详解
原文作者:子信风蓝蓝 传送门:http://www.cnblogs.com/chengchengla1990/p/5681775.html Statistics 页签 完整页签如下图: Statist ...
- P1006 传纸条
题目描述 小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题.一次素质拓展活动中,班上同学安排做成一个m行n列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了.幸运的是 ...