Jmeter学习笔记
线程组
线程组的作用
线程组的作用模拟多个访问对象,对系统可以进行压力测试,
线程组里的几个参数
- 线程组名称:可以随意取,我们保持创建是自动分配的名称
- 线程组注释:随意。
- 在取样器错误后要执行的动作:我们选择继续,错误之后依然继续执行,继续执行测试计划。
- 线程组的线程数:一般我们用来表示多少个用户,即我们测试时的用户数量。
- Ramp-up Period(in Seconds):表示每个用户启动的延迟时间,设为1秒,表示系统将在1秒结束前启动我设置的1000个用户,如果设置为1000秒,那么系统将会在1000秒结束前启动这1000个用户,开始用户的延迟为1秒, 如果我设置为0秒,则表示立即启动所有用户。
- 循环次数:如果你要限定循环次数为10次的话,可以取消永远的那个勾,然后在后面的文本框里面填写10;在这里我们勾上永远,表示如果不停止或者限定时间将会一直执行下去, 是为了方便调度器的调用。
- 调度器的配置:我们勾选调度器时,将会出现这个面板
- 启动时间:表示我们脚本开始启动的时间,当你不想立即启动脚本测试,但是启动脚本的时间不会再电脑旁的时候,你可以设定一个启动的时间,然后再运行那里点击启动,系统将不会立即运行,而是会等到你填写的时间才开始运行。
- 结束时间:与启动时间对应,表示脚本结束运行的时间。
- 持续时间:表示脚本持续运行的时间,以秒为单位,比如如果你要让用户持续不断登录1个小时,你可以在文本框中填写3600。如果在1小时以内,结束时间已经到达,它将会覆盖结束时间,继续执行。
- 启动延迟:表示脚本延迟启动的时间,在点击启动后,如果启动时间已经到达,但是还没有到启动延迟的时间,那么,启动延迟将会覆盖启动时间,等到启动延迟的时间到达后,再运行系统。
HTTP请求的默认设置
- 这项功能就是设置http请求时的一些默认参数,比如请求域名或IP,端口号,页面请求路径等公共参数参数。
HTTP请求
几个重要参数
- HTTP请求的名称:可以随意取,我们可以根据录制脚本的路径来命名
- HTTP请求的注释:可以对该界面做一个简单介绍
- HTTP请求的服务器名称或IP:即我们的服务器或者IP的地址,我因为是在本机上的项目,故填写localhost,可以填写127.0.0.1。
- HTTP请求的端口号:我用的是tomcat,自己设置的端口号为8086(tomcat默认为8080)
- 后面的超时定义可以不用填写。
- Implementation:这里我们录制时默认填写为JAVA
- 协议填写为:http
- 方法为:GET
- Content encoding:编码可以不用填写
- 路径:即页面的路径;下面的重定向等选择可以根据需要勾选,这里我们保持录制不修改。
- Parameters参数:即跟着路径一起发送的参数及文件
断言验证
几个重要参数
- 断言名称:随意
- 断言注释:随意
- Apply to:选择默认值
- 要测试的响应字段:这里我们选择响应的文本,即返回的页面信息
- 模式匹配规则:这里我们选择包括,即响应的文本是否包括我们验证的信息
- 要测试的模式:开发者名称,即我们需要验证,开发者名称是否在响应文本中存在,也可以添加更多的字段来验证。
聚合报告
参数含义
字段 | 含义 |
---|---|
Label | 每一个JMeter的element都有一个Name属性,这里显示的就是element属性的值。 |
Samples | 表示这次测试中一共发送了多少个请求, |
Average | 平均相应时间 |
Median | 中位数,也就是说50%用户的响应时间。 |
90%Line | 90%用户的响应时间, |
Min | 最小响应时间 |
Max | 最大响应时间 |
Error% | 本次测试中出现错误请求的数量 |
Throughput | 吞吐量,默认情况下表示美妙完成的请求数, |
KB/sec | 每秒从服务器端收到的数据量, |
几个注意点
- 测试计划下的多个线程组是并发执行的。
- 一个采集器(sampler),通常进行以下三部分:1,向服务器发送请求。2,记录服务器的响应时间。3,j记录相应的时间信息。
- QPS : Query Per Second 每秒查询率。是一台查询服务器每秒能够处理的查询次数。在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。
元件的作用域与执行顺序
元件作用域
配置元件(config elements )
元件会影响其作用范围内的所有元件。
前置处理程序(Per-processors)
元件在其作用范围内的每一个sampler元件之前执行。
定时器(timers )
元件对其作用范围内的每一个sampler 有效
后置处理程序(Post-processors)
元件在其作用范围内的每一个sampler元件之后执行。
断言(Assertions)
元件对其作用范围内的每一个sampler 元件执行后的结果执行校验。
监听器(Listeners)
元件收集其作用范围的每一个sampler元件的信息并呈现。
- 总而言之就是在Jmeter中存在父子节点关系的就是作用域的关系,就是说父节点的作用域包括子节点。
根据作用域原则,这些元件的作用域分别为:
HTTP请求 、FTP请求 、TCP取样器、 JDBC Request 元件没有作用域名概念
循环控制器 的作用域为 FTP请求 、TCP取样器和 随即控制器
固定定时器作用于 HTTP请求 , Uniform Random Timer 作用于所有取样器
响应断言作用于JDBC Request , XML断言作用于FTP请求 、TCP取样和JDBC Request 。
图形结果作用于FTP请求 、TCP取样和JDBC Request ,聚合报告作用于作用于所有取样器。
元件执行顺序
在同一作用域名范围内,测试计划中的元件按照如下顺序执行。
配置元件(config elements )
前置处理程序(Per-processors)
定时器(timers )
取样器(Sampler)
后置处理程序(Post-processors) (除非Sampler 得到的返回结果为空)。
断言(Assertions)(除非Sampler 得到的返回结果为空)。
监听器(Listeners)(除非Sampler 得到的返回结果为空)。