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

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 无论是什么类型的系统,都可以从测试类型角度来考虑测试。1.系统测试回顾测试阶段:1、单元测试,测试函数/方法,需要知道函数内部的逻辑设计,一般采用的是白盒测试方法。2、集成测试,测试接口,需要知道接口的规格,一般采用的是灰盒测试方法。3、系统测试,测试整个软件,需要知道软件的整体特性,一般采用的是黑盒测试方法。4、验收测试,测试整个软件软件质量模型:1、功能性,对应功能测试2、效率,对应性能测试3、易用性,对应易用性测试4、可靠性,对应可靠性测试5、可移植性,对应兼容性测试针对系统可以有不同的测试类型,一般可以粗分为功能测试和非功能测试。将来工作中主要接触的功能测试、性能测试、兼容性测试等。针...
            0 1 2210
            分享
          • 面试就是一场攻防战。攻的就是面试官的内心防线,突破防线获得面试官的最大价值认可。防的是面试官的问题刺探,避免暴漏短板损害面试官对你的价值估量。攻防有序才能使自己在收获Offer的同时获得最高的薪酬。恰好笔者近期以面试者的身份参加一场面试活动,又以面试官的身份参与了一场社会招聘面试。结合笔者在面试过程中的体验与大家分享些面试技巧。一、知彼知己百战不殆知彼知己百战不殆讲的是要在做面试前要最大可能的充分熟悉对方和了解自己。梳理出对方的核心要求,整理出自身的优劣势。因地制宜,根据不同问题采取适宜的策略,一步步攀爬向面试的终极目标:百战百胜。知彼就要应聘者通过各种渠道收集打探对方信息。比如面试公司的文化...
            1 1 1034
            分享
          •   一 背景介绍  1.什么是Redmine   Redmine是用Ruby开发的基于web的项目管理软件,是用ROR框架开发的一套跨平台项目管理系统。  我们用Redmine 主要是用于 Bug 管理流程,包括新建、已解决、反馈、关闭等状态。  2.事情起因  有一次服务器自动关机,再次重启后发现redmine 的redmine thin1 和thin2 两个服务启动不起来,导致登录页面提示异常,如下图。  二 处理过程  1.启动两个服务  首先出现上图中报错,排查发现redmine thin1 和thin2这两个服务需要重新启动,启动可以在系统服务里启动,也...
            0 0 1391
            分享
          • 1、按严重程度分类:是指bug对软件质量的破坏程度,即此bug的存在将对软件的功能和性能产生什么样的影响。崩溃(Blocker):系统无法正常运行。阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环、导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。严重(Critical):很明显的错误性的bug。系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符模块无法启动或调用,程序重...
            14 13 3517
            分享
          •   我们发现了一个bug后,怎样去确定这个bug是应该前台来解决还是后台来解决?  当然我们测试网站的时候,可以通过浏览器的F12来查看传值,那么如果测试的是APP,我们又该怎么来抓取这个数据呢?这里就需要用到一些抓包工具,来协助我们定位问题。  这里我们使用的工具就是Fiddler。  下面我们通过几个案例来具体说明一下如何通过Fiddler来定位是前台的问题还是后台的问题。  案例1  我们在使用手机APP的时候,修改一个联系人信息,修改之后发现在数据库里的信息电话和性别没有修改成功,这个时候我们用Fiddler来抓取数据包看看。  首先先将Fiddler设置成只接收远程客户端的数据,如下...
            13 14 2308
            分享
      • 51testing软件测试圈微信