参数化,内存溢出问题

Posted yaohu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了参数化,内存溢出问题相关的知识,希望对你有一定的参考价值。

这一篇文章随便说一下JMETER的脚本参数化

1:Parameters的两种参数化方法

1.1:函数助手参数化

首先准备你的参数数据。我在bin/data中新建了一个dat文件,记事本另存为修改编码为UTF-8,注意用户名和密码是一一对应的,用英文逗号隔开

技术分享图片

点击函数助手对话框,填写数据文件路径与列数

技术分享图片

 点击生成,生成函数

 技术分享图片

将生成的函数填入Parameters值中,注意参数与列数的对应关系!

技术分享图片

我们刚刚在数据中填入了三个参数,这里我们需要修改一下线程。且将线程改为3

技术分享图片

执行一下脚本,观察结果树。可以发现请求发送了三次,每次的用户名不同。

技术分享图片

技术分享图片

技术分享图片

1.2:Parameters的函数助手参数化就说到这里,下面看一下JSON格式如何参数化。这里我们用到了csv文件参数化的方法

借助jmeter中的配置原件:CSV Data Set Config

技术分享图片

配置 CSV Data Set Config

技术分享图片

在json数组中引入变量,执行并查看结果树

技术分享图片

可以看到执行了三次,每次传入的用户名不同

技术分享图片

技术分享图片

技术分享图片

关于参数化就讲到这里,大家学会了参数化,可以去做压力测试啦~

——————————————————分隔符——————————————————————

结尾彩蛋~

使用jmeter进行压力测试时遇到一段时间后报内存溢出outfmenmory错误,导致jmeter卡死了,此时我们应该怎么办?

内存溢出,我们就去改一下线程吧~

1、windows环境下,修改jmeter.bat
set HEAP=-Xms512m -Xmx4000m
set NEW=-XX:NewSize=256m -XX:MaxNewSize=1024m
改为:
set HEAP=-Xms256m -Xmx1024m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=512m
set PERM=-XX:PermSize=1024m -XX:MaxPermSize=1024m


heap最多设置为物理内存的一半,默认设置为512M.如果heap超过物理内存的一半,可能运行jmeter会慢,甚至出现内存溢出,原因java比较吃内存,占CPU.

注意:JDK32位的电脑Xmx不能超过1500m,最大1378m.否则在启动Jmeter时会报错哦~

如何查看本机JDK的位数?

CMD下执行 java -version

现在你会发现,一点也不卡啦!








以上是关于参数化,内存溢出问题的主要内容,如果未能解决你的问题,请参考以下文章

46栈内存溢出内存区域(程序计数器Java 虚拟机栈本地方法栈Java 堆方法区直接内存内存溢出)与内存溢出(对象实例化分析)

内存溢出与jvm参数配置

Java栈内存堆内存溢出及相关JVM参数配置总结

性能测试三十六:内存溢出和jvm常见参数

性能测试三十六:内存溢出和JVM常见参数及JVM参数调优

JAVA 声明new 过多临时对像会导致内存溢出,怎么解决?