JMeter - 后处理器/脚本语言 - 比较
当我们使用JMeter / Response数据处理进行密集负载测试时,我们可能会非常小心我们选择的后处理器/脚本语言的类型。
在这篇文章中,我想说明这些后处理器/脚本语言如何影响测试的整体性能。
我们将比较以下后处理器和脚本语言。
- BeanShell PostProcessor
- BSF PostProcessor - Beanshell
- BSF PostProcessor - Javascript
- BSF PostProcessor - Groovy
- JSR223 PostProcessor - Beanshell
- JSR223 PostProcessor - Javascript
- JSR223 PostProcessor - Groovy
测试计划:
正如我们在这篇文章中所做的那样, 我们将使用一个简单的测试计划,没有任何外部依赖/定时器等,如下所示,准确地分析这些后处理器的性能。
我使用JMeter 3.0进行此测试。
所有Latency和ResponseTime模拟都已设置为0。

我们使用虚拟采样器来模拟硬编码响应。[对于响应数据,我将文档放在此页面的文本中。它有超过56000个单词]。我们会做一个后处理器,在后处理器中,我们会使用这个分隔符“”将巨大的响应数据字符串拆分成一个数组。我们将迭代数组中的所有元素并调用toUpperCase()方法。[我知道这听起来很愚蠢。这里的目的是做一些非常耗时的操作]。
线程组循环计数设置为1000。我们将重复此过程1000次并测量所需的时间。
Beanshell PostProcessor:
我在测试中添加了Beanshell后处理器,如下所示。我跑了测试。测试花了50秒才完成。

BSF PostProcessor - 语言:Beanshell
我删除了Beanshell后处理器并添加了BSF Post处理器并选择了Beanshell语言。我跑了测试。测试花了54秒完成。

BSF PostProcessor - 语言:Javascript
使用Javascript,测试大约需要 46秒才能完成。

BSF PostProcessor - 语言:Groovy
使用Groovy,测试大约需要 24秒才能完成。

JSR223 PostProcessor
我使用JSR223 PostProcessor对Beanshell,Javascript和Groovy等不同语言进行了相同的测试。

结论:
在重复相同的测试几次之后,我得到如此处所示的结果。

从上面的结果来看,与Beanshell和Javascript相比,Groovy似乎表现得更好。我之前总是使用Beanshell进行前/后处理。 我在此之后修改了我的测试以使用Groovy引擎。 如果您的测试计划在前/后处理活动中消耗更多时间,则您获得的性能结果不可靠。如果我们使用这种方法来测试应用程序性能,使用不同的处理器/脚本语言,我们将为应用程序提供完全不同的性能指标。为了更好地执行JMeter测试/更准确的性能指标,建议使用Groovy。
JMeter - 后处理器/脚本语言 - 比较的更多相关文章
- Jmeter(十八) - 从入门到精通 - JMeter后置处理器 -下篇(详解教程)
1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如 ...
- 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情7. 安装 PHP PHP 是用于 web 基础服务的服务器端脚本语言。它也经常被用作通用编程语言。在最小化安装的 CentOS 中安
CentOS 是一个工业标准的 Linux 发行版,是红帽企业版 Linux 的衍生版本.你安装完后马上就可以使用,但是为了更好地使用你的系统,你需要进行一些升级.安装新的软件包.配置特定服务和应用程 ...
- Jmeter(十七) - 从入门到精通 - JMeter后置处理器 -上篇(详解教程)
1.简介 后置处理器是在发出“取样器请求”之后执行一些操作.取样器用来模拟用户请求,有时候服务器的响应数据在后续请求中需要用到,我们的势必要对这些响应数据进行处理,后置处理器就是来完成这项工作的.例如 ...
- 后半部分样式和JS前半部分脚本语言
样式 剩余样式: 1.<div style=display:"none"></div>:nono 是隐藏该元素内容,block是显示该元素内容 2.< ...
- Jmeter录制后的脚本调优
当我们通过badboy或者HTTP代理服务器的方式录制的脚本,会发现脚本杂乱无章,图片.css.html以及各种我们不关心的脚本,因此就需要针对录制后的脚本进行调优 1.去除图片.html/css等不 ...
- Jmeter(十六) - 从入门到精通 - JMeter前置处理器(详解教程)
1.简介 前置处理器是在发出“取样器请求”之前执行一些操作.如果将前置处理器附加到取样器元件,则它将在该取样器元件运行之前执行.前置处理器最常用于在取样器请求运行前修改其设置,或更新未从响应文本中提取 ...
- TCL脚本语言基础介绍
Tcl简介(一):Tcl 语法 Tcl 语法 Tcl是一种很通用的脚本语言,它几乎在所有的平台上都可以释运行,其强大的功能和简单精妙的语法会使你感到由衷的喜悦,这片文章对 Tcl有很好的描述和说明.如 ...
- 一个Java编写的小玩意儿--脚本语言解释器(一)
今天开始想写一个脚本语言编译器.在这个领域,我还是知道的太少了,写的这个过程肯定是艰辛的,因为之前从来没有接触过这类的东西.写在自己的博客里,算是记录自己的学习历程吧.相信将来自己有幸再回过头来看到自 ...
- Jmeter介绍以及脚本制作与调试
目录 Jmeter介绍 Jmeter安装 Jmeter主要测试组件 Jmeter元件作用域与执行顺序 Jmeter运行原理 Jmeter脚本制作 Jmeter脚本调试 Jmeter介绍 Jmeter ...
随机推荐
- 【leetcode刷题笔记】Longest Consecutive Sequence
Given an unsorted array of integers, find the length of the longest consecutive elements sequence. F ...
- 洛谷 P1379 八数码难题
题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了 ...
- 【C/C++】assert
摘自http://www.cplusplus.com assert : macro #include <assert.h> void assert (int expression); 如果 ...
- C#中如何获取一个二维数组的两维长度,即行数和列数?以及多维数组各个维度的长度?
如何获取二维数组中的元素个数呢? int[,] array = new int[,] {{1,2,3},{4,5,6},{7,8,9}};//定义一个3行3列的二维数组int row = array. ...
- protocol 和 delegate
步骤 1.发出协议(在发协议者.h文件 下@interface-@end 上边) @protocol hireOneMaid <NSObject> @required//必须要实现的方法( ...
- mongodb 的命令操作(转)
成功启动MongoDB后,再打开一个命令行窗口输入mongo,就可以进行数据库的一些操作. 输入help可以看到基本操作命令: show dbs:显示数据库列表 show collections:显 ...
- Spring Boot中使用RabbitMQ
很久没有写Spring Boot的内容了,正好最近在写Spring Cloud Bus的内容,因为内容会有一些相关性,所以先补一篇关于AMQP的整合. Message Broker与AMQP简介 Me ...
- web实现本地缓存的方法
Cookie(或者Cookies) 指一般网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密). cookie一般通过http请求中在头部一起发送到服务器端.一条c ...
- mongodb的备份还原
一:备份数据库 G:\Program Files\MongoDB\Server\3.0\bin>mongodump -d mydb -o g:/data/back mongodump -h IP ...
- Android性能优化系列---管理你的app内存
文章出处:http://developer.android.com/training/articles/memory.html#YourApp Random-access memory(RAM)在任 ...