JMeter常用测试元件—学习笔记
- 线程组
Ramp-Up Period:告诉JMeter达到最大线程数需要多长时间。假定共有10个线程,Ramp-Up Period为100秒,那么JMeter就会在100秒内启动所有线程,并让它们运转。每一个测试线程都会在上一个线程启动10秒之后才开始运行。假定共有30个线程,Ramp-Up Period为120秒,那么线程启动的间隔变为4秒。
Ramp-Up参数不能设定得太短,否则在测试的初始阶段会给予服务器过大的压力。Ramp-Up参数也不能设定得太长,否则就会发生第一个线程已经执行完毕,而最后一个线程还没有启动(除非测试人员期望这种特殊情况发生。)
如何找到一个合适的Ramp-Up参数值?建议初始值设定为Ramp-Up=总线程数,后续再根据实际情况适当增减。
在调试器控制面板中,可以设定测试运行的『启动时间』和『结束时间』。测试启动后会一直等待,直到用户设定的启动时间。测试运行期间,JMeter会在每一次循环结束后,检查是否已经达到结束时间。如果已经达到结束时间,JMeter就会终止测试运行,否则JMeter会继续下一个测试循环。
还可设定『持续时间』和『启动延迟』两项参数。需要注意的是,『启动延迟』会使『启动时间』无效,而『持续时间』会使『结束时间』无效。
- 控制器
JMeter有两种类型的控制器:采样器和逻辑控制器,二者结合起来驱动了测试进程。采样器被JMeter用来向服务器发送请求。逻辑控制器用来控制JMeter的测试逻辑,比如发送请求。如:测试人员可以插入交替控制器来轮流发送多个请求。
1)采样器
采样器告诉JMeter发送一个请求到指定服务器,并等待服务器的请求。采样器会按照其在测试树中的顺序去执行,还可以用逻辑控制器来改变采样器运行的重复次数。
如果想检查服务响应的内容,可以为采样器添加断言。例如,当对Web应用做压力测试时,服务器虽然成功返回了『HTTP Response』代码,但是页面上可能会有错误,或者丢失了部分页面片段。针对这种情况,测试人员可以添加断言来检查特定的HTML标签,或者常见的错误信息等。JMeter允许在断言中使用正则表达式。
2)逻辑控制器可以帮助用户控制JMeter的测试逻辑,特别是何时发送请求。逻辑控制器可以改变期子测试元件的请求执行顺序。
所有的Web测试都应该添加Cookie管理器,否则JMeter就会忽略Cookie。通过把HTTP Cookie管理器添加到线程组层级,就能确保所有HTTP请求使用相同的Cookie。
- 监听器
监听器提供了对JMeter在测试期间收集到的信息的访问方法。『图形结果』监听器会将系统响应时长绘制在一张图片中。『查看结果树』监听器会展示采样器请求和响应的细节,还能以HTML和XML格式展示系统响应的基础部分。其他监听器通过总结或者聚合方式展示信息。
所有的监听器都保存同样的数据,唯一的区别就是如何展示它们。
- 定时器
默认情况下,JMeter线程在发送请求之间没有间歇。建议为线程组添加某种定时器,以便设定请求之间应该间隔多长时间。如果不设定这种延迟,JMeter可能会在短时间内产生大师访问请求,导致服务器被大量请求所淹没。
定时器会让作用域内的每一个采样器都在执行前等待一个固定时长。如果用户为线程组添加了多个定时器,那么JMeter会将这些定时器的时长叠加起来,共同影响作用域范围内的采样器。定时器可以作为采样器或者逻辑控制器的子项,目的是只影响作用域内的采样器。
- 断言
用户可以使用断言来检查从服务器获得的响应内容。通过断言可以测试服务器返回的响应与测试人员的期望是否相符。
例如,测试人员可以断言某个查询的响应中包含特定的文字信息,也可以使用Perl格式的正则表达式来描述响应中应该包含的文字,或者它应该与整个响应相符。
断言会影响作用域内的所有采样器。如果要让断言只影响某个采样器,需要将断言作为该采样器的子项。
如果要查看断言结果,可以为线程组添加『断言结果』监听器。失败的断言,也会在『查看结果树』和『用表格查看结果』两种监听器中显示。另外『Summary Report』和『聚合报告』中还会以错误百分率的形式统计。
- 配置元件
配置元件可以添加或者修改请求。配置元件仅对其所在的测试分支有效。
相比父分支的配置元件,子分支内部的配置元件优先级更高。
- 前置处理器
前置处理器会在采样器发生请求之前做一些特殊操作。如果前置处理器附着在某个采样器之下,那么它只会在该采样器运行之前执行。前置处理器通常用于在采样器发出请求前修改采样器的某些设置,或者更新某些变量的值(这些变量不在服务器响应中获取值)。
- 后置处理器
后置处理器会在采样器发出请求之后做一些特殊的操作。如果后置处理器附着在某个采样器之下,那么它只会在该采样器运行之后执行。后置处理器通常用来处理服务器的响应数据,特别是服务器响应中提取数据。
JMeter常用测试元件—学习笔记的更多相关文章
- JMeter学习笔记--JMeter常用测试元件
JMeter测试计划有一个被称为“函数测试模式”的选项,如果被选择,它会使Jmeter记录来自服务器返回的每个取样的数据.如果你在测试监听器中选择一个文件,这个数据将被写入文件.如果你尝试一个较小的测 ...
- jmeter常用测试元件
1.线程组 线程组是任何测试计划的起点,所有的逻辑控制器和采样器都必须放在线程组下.其他的测试元件(例如监听器)可以直接放在测试计划下,这些测试元件对所有的线程组都生效. 每一个JMeter线程都会完 ...
- docker常用命令,学习笔记
- 常用命令 https://docs.docker.com images > docker images # 查看本地镜像 > docker images -a # 查看所(含中间镜像层 ...
- Java中关于 ArrayList 和 Map 的常用遍历方法 (学习笔记,便于以后查询)
一.学习ArrayList与Map时,关于常用遍历方法的记录如下: 二.附源码如下: package com.study.in.myself; import java.util.ArrayList; ...
- 工作中常用Lixu命令学习笔记
对于Linux,我是菜鸟,也是在工作中了才开始慢慢接触,用Linux的人都我都会觉得屌屌的,现在把工作中常用的一些Linux命令记录一下,供以后学习和参考. cd 这可能是我觉得Linux最简单的一个 ...
- Miller_Rabin素数测试【学习笔记】
引语:在数论中,对于素数的研究一直就很多,素数测试的方法也是非常多,如埃式筛法,6N±1法,或者直接暴力判(试除法).但是如果要判断比较大的数是否为素数,那么传统的试除法和筛法都不再适用.所以我们需要 ...
- Linux常用命令(学习笔记)
命令编写以遇到的生产问题的前后为顺序进行记录 虚拟机的镜像是centos6.5版本,在这个版本下,我个人整理记录了一些在linux上常用的命令以及一些项目部署需要的jdk.tomcat.mysql等的 ...
- 三、jmeter常用的元件及组件
一.HTTP cookie Manager 用来储浏览器产生的用户信息,Stepping Thread Group 可用于模拟阶梯加压! 二.HTTP Cache Manager 缓存管理器(模拟浏览 ...
- 测试servlet学习笔记
操作方法: 1.新建工程: File——>new——>Java Project——>TestServlet(工程名称)——>Finish. 2.加载servlet-api.ja ...
随机推荐
- .NET 扩展方法(Extention Method)的要点
扩展方法Extention Method的主要介绍在:http://msdn.microsoft.com/zh-cn/library/bb383977(v=vs.100).aspx. 扩展方法的意义在 ...
- 设置更新源和下载ferret
kali无法定位软件包 解决: deb http://http.kali.org/kali kali-rolling main non-free contrib kali可用的官方更新源(cd /et ...
- 总结Android中遇见的OOM
一 .Android应用中内存泄漏几种的原因: 1.单例模式导致的内存泄漏: 当调用getInstance时,如果传入的context是Activity的context.只要这个单例没有被释放,这个A ...
- Spring配置AOP实现定义切入点和织入增强
XML里的id=””记得全小写 经过AOP的配置后,可以切入日志功能.访问切入.事务管理.性能监测等功能. 首先实现这个织入增强需要的jar包,除了常用的 com.springsource.org.a ...
- 基础-DP
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...
- AS3中 Event 类的target和currentTarget属性
在事件处理过程中,会自动生成事件类的实例,并传给侦听器函数.通过这个参数就可以使用事件类的属性和方法.其中target与currentTarget属性是两个很相似的属性. 对于简单的事件处理过程,分清 ...
- js 简体中文拼音对应表
https://github.com/silaLi/pinyin js 拼音对象,包涵大部分文字
- html5与html4的区别,如何一眼区分
还是在面试过程中遇到的这个问题,但是当时感觉回答的不是很全面,回来以后自己做的总结: 以上这个问题如果教大家看源码,可能一眼很直观的就能认出,那个是html4,那个是html5,但是面试的时候问道这个 ...
- C语言初学者代码中的常见错误与瑕疵(23)
见:C语言初学者代码中的常见错误与瑕疵(23)
- 当java出现异常,应如何进行处理
Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被抛出(throw).该方法可以选择自己处理异常或传递该异常.两种 ...