作者:一个人灬过世界amp丶_420 | 来源:互联网 | 2023-09-11 03:52
在使用JMeter之前,需要搞懂下面这几个概念,这对JMeter的使用是非常重要的。TestPlanThreadGroupControllersListenersTime
在使用JMeter之前,需要搞懂下面这几个概念,这对JMeter的使用是非常重要的。
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 … …