• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Jmeter使用遇到的问题记录

武飞扬头像
面壁者Fifth
帮助1

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhhhhggf
系列文章
更多 icon
同类精品
更多 icon
继续加载