• 0
  • 0
分享
  • 官方指定Jmeter配置JVM堆内存方式——软件测试圈
  • 橙子 2024-07-08 15:53:49 字数 1912 阅读 2377 收藏 0

  1.概述

  在使用Jmeter做性能测试过程中,可能会应为默认设置的堆内存值较小出现堆内存溢出问题,此时解决的方式有两种,分布式测试和调大堆内存。下面介绍官方推荐调整堆内存方法。

  2.调整Jmeter堆内存

  2.1.介绍官方推荐堆内存调整方法(jmeter在windows环境运行配置方式)

  了解Jmeter最便捷的方式就是看官方文档,它提供了全方位的Jmeter介绍。如果没有阅读官方文档的习惯可能会走一些弯路,因此推荐一条好走的路。

  官方文档地址:https://jmeter.apache.org/usermanual/get-started.html

  1.Jmeter使用手册展示

1-1.png

  2.带你从手册查找JVM正确的配置方式

  点击Getting Started打开手册:

1-2.png

  在1.4章节Running Jmeter中官方介绍了配置环境变量的方式,就是在Jmeter的bin目录下新建一个setenv.bat文件,官方还给出了在文件中配置JVM参数的例子。

1-3.png

  为什么网上提供的jmeter.bat文件修改jvm参数不生效那?官网也给出了答案。

  原因是优先级顺序,setenv.bat文件配置会覆盖jmeter.bat配置内容。

1-4.png

  2.2.介绍官方推荐堆内存调整方法(jmeter在linux环境运行配置方式)

  1.linux和windows配置jvm区别

  linux环境配置Jmeter的JVM参数和window环境配置原理一样,只有两点区别

  Linux环境创建的setenv脚本文件后缀不是bat,是sh。(setenv.sh)

  setenv.sh脚本文件语法格式稍有区别。window解析bat文件使用set语法设置变量,linux解析shell语言使用export设置变量。

  2.官方提供的linux环境配置jvm方法

  继续阅读官方手册1.4 Running JMeter章节,官方文档指出在bin目录中创建setenv.sh文件,并在该文件中配置jvm,所配置的内容将在Jmeter启动时候被jmeter脚本文件读取。

1-5.png

  2.3.Jmeter配置JVM总结

  1.windows配置jvm两种方式

  在jmeter.bat文件中修改jvm参数,如下图。

1-6.png

  在bin目录创建setenv.bat文件修改jvm参数,它的优先级高于jmeter.bat会覆盖该文件内容。

  2.Linux环境配置jvm参数两种方式

  在jmeter没有后缀的文件中配置jvm参数。

1-7.png

  jmeter配置jvm脚本:

1-8.png

  在bin目录下新建setenv.sh文件配置jvm参数,它的优先级高于jmeter脚本,覆盖该脚本参数。

  3.配置jvm参数实例

  3.1.Windows环境调整堆内存(jmeter.bat方式)

  1.在jmeter.bat文件配置jvm参数:

1-9.png

  2.启动Jmeter验证jvm配置

  使用Java VisualVM工具查看Jmeter设置的堆内存结果。

1-10.png

  3.2.Windows环境调整堆内存(setenv.bat方式)

  1.setenv.bat文件配置jvm

  在bin目录下新建setenv.bat文件,在文件中配置JVM参数。

  rem This is the content of bin\setenv.bat,
  rem it will be called by bin\jmeter.bat
  set JVM_ARGS=-Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m

  2.启动Jmeter验证jvm配置

  使用Java VisualVM工具查看Jmeter设置的堆内存结果。

1-11.png

1-12.png

  3.3.Linux环境调整堆内存

  1.创建setenv.sh文件

  在jmeter的bin目录下新建setenv.sh配置文件,在文件中配置jvm参数

  export JVM_ARGS="-Xms256m -Xmx256m -XX:MaxMetaspaceSize=256m"

  2.启动jmeter脚本查看jvm参数

  命令方式启动jmeter脚本

  // jmeter命令调用的就是bin目录下的jmeter脚本文件,因此他会在启动时读取setenv.sh文件中jvm参数。
  jmeter -n -t ./JmeterScript/LiveStreaming.jmx

  查看Jmeter的jvm参数和设置值一致。

1-13.png


作者:Bruce小鬼    

来源:http://www.51testing.com/html/93/n-7796793.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   靠谱测试人员除了需要具备业务分析能力、洞察BUG能力等,还需要具备一定的硬实力,也就是常说的专业技术能力。比如:测试用例设计、抓包工具、性能测试功能、数据库、测试服务器维护等等。  1.掌握测试基础知识  基础知识就是根基,根基打好了,你才能够更有效地往后期发展,也就是为了以后的学习做一个铺垫。如果根基都没打好,功能测试不会,就想直接学性能,那性能是做不好的。  2.娴熟运用测试工具  熟悉工具和熟练使用工具完全是两个概念,熟悉工具基本上等同于不会,遇到过很多简历上写会使用什么什么工具,都没有实际能力。比如loadrunner只会一个简单的录制,增强一下脚本,觉得会用了,那知识会用了1/5...
            0 0 808
            分享
          •   python 字符串切割  除了提取字符串中的单个字符外,还可以通过对字符串进行切片来选取字符组。切片的工作方式与索引非常相似,但您使用两个偏移量,用冒号 (: ) 字符分隔。第一个偏移量是Python应该从哪里开始切片;第二个偏移是它应该停止切片的地方。同样,将偏移量视为字符之间的空格,而不是字符本身。  第一行告诉 Python 在偏移量 2 和 4 之间切片。您可以从这些偏移量之间有两个字符:g 和 u。python 将它们作为单个字符串“gu”返回。第二行在偏移量 5 和 10 之间对字符串进行切片,并返回字符串“sashi”。如果省略第一个偏移量,Python 将使用字...
            0 0 699
            分享
          • 想做一个小游戏玩玩,飞行的小鸟,简单好玩,尝试看看。用python做游戏的话,就得要用到pygame这个模块了。先简单介绍一下pygame吧。 pygame是一个利用SDL库(全名Simple DirectMedia Layer)写就的游戏库。安装好python3环境以后,可以用pip3 install pygame命令来安装pygame。pygame有很多的模块,我们这个游戏会用到以下模块: pygame:主模块,一些通用的控制 pygame.display:用来访问显示设备 pygame.draw:绘制形状,线和点 pygame.rec...
            3 0 2472
            分享
          • 正则表达式提取器作为jmeter中非常重要的组件,接口测试常用于上下接口的参数化,该提取器的一些高级使用会是我们的接口测试更加的高效和简洁。下面就介绍一下一些高级用法。三个实例说明Jmeter中正则表达式提取器的高级使用举例一:单模板单数据定义说明:引用名称:image表示变量名,不用多说正则表达式:这里的一对括号就是一个模板,两对括号就是两个模板,…..模板:这里要告诉Jmeter你要匹配哪个或哪些模板,$1$表示匹配第一个模板(就是正则表达式里的第一对括号)匹配数字:告诉Jmeter如果匹配到了多个符合要求的,你要哪一个?这里我填写-1,表示获取全部匹配的数据0表示随机-1表示全部1表示第...
            2 1 1839
            分享
          • 一、了解什么是DevOps       DevOps的目标是实现软件系统的快速交付、并且提升系统稳定性和获得用户良好的反馈。不知道是不是有些同学和我一样,仅仅靠单纯概念性的描述比较难以理解什么是DevOps。       就好像我们常常说要养成“良好的生活习惯”,那这个“良好的生活习惯”可能会包含:早睡早起、健康饮食和合理锻炼锻炼等等具体的行为。其实DevOps这个有点抽象的概念也是由一系列具体的行为和软件工程实践组成的。包含:基础设施即代码、CI/CD、自动化测试、容器化、服务编排、自动化部署和软件度量等。&nb...
            15 14 5481
            分享
      • 51testing软件测试圈微信