jmeter十四:最佳实践

微微微笑 微微微笑     2022-09-14     583

关键词:

参考:http://jmeter.apache.org/usermanual/best-practices.html

1. 总是使用最新版本的JMeter

2. 使用合适数目的Thread

Thread数目取决于:硬件环境、Test Plan的设计、以及服务器的运行速度。

不合适数目的Thread,可能会造成测试结果不正确或者不精确。

如果我们需要大规模的负载测试,可以考虑在分布式模式下多个机器命令行运行JMeter。

3. 正确使用 HTTP(S) Test Script Recorder

1. 过滤录制的内容

录制时,最重要的事情就是要找出哪些是我们不感兴趣的请求。

比如,录制图片请求就没有意义。这时候我们就可以在 HTTP(S) Test Script Recorder -> Requests Filtering -> URL Patterns to Exclude 中添加“.*\.gif”,这样录制的时候就不会录制gif请求。类似的可能我们也会排除CSS、JS文件。

我们感兴趣的请求,比如“.jsp, .asp, .php, .html”之类,我们就可以在 HTTP(S) Test Script Recorder -> Requests Filtering -> URL Patterns to Include 中添加“.*\.jsp”等。

2. 变量处理

在Test Plan级别定义的变量,以及 User Defined Variables 控件定义的变量,JMeter 录制时,遇到值会自动使用变量进行替换。

假如我们定义了一个变量叫“server”,值为“www.baidu.com”,那么录制的样本中,任意地方的“www.baidu.com”都会自动用“${server}”来代替。

这里要注意的是,匹配是大小写敏感的。

4. 减少资源需求

以下是一些建议:

  • 使用命令行模式跑测试:jmeter –n –t test.jmx –l test.jtl
  • 尽量少使用Listeners。如果我们使用 –l 命令,那么所有的Listeners 都可以不要了。因为后期分析完全可以使用 –l 生成的文件来产生所有的Listeners结果
  • 负载测试时,不要使用“View Results Tree”或者”View Results in Table“。这两项只能在编写脚本阶段、或者调试脚本时期使用
  • 不要使用很多相似的取样器,我们可以在一个循环中使用相同的取样器,然后使用变量来区别这些取样器。
  • 不要使用 Test Plan 的 Functional Test Mode
  • 输出尽量选择CSV,来代替XML
  • 只保存我们需要的数据
  • 尽量少使用Assertions

5. 参数化测试

我们经常需要在不同设置下跑相同的测试用例。比如,改变Thread数目,或者循环次数,或者改变服务器地址。

一种解决方案是在Test Plan中定义一系列变量,然后在测试中使用这些变量。这样如果有有变动就只需要改变这些变量的值即可。

另外一种解决方案是按照属性值来定义变量值。这样比较适用于命令行方式运行多个测试。比如我们可以定义一个变量 LOOPS,变量值为“${__P(loops,10)}”。这里“__P”是一个函数。这样如果命令行定义了属性loops的值,那么就采用命令行定义的值,否则就采用变量默认的“10”。

比如“jmeter -n -t "Test Plan1.jmx" -l a.csv”,会有10次循环。

“jmeter -n -t "Test Plan1.jmx" -l a.csv –Jloops=12”,会有12次循环。

image

6. 管理属性文档

最好不要更改 jmeter.properties 文件。

如果我们想要更改jmeter 属性,可以考虑从jmeter.properties中将这些属性拷贝出来,放到 user.properties文件中,然后进行修改。

user.properties属性文件会覆盖 jmeter.properties属性文件的属性。

7. 扩展JMeter

有很多开源的插件之类可以帮助我们使用JMeter.

我们可以在JMeter Wiki上看到资源列表。

jmeter之最佳实践(代码片段)

官方文档:http://jmeter.apache.org/usermanual/best-practices.html 翻译:16.最佳实践16.1始终使用最新版本的JMeterJMeter的性能正在不断提高,因此强烈建议用户使用最新版本。确保始终阅读更改列表以了解新的改进和组件。一定要避免使... 查看详情

jmeter响应乱码(十四)

方法一:jmeter响应乱码解决方法:在jmeter的bin目录下找到jmeter.propertis这个文件,修改里面的#sampleresult.default.encoding=ISO-8859-1改成sampleresult.default.encoding=UTF-8方法二:后置处理其中添加:  查看详情

jmeter学习(三十四)测试报告优化

如果按JMeter默认设置,生成报告如下:从上图可以看出,结果信息比较简单,对于运行成功的case,还可以将就用着。但对于跑失败的case,就只有一行assert错误信息。(信息量太少了,比较难找到失败原因)优化大致过程:1、下... 查看详情

jmeter学习(十四)jmeter_断言使用

先说一下使用断言的目的:在request的返回层面增加一层判断机制。因为request成功了,并不代表结果一定正确。类似于QTP中的检查点检查点。断言的使用方法:step_1:在你选择的Sampler下添加对应的断言(因为不同类型的断言检查... 查看详情

分布式技术追踪2018年第十四期

分布式系统实践1. 聊聊ChaosEngineering的历史、原则和最佳实践https://mp.weixin.qq.com/s/-8gpUlbmlDDyOf7AqaFdTAhttps://www.jianshu.com/p/c8f78b8db2a0?from=timeline&isappinstalled=0摘要: 混沌工程是进行分布式异常测试的一种有效手段,自Ne 查看详情

jmeter(三十四)jmeter-question之“cookie获取”

...什么都需要自己去挖掘。  本次测试的工具选型依然是Jmeter,真实场景中遇到了这么个问题。可能解决办法有点笨拙,勉强算一次记录吧!  场景是这样:    每登录一次,便会生成token令牌。(注:该token令牌是在请... 查看详情

jmeter(十四)取样器之jdbcrequest

...连接oracle11g:1、我们先把需要连接的数据库驱动拷贝到jmeter的lib/目录下,比如我需要连接的数据库是oracle11G,那么对应的驱动就是 查看详情

jmeter(二十四)jmeter-question之“加密请求参数”(代码片段)

...的不一样的加密方式,用的最多的还是MD5加密(16,32)。Jmeter3.2版本已经有解决方案  1、$__MD5(,)函数(默认32位),当然也有其他类型的加密函数:base64    用法很简单,与一般函数使用一般无二。  粘贴一个实例: ... 查看详情

jmeter(二十四)逻辑控制器之interleavecontroller

InterleaveController----交错控制器,对于交错控制器官方文档解释的很清楚,上例子:      可以看到运行一次 InterleaveController下的Sampler,运行一次 InterleaveController之外的Sampler。如此不停的交错循环。     Dem... 查看详情

jmeter之正则表达式提取器(十四)

准备登录接口,数据都准备好从响应结果里提取出“登录成功”添加正则表达式提取器:正则表达式提取器界面介绍: 检查正则表达式提取结果是否正确:添加debugSampler调试取样器执行结果:(前面是登录成功,这块... 查看详情

《视觉slam十四讲》之第3讲-实践eigen库(代码片段)

《视觉slam十四讲》之第3讲-实践Eigen库Eigen库的安装sudoapt-getinstalllibeigen3-dev注:Eigen是一个由纯头文件搭建的线性代数库,头文件安装路径为/usr/include/eigen3/。实例1:Eigen的基础运算#include<iostream>#include<ctime>#include<Eige... 查看详情

jmeter(二十四)线程组-concurrencythreadgroup

...;搜索CustomThreadGroups插件->勾选->点击ApplyChangesandRestartJmeter2、添加线程组TestPlan->Add->Threads-jp@gc->bzm-ConcurrencyThreadGroup3、配置参数TargetConcurrency:目标并发线程数RampUpTime(min):在多少时间内启动到目标并发线程数Ramp-UpStepsCoun... 查看详情

浅读《视觉slam十四讲:从理论到实践》--操作1--初识slam

下载《视觉SLAM十四讲:从理论到实践》源码:https://github.com/gaoxiang12/slambook第二讲:初识SLAM2.4.2HelloSLAM(书本P27) 1、从github上下载源码,并解压Ubuntu上,解压zip,先找到zip文件所在位置,然后运行下面代码,进行解压。unzip... 查看详情

《视觉slam十四讲——从理论到实践》学习笔记(代码片段)

第1讲:预备知识1.3风格约定矩阵A∧A^\\wedgeA∧:AAA的反对称矩阵。坐标点坐标点用向量表示,具体来说,是用列向量表示,vetcor(3,1); 查看详情

jmeter接口测试案例实践

...中的通讯录查询接口进行测试,接口参数如下:1.2.使用Jmeter进行接口测试1.2.1.打开Jmeter下载好Jmeter后,双击bin目录下的jmeter.bat文件:1.2.2.添加线程组在“测试计划”上鼠标右键添加-->threads(Users)-->线程组,添加测试场景设... 查看详情

jmeter使用实践-基础介绍

Jmeter使用实践-基础介绍  随着市场上推出越来越多的测试工具,大家使用起来也比较盲目,就我个人而言,使用过LoadRunner和Jmeter很多人倾向于LoadRunner,因为LR的功能更强大,其实工具的选择,不在于工具本身有多强大,... 查看详情

制作容器镜像的最佳实践(代码片段)

...的关于镜像制作的相关文章总结出来的.包括通用的容器最佳实践,java,nginx,python容器最佳实践.最佳实践的目的一方面保证镜像是可复用的,提升DevOps效率,另一方面是为了提高安全性.希望对各位有所帮助.本文分为四部分内容,分别... 查看详情

使用jmeter进行负载测试——终极指南

这篇教程讨论的是JMeter,它是一款基于Java的、集合了几个应用程序、具有特定用途的负载和性能测试工具。本篇主要涉及的内容:解释一下JMeter的用途JMeter的实现方式以及采用的技术安装与配置介绍用户界面的基本特征详细介绍... 查看详情