Jmeter使用中遇到的问题整理记录

本文档详细记录了Jmeter在压力测试中的使用,包括脚本录制与关联、场景设置、结果分析以及常见问题的解决方案。介绍了如何通过Badboy录制脚本、设置关联参数、创建性能测试场景,并探讨了Jmeter报告中的吞吐量概念。同时,针对Jmeter内存溢出、Linux环境下响应数据为空及中文乱码等问题提供了相应对策。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

3.4 Jmeter
本章节内容只与Jmeter有关。
3.4.1 Jmeter脚本

  1. 录制
    当无法确定请求信息而调试时请求失败,可以使用Badboy录制脚本方式获取请求信息,或者使用JMeter代理录制方式(祥见G:\DataBank\Jmeter Badboy\JMeter两种录制脚本方法:badboy和自设代理.docx)
  2. 关联
    请求需要用到登录中的token,JSESSIONID,而HTTP Cookie管理器又不能满足时,就需要设置关联操作。
     HTTP取样器—后置处理器—正则表达式提取器
    登录请求
    在这里插入图片描述

关联登录响应body中的token
在这里插入图片描述

关联登录响应头Cookie中的JSESSIONID
在这里插入图片描述

 查看是否关联成功
添加取样器—调试取样器,添加查看结果数,运行后会显示关联参数是否有值
在这里插入图片描述

 使用关联参数
如果token需要在请求cookie中使用,注意域、路径(在获取的请求中查看)如下图:
在这里插入图片描述

如果token需要在请求头信息中使用,如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/3dac2c83f4be495089dae850b252c110.png
在这里插入图片描述

  1. 设置全局变量
    如果要讲关联到的参数设置使其能在别的线程组也能使用,就需要将参数设置为全局变量
    工具—函数助手— setProperty进行设置
    HTTP取样器—后置处理器—BeanShell 后置处理程序
    将生成的变量复制到下面位置:
    在这里插入图片描述

 BeanShell 后置处理程序:KaTeX parse error: Expected group after '_' at position 2: {_̲_setProperty(ne…{__P(newtoken,)}
3.4.2 Jmeter场景
关于性能测试,loadrunner能实现的场景jmeter均能实现,关于loadrunner的场景设置考虑点,在jmeter中也需要考虑。

  1. jmeter设置性能测试设计混合场景三种方法:
  1. 每个场景设置一个线程组;
  2. 使用if控制器;
  3. 使用吞吐量控制器。
  1. 在线程组中,没有逻辑控制器时,请求执行顺序是从上到下依次执行。
  2. 其它
  1. 业务操作脚本的登录添加仅一次控制器,使每个线程登录只运行一次。
  2. 业务操作脚本不需要退出请求。

3.4.3 Jmeter结果

  1. jmeter报告中定义的吞吐量
    jmeter的吞吐量认为完全等于LR的TPS并不严谨,严格意义来讲应该是交易成功率为100%,或者交易失败率在你可以接受的范围内(对当前测试整体结果影响不大,到了可以忽略的程度)。当失败率较大时,jmeter计算TPS值应该考虑异常率这个变量,计算出成功率即成功的TPS=总请求数成功率 /总时长,或者TPS= jmeter吞吐量值成功率。
  2. jmeter命令行执行结果,在查看结果树中浏览打开进行查看。
    3.4.4 Jmeter问题
  3. jmeter常用设置
    jmeter.properties文件:
    language=zh_CN
    locales.add=zh_CN
    sampleresult.default.encoding=utf-8
  4. jmeter报内存溢出压测中
    jmeter报内存溢出可能的原因有很多,要注意下面前三点:
    a) 单机压测过程中使用过多的线程,官网建议1000-2000。具体看机器的配置和启动应用的情况。
    单机不能满足压测时需考虑使用分布式压测方式(详见G:\DataBank\Jmeter Badboy\JMeter分布式测试配置.docx)。
    b) 监听器里面配置写入到文件,不写入到文件的话所用监听结果存放在内存。还要注意不要使用“察看结果树”监听器。
    c) 运行压测过程中使用no-gui模式,不要使用界面压测,使用jmeter -n -t这样的命令去运行。
    d) 除了上面的注意事项,还可以通过修改jmeter.bat中内存设置解决这个问题。建议修改为1024的倍数(1024m=1G)。
    调jvm原则,Xms=Xmx,最大与最小相等,不要超过物理机内存的50%,在50%情况下4g-8g就足够了,内存更大下gc回收会变慢,反到可能不好。
  5. linux执行jmeter脚本解决响应数据为空
    在Windows中执行正常,但在linux中执行聚合报告异常率100%,查看请求和响应数据都为空,从而导致断言失败产生异常,查看jmeter.log日志,发现失败的请求并未有错误日志。
    解决:
    1在jmeter_home/bin/jmeter.properties文件中修改配置
    jmeter.save.saveservice.response_data=true
    jmeter.save.saveservice.samplerData=true
    2.在user.properties文件中追加配置
    jmeter.save.saveservice.output_format=xml
    jmeter.save.saveservice.response_data=true
    jmeter.save.saveservice.samplerData=true
    jmeter.save.saveservice.requestHeaders=true
    jmeter.save.saveservice.url=true
    jmeter.save.saveservice.responseHeaders=true
    配置好后重新执行一边脚本,执行成功。
  6. linux中jmeter执行结果响应中文乱码解决
    解决:jmeter_home/bin/jmeter.properties
    修改值#sampleresult.default.encoding=ISO-8859-1
    sampleresult.default.encoding=utf-8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

面壁者Fifth

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值