0


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

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设置性能测试设计混合场景三种方法:

  2. 每个场景设置一个线程组;

  3. 使用if控制器;

  4. 使用吞吐量控制器。

  5. 在线程组中,没有逻辑控制器时,请求执行顺序是从上到下依次执行。

  6. 其它

  7. 业务操作脚本的登录添加仅一次控制器,使每个线程登录只运行一次。

  8. 业务操作脚本不需要退出请求。

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

本文转载自: https://blog.csdn.net/qq_26875163/article/details/129040226
版权归原作者 面壁者Fifth 所有, 如有侵权,请联系我们删除。

“Jmeter使用中遇到的问题整理记录”的评论:

还没有评论