Jmeter使用遇到的问题记录
3.4 Jmeter
本章节内容只与Jmeter有关。
3.4.1 Jmeter脚本
- 录制
当无法确定请求信息而调试时请求失败,可以使用Badboy录制脚本方式获取请求信息,或者使用JMeter代理录制方式(祥见G:\DataBank\Jmeter Badboy\JMeter两种录制脚本方法:badboy和自设代理.docx) - 关联
请求需要用到登录中的token,JSESSIONID,而HTTP Cookie管理器又不能满足时,就需要设置关联操作。
HTTP取样器—后置处理器—正则表达式提取器
登录请求
关联登录响应body中的token
关联登录响应头Cookie中的JSESSIONID
查看是否关联成功
添加取样器—调试取样器,添加查看结果数,运行后会显示关联参数是否有值
使用关联参数
如果token需要在请求cookie中使用,注意域、路径(在获取的请求中查看)如下图:
如果token需要在请求头信息中使用,如下图:
![在这里插入图片描述](https://img-blog.csdnimg.cn/3dac2c83f4be495089dae850b252c110.png
- 设置全局变量
如果要讲关联到的参数设置使其能在别的线程组也能使用,就需要将参数设置为全局变量
工具—函数助手— 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中也需要考虑。
- jmeter设置性能测试设计混合场景三种方法:
- 每个场景设置一个线程组;
- 使用if控制器;
- 使用吞吐量控制器。
- 在线程组中,没有逻辑控制器时,请求执行顺序是从上到下依次执行。
- 其它
- 业务操作脚本的登录添加仅一次控制器,使每个线程登录只运行一次。
- 业务操作脚本不需要退出请求。
3.4.3 Jmeter结果
- jmeter报告中定义的吞吐量
jmeter的吞吐量认为完全等于LR的TPS并不严谨,严格意义来讲应该是交易成功率为100%,或者交易失败率在你可以接受的范围内(对当前测试整体结果影响不大,到了可以忽略的程度)。当失败率较大时,jmeter计算TPS值应该考虑异常率这个变量,计算出成功率即成功的TPS=总请求数成功率 /总时长,或者TPS= jmeter吞吐量值成功率。 - jmeter命令行执行结果,在查看结果树中浏览打开进行查看。
3.4.4 Jmeter问题 - jmeter常用设置
jmeter.properties文件:
language=zh_CN
locales.add=zh_CN
sampleresult.default.encoding=utf-8 - 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回收会变慢,反到可能不好。 - 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
配置好后重新执行一边脚本,执行成功。 - linux中jmeter执行结果响应中文乱码解决
解决:jmeter_home/bin/jmeter.properties
修改值#sampleresult.default.encoding=ISO-8859-1
sampleresult.default.encoding=utf-8
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhhhggf
系列文章
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
微信运动停用后别人还能看到步数吗
PHP中文网 07-22