Jmeter快速上手

一、简介

Jmeter是性能,接口测试工具,开源,免费,使用简单,安装简便。

Jmeter适合测试使用公有协议(如http,JDBC等)服务,模块,适合B/S结构的后台性能系统。

Jmeter需要Java环境,有大量第三方插件,也可以比较方便的编写适合自己使用的插件。

二、基本概念

1、测试计划

Jmeter测试计划是一系列配置器,线程组,控制器,Sampler,断言,监听器,定时器组成的集合。

Jmeter的各种部件以树形目录结构在工程中被组织起来,根节点下属器件类型一般是,配置器,线程组,监听器。

Jmeter运行时会首先运行配置器,然后启动线程组,全部线程组中Simpler的执行结果会在配置器的监听器中出现。

虽然界面上可以在测试计划根节点上添加监听器,断言,但是绝大多数情况下,不需要在根节点配置这两类器件。

2、线程组Threads

线程组是一组器件,是一系列配置器,控制器,定时器,Simpler,断言和监听器的集合。

线程组的是线程数量,执行次数,启动时间都可以配置,线程启动会顺序执行下属的配置器,控制器,定时器,Simpler,断言和监听器,实现一系列包含测试逻辑的操作

线程组Thread Group参数

-Name Comments

Name:线程组名称,用在ui显示时区分不同的线程组,可以同名但尽量不要同名

Comments:线程组说明,注释

-Action to be take after sampler error

这一组配置项用于定义线程组内sampler发生error时,线程组的行为。

进行测试时一般选择Continue。

进行调试时一般选择Stop Test Now。

Continue:继续执行当前线程。

Start next Thread loop:结束当前线程,启动新的线程执行测试。

Stop Thread:停止当前线程,并且不再启动新的线程

Stop Test:停止整个测试

Stop Test Now:强制停止整个测试

Stop Test 和Stop Test Now的区别类似于kill和kill -9

-Thread Properites:

--Number of Thread(user):线程数量。几个线程模拟几个用户

--Ram-up Period(in seconds): 线程启动时间间隔。Jmeter会根据该配置,间隔启动线程。如10线程,延迟100s,则每10s启动一个线程

--Loop Count:每个线程执行次数。

--Delay Thread creation until needed:这个选项在Ram-up Period(in seconds)配置时生效,如果不选择,Jmeter会先创建全部实例,再逐个启动,如果选择,Jmeter会在上一个线程启动后,再创建下一个线程

3、采样器Sampler

可以理解为对被测目标的一次请求或调用。

Jmeter原生携带了很多常用的Sampler,HTTP,BSF,JSR223,JDBC等。

一般情况下,进行Web后端测试使用HTTP,BSF,JSR223是三个类型的Sampler加上对应的控制器已可以满足需要了,偶尔可能会用到JDBC,有些系统会使用Websocket等第三方插件

3.1、HTTP Reuqest Sample参数

用于发送HTTP请求并接收请求返回结果。

大部分选项对应HTTP协议参数。

如果同级或上级目录有HTTP Requests Defaults,不填写时会使用HTTP Requests Defaults的配置,填写后会覆盖HTTP Request Default的配置。

HTTP Sampler会校验请求的Response code,Response code!=200时HTTP Sample会认为请求失败,这里的返回码指的是HTTP协议定义的Response code,而不是response body中内容。

参数介绍

--name[名字],comment[注释]

--Web Server

配置服务器主机名,ip,端口,连接和相应超时时间

--HTTP Request

配置实现,路径,编码格式,请求参数

请求重定向行为一般使用默认即可,需要对HTTP的重定向有一定了解才能修改这项配置,如果重定向出现问题又不知道怎么配置找对应开发人员求助

如果服务器接收表单形式请求,选择Parameters,如果服务器接收Json,xml格式请求,在Body Data中填写

4、控制器Controller

4.1、Logic Contoller逻辑控制器

这一类器件用于控制线程组内部的采样器的执行逻辑。

以HTTP采样器为例,可以通过loop控制器定义某个或某几个采样器的执行次数,可以通过IF控制器定义某个采样器执行后,接下来执行哪个采样器。

逻辑控制器的作用和各种语言中的逻辑控制语句非常相似。

4.2、Simple Controller

用于打包一组Sampler,这样可以让线程组看起来简洁。

4.3、Loop Controller

循环执行下属的Sampler,循环次数可以配置为整数常量,也可以配置为变量

5、定时器Timer

Timer定时器,定时器一般只在线程组中被使用,作用实际上是让线程等待一段时间。Jmeter提供很多类型的定时器,可以根据自己需要选择合适的

6、断言Assertions

断言是一种条件判断器件,断言为真时,Jmeter认为采样器的执行结果为成功,反之亦然。

断言一般情况添加在采样器上,采样器执行完毕,Jmeter会调用采样器上的断言,根据断言中的配置或代码判断执行结果为成更还是失败。

以response assertion为例,选择包含,并填写字符串后,采样器返回包含字符串即为成功,反之为失败。

虽然HTTP Sampler会自动验证response code,但是很多时候需要对其返回内容进行验证,这时一般需要Assertion

HTTP测试常用断言为Resonse Assertion,Duratin Assertion【时间】, JR223Assertion有时也会用到,这个断言可以通过代码实现复杂的结果检查。

7、监听器Listener

监听器用于收集Jmeter的运行结果并展示给用户。

Jmeter提供的监听器绝大部分是用于性能统计的,能够获取请求详细信息的只有View Results Tree。统计类型的监听器最常使用的是Aggregate Graph。

监听器作用域:

        -监听器在根目录时,监听全部Sampler

        -监听器在线程组根目录时,监听线程组全部Sampler

        -监听器在某个Sampler上,仅监听这个Sampler

7.1、查看结果树View Results Tree

监听Sampler的详细信息,常用于debug,实际进行性能负载测试一般会关闭这个监听器或选择仅监听失败的Sampler

参数说明:

-FileName

选项配置后可以存储到一个文件中

-Log/Display only

选项可以过滤成功或失败的请求

-左下方会列出执行的Samplers,选中Samplers,右下方会列出Sampler这次执行的详细信息,以HTTP Sampler为例

Sampler Result页签内会显示请求开始是时间,加载时间等以及HTTP请求的一些信息。如Header,response code

Request页签会显示请求的具体信息,包括请求类型,url,data和全部Header

    

7.2、聚合图表Aggregate Graph

参数说明:

-文件名:结果文件存储到磁盘路径与文件名,如保存为jtl,后续生成HTML报告

-仅日志错误:是否仅记录错误事务

-secess:记录成功事务

-configure:弹出配置窗口进行配置

-Label:请求别名

-Samples:执行了多少次取样

--Average:平均响应时间,单位毫秒

--Median:响应时间中间值

--90%line:90%事务响应时间

--Min:最小响应时间

--Max:最大响应时间

--Error:出错率

--Throught:吞吐量,TPS

8、配置元件Config Element参数

Jmeter中的配置元件主要用于管理Sampler的参数或变量.

点击选中配置器,然后点击Jmeter UI上的蓝色问号,可以查看配置器对应的文档.

一般情况下,HTTP相关配置元件添加于根目录,添加于根目录时,Test Plan的全部HTTP Sampler会使用根目录的配置。

如有特殊情况,可以在某个Thread Group或Sampler上添加配置元件,覆盖默认配置

HTTP测试常用的配置元件:

8.1、HTTP Request Defaults[默认参数]

一般配置在根节点上,整个Test Plan里面所有HTTP Sampler都会默认使用HTTP request defaults的配置

最常用的选项为服务器的IP,Port[端口],Implementation[指定使用哪个HTTP实现,一般选择HTTPClient4,Jmeter使用Apache HTTPClient4.x版本处理HTTP请求。

8.2、HTTP Header Manager[配置HTTP Sampler请求的Header]

对于Header没有特殊要求的HTTP接口,可以不添加。

该配置和接口定义有关,可以通过浏览器抓取请求来看,或者翻阅开发文档获取信息。

8.3、HTTP Cookie Manager[配置浏览器缓存]

配置HTTP Sampler使用的cookie,使用cookie的请求必须添加这个配置元件,不使用cookie的可以不添加

一般情况下,添加后使用默认配置即可,如默认配置和服务器端实现不同时,可以从开发人员处了解实现细节修改对应配置.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小烂云

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值