参考: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次循环。

6. 管理属性文档

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

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

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

7. 扩展JMeter

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

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

JMeter 十四:最佳实践的更多相关文章

  1. 软件设计师【软件工程:软件开发模型、XP极限编程十二最佳实践】

    一.软件开发模型 二.XP极限编程十二最佳实践

  2. [转] Jenkins Pipeline插件十大最佳实践

    [From] http://blog.didispace.com/jenkins-pipeline-top-10-action/ Jenkins Pipeline 插件对于 Jenkins 用户来说可 ...

  3. JMeter(十四)-自动生成测试报告

    很多朋友都在问jmeter如何生成测试报告,这里随便说两句. 环境要求 1:jmeter3.0版本之后开始支持动态生成测试报表 2:jdk版本1.7以上 3:需要jmx脚本文件 基本操作 1:在你的脚 ...

  4. Jmeter(十四) - 从入门到精通 - JMeter定时器 - 下篇(详解教程)

    1.简介 用户实际操作时,并非是连续点击,而是存在很多停顿的情况,例如:用户需要时间阅读文字内容.填表.或者查找正确的链接等.为了模拟用户实际情况,在性能测试中我们需要考虑思考时间.若不认真考虑思考时 ...

  5. JavaScript基础笔记(十四)最佳实践

    最佳实践 一)松散耦合 1.解耦HTML/JavaScript: 1)避免html种使用js 2)避免js种创建html 2.解耦CSS/JS 操作类 3.解耦应用逻辑和事件处理 以下是要牢记的应用和 ...

  6. Laravel 的十八个最佳实践

    本文翻译改编自 Laravel 的十八个最佳实践 这篇文章并不是什么由 Laravel 改编的 SOLID 原则.模式等. 只是为了让你注意你在现实生活的 Laravel 项目中最常忽略的内容.   ...

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

    下载<视觉SLAM十四讲:从理论到实践>源码:https://github.com/gaoxiang12/slambook 第二讲:初识SLAM 2.4.2 Hello SLAM(书本P2 ...

  8. jmeter之最佳实践

    官方文档: http://jmeter.apache.org/usermanual/best-practices.html 翻译: 16.最佳实践 16.1 始终使用最新版本的JMeter JMete ...

  9. 高翔《视觉SLAM十四讲》从理论到实践

    目录 第1讲 前言:本书讲什么:如何使用本书: 第2讲 初始SLAM:引子-小萝卜的例子:经典视觉SLAM框架:SLAM问题的数学表述:实践-编程基础: 第3讲 三维空间刚体运动 旋转矩阵:实践-Ei ...

随机推荐

  1. php 如何写 mysql insert into 语句

    $sql="INSERT INTO moneytb (riqi,item,inout,cost,bz) VALUES ('$riqi','$item','$inout','$cost','$ ...

  2. Codeforces Round #423 A Restaurant Tables(模拟)

    A. Restaurant Tables time limit per test 1 second memory limit per test 256 megabytes input standard ...

  3. ECNU 2018 10月月赛 E 盖房子 (bitset + 倍增)

    题目链接  ECNU Monthly 2018.10 Problem E 从开场写到结束…… 显然要把三角形分成上下两部分. 把每一部分分成三部分,以上部分为例. 上面和右边,以及左下角的正方形. 也 ...

  4. 洛谷P1514 引水入城 [搜索,区间DP]

    题目传送门 引水入城 题目描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个 N 行×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每 ...

  5. 【计算几何】【推导】【补集转化】AtCoder Regular Contest 082 E - ConvexScore

    题意:平面上给你N个点.对于一个“凸多边形点集”(凸多边形点集被定义为一个其所有点恰好能形成凸多边形的点集)而言,其对答案的贡献是2^(N个点内在该凸多边形点集形成的凸包内的点数 - 该凸多边形点集的 ...

  6. 【概率DP】BZOJ4318-OSU!

    [题目大意] 一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1个长度为n的01串.在这个串中连续的 X个1可以贡献X^3 的分数,这x个1不能被其他连续的1所包含( ...

  7. django查询

    阅读目录 大于.大于等于 小于.小于等于 在...范围内 模糊查询 是否为空 不等于/不包含于 大于.大于等于 1 2 3 4 5 __gt 大于 __gte 大于等于   User.objects. ...

  8. 给lnmp一键包中的nginx安装openresty的lua扩展

    lnmp一键包(https://lnmp.org)本人在使用之后发现确实好用,能帮助我们快速搭建起lnmp.lamp和lnmpa的web生产环境,因此推荐大家可以多试试.但有的朋友可能需要使用open ...

  9. 解决maven无法下载jar的问题

    先去本地仓库查看是否有没有jar包,如果没有并且存在除jar包以外的文件,先将文件删除,重新用maven下载一遍.如果还是不行,就自己下载jar包导入到本地仓库,但是不能手动的添加文件夹和pom.xm ...

  10. CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版

    "问题:众所周知772002很喜欢马尾,所以他决定画几幅马尾送给他的女朋友. 772002会画m种马尾,772002还有n张纸,n张纸分别编号1到n,每张纸上只能画一种马尾. 然而77200 ...