2. JMeter中非常重要的几个概念
2016-09-05 20:31
369 查看
在使用JMeter之前,需要搞懂下面这几个概念,这对JMeter的使用是非常重要的。
Test Plan
Thread Group
Controllers
Listeners
Timers
Assertions等 … …
一个JMeter测试计划有很多种测试元素组成。一般至少包含一个Thread Group(线程组),在每个Thread Group里面又可以包含Controller,Listener,Timer等等。
总结下,大体结构如下
更细化一点,差不多这样,
Samplers
Samplers允许JMeter向server发送一系列的请求。她模拟了用户从页面想终端server发送请求的行为,比如新建一个HTTP的Sampler,可执行POST、GET、DELETE等请求。
一些常用的samplers主要有一下几种,
- HTTP Request
- FTP Request
- JDBC Request
- Java Request
- SOAP/XML Request
- RPC Request
Logic Controllers
Logic Controllers其实最主要的作用就是控制执行顺序。她可以用来控制sampler在一个线程中的执行顺序,也可以改变来自其他elements请求的顺序。典型的代表就是,IF Controller、While Controller等。
一些常用的Logic Controllers主要有一下几种,
Simple Controller
Loop Controller
Once Only Controller
Interleave Controller
Random Controller
Random Order Controller
Throughput Controller
Runtime Controller
If Controller
While Controller
Switch Controller
ForEach Controller
Module Controller
Include Controller
Transaction Controller
Recording Controller
Listeners可以加在test plan下的任何地方,JMeter提供的Listeners主要包含以下几种,
- Sample Result Save Configuration
- Graph Full Results
- Graph Results
- Spline Visualizer
- Assertion Results
- View Results Tree
- Aggregate Report
- View Results in Table
- Simple Data Writer
- Monitor Results
- Distribution Graph (alpha)
- Aggregate Graph
- Mailer Visualizer
- BeanShell Listener
- Summary Report
JMeter提供的Timers,如下
- Constant Timer
- Gaussian Random Timer
- Uniform Random Timer
- Constant Throughput Timer
- Synchronizing Timer
- JSR223 Timer
- BeanShell Timer
- BSF Timer
- Poisson Random Timer
JMeter提供的Assertions如下,
- Beanshell Assertion
- BSF Assertion
- Compare Assertion
- JSR223 Assertion
- Response Assertion
- Duration Assertion
- Size Assertion
- XML Assertion
- BeanShell Assertion
- MD5Hex Assertion
- HTML Assertion
- XPath Assertion
- XML Schema Assertion
Test Plan
Thread Group
Controllers
Listeners
Timers
Assertions等 … …
1. Test Plan
Test Plan也就是测试计划,概念有点类似eclipse里面的project(项目、工程)。一个JMeter测试计划有很多种测试元素组成。一般至少包含一个Thread Group(线程组),在每个Thread Group里面又可以包含Controller,Listener,Timer等等。
总结下,大体结构如下
更细化一点,差不多这样,
2. Thread Group
Thread Group就是线程组,,可以看做一个虚拟用户组,线程组中的每个线程都可以理解为一个虚拟用户。线程组中包含的线程数量在测试执行过程中是不会发生改变的。3. Controllers
JMeter主要有两种类型的Controllers,Samplers和Logic Controllers。Samplers
Samplers允许JMeter向server发送一系列的请求。她模拟了用户从页面想终端server发送请求的行为,比如新建一个HTTP的Sampler,可执行POST、GET、DELETE等请求。
一些常用的samplers主要有一下几种,
- HTTP Request
- FTP Request
- JDBC Request
- Java Request
- SOAP/XML Request
- RPC Request
Logic Controllers
Logic Controllers其实最主要的作用就是控制执行顺序。她可以用来控制sampler在一个线程中的执行顺序,也可以改变来自其他elements请求的顺序。典型的代表就是,IF Controller、While Controller等。
一些常用的Logic Controllers主要有一下几种,
Simple Controller
Loop Controller
Once Only Controller
Interleave Controller
Random Controller
Random Order Controller
Throughput Controller
Runtime Controller
If Controller
While Controller
Switch Controller
ForEach Controller
Module Controller
Include Controller
Transaction Controller
Recording Controller
4. Listeners
Listeners是我非常喜欢的一个功能,她可以让你看到samplers测试的结果,形式多样,包括表格、图标、树状或者是日志文件中的简单文本。在每次smaplers执行的时候,结果数据都会被收集在多样的Listeners中。Listeners可以加在test plan下的任何地方,JMeter提供的Listeners主要包含以下几种,
- Sample Result Save Configuration
- Graph Full Results
- Graph Results
- Spline Visualizer
- Assertion Results
- View Results Tree
- Aggregate Report
- View Results in Table
- Simple Data Writer
- Monitor Results
- Distribution Graph (alpha)
- Aggregate Graph
- Mailer Visualizer
- BeanShell Listener
- Summary Report
5. Timers
默认情况下,一个JMeter线程在sampler之间发送请求是不会暂停的。有时候这可能不是你想要的。这时候你就可以加一个timer元素,你可以用她来在每个请求之间定义一个时间间隔。JMeter提供的Timers,如下
- Constant Timer
- Gaussian Random Timer
- Uniform Random Timer
- Constant Throughput Timer
- Synchronizing Timer
- JSR223 Timer
- BeanShell Timer
- BSF Timer
- Poisson Random Timer
6. Assertions
Assertions,有点类似JUNIT里面的断言,她可以对请求中返回的结果做一些验证性的处理。使用Assertions可以定制请求正确时返回的成功信息,也可以高亮返回的错误信息。JMeter提供的Assertions如下,
- Beanshell Assertion
- BSF Assertion
- Compare Assertion
- JSR223 Assertion
- Response Assertion
- Duration Assertion
- Size Assertion
- XML Assertion
- BeanShell Assertion
- MD5Hex Assertion
- HTML Assertion
- XPath Assertion
- XML Schema Assertion
7. 其他
除了上面几个最重要的概念之外,还有几个概念,大家如果用到可以去官网翻翻文档,比如说Configuration Elements, Pre-processor Elements,Post-processor Elements, Execution Order of Test Elements … …相关文章推荐
- 初学操作系统几个重要概念
- 转帖Jmeter中的几个重要测试指标释义
- Java多线程的几个重要概念
- OpenStreetMap初探(三)——几个重要概念
- HTTP协议的几个重要概念
- Linux下C++的编程几个重要的工具和概念
- 软件复用的几个重要概念
- Camera几个重要名词概念
- 关于操作系统的几个重要概念(六)
- HTTP协议的几个重要概念
- 锁是网络数据库中的一个非常重要的概念
- 仿基因编程原理导论(里面的几个重要的概念正在做修正,所以这只能算是一个原理的初稿。)
- 函数式编程的几个重要概念mashup
- Jmeter中的几个重要测试指标释义
- Maven中的几个重要概念(一):repository
- Maven中的几个重要概念(二):lifecycle, phase and goal
- XML几个重要基本概念
- Apache源代码分析——关于模块结构的几个重要概念
- 邹晓辉围绕“语言、信息、知识和智慧”几个重要概念展开的长期研究 及其新近成果乃至国内外推广普及的尝试进展
- 关于操作系统的几个重要概念(七)