jmeter学习笔记(一):元件介绍与简单实例

1.jmeter下载与安装

1.1 配置jdk环境
1.2 官网下载jmeter,解压压缩包,在bin目录下双击jmeter.bat文件即可打开jmeter

2.jmeter环境介绍

2.1 jmeter体系结构
1.【取样器】–sampler:

取样器用来模拟用户操作,向服务器(被测试系统)发出http请求、Java请求等。可以把http请求元件看成一个没有界面的浏览器,可以发送http请求,接受服务器的响应数据。
取样器中的元件基本涵盖了常见的各种协议。
取样器访问路径:【测试计划】–>【线程组】–>【Sampler】
sampler

2.【断言】

断言用来验证结果是否正确,就是用一个预设结果(值、表达式、时间长短等条件)与实际结果匹配,匹配到则成功,反之则失败;比较常用的断言为响应断言。
断言元件有13个,常用的是响应断言,复杂断言可通过BeanShell脚本来完成(BeanShell是类Java的脚本语言,实际上是一个小巧的Java源码解释器,可以直接调用Java程序)。
断言访问路径:【测试计划】–>【断言】
在这里插入图片描述

3.【监听器】

监听器是用来收集测试结果,jmeter的监听器有两个任务:
(1)添加结果监听,并且可以保存测试结果到文件,这些结果数据可以供再次分析使用;
(2)展示结果,可以以表格及图形的形式展现结果,方便测试人员分析测试结果。
常用的监听器:
查看结果树:可以查看请求与响应的数据
断言结果:可以查看断言成功/失败
聚合报告:以表格形式展示取样器结果,主要展示执行次数、响应时间、出错率、吞吐量等信息。
jmeter监听器共有19个元件,访问路径:【测试计划】–>【监听器】
在这里插入图片描述
【取样器】+【断言】+【监听器】组合可以实现发送请求、验证结果、记录结果。

4.【前置处理器】

使用前置处理器做一些环境或参数的准备工作,如对数据库进行操作前先链接数据库,设置用户参数等。
访问路径:【测试计划】–>【前置处理器】
在这里插入图片描述

5.【配置元件】

配置元件为sampler提供预备数据,然后由sampler发出请求。jmeter的参数化可以通过配置元件来完成,如:使用CSV Data Set Config从文件中读取测试数据,使用众多函数生成动态数据等。

访问路径:【测试计划】–>【配置元件】
在这里插入图片描述

6.【后置处理器】

后置处理器用来处理服务器返回结果,比如服务器返回的sessionID等。jmeter的关联就是使用后置处理器对响应数据做处理。
在这里插入图片描述

7.【控制器】

即逻辑控制器,各种逻辑控制器组合在一起可以完成各种场景需求。如循环控制器,if控制器等。
访问路径:【测试计划】–>【线程组】–>【逻辑控制器】
在这里插入图片描述

8.【定时器】

使用定时器可以模拟请求同时或延迟发送场景,不同定时器代表了不同的功能,基本能够满足所有场景。
在这里插入图片描述

9.【线程组】

性能测试时模拟大量用户负载情况,通过设置运行的线程数来实现,一线程一用户,还可设置运行时长,定时运行等。
在这里插入图片描述

10.【Test Fragment】

这是一个辅助组件,此节点下可以放置几乎任何jmeter元件,但它一般不会被运行,这个组件的作用:
(1)在脚本看法过程中可以用来备份元件
(2)Test Fragmen下的元件可以被模块控制器调用,可以利用它来模块化请求供模块控制器调用(类似开发业务封装的一个方法)

2.2 jmeter运行原理

通过线程模拟真实用户对服务器的访问压力。

2.3 jmeter测试计划要素

jmeter中的一个脚本即是一个测试计划,也是一个管理单元。
(1)要素一:脚本中测试计划只能有一个
测试计划是根节点,根节点只能有一个。
(2)要素二:测试计划中至少要有一个线程组
jmeter负载是通过线程组驱动的,所以测试计划中至少要出现一个线程组,测试计划中可以建立多个线程组,把不相关的业务分布在不同的线程组。
(3)要素三:至少要有一个取样器
测试的目的是模拟用户请求,没有取样器脚本就没有意义。
(4)要素四:至少有一个监听器
测试结果用来衡量系统性能,需从测试结果来分析系统性能。
在这里插入图片描述

3.简单实例

3.1 添加线程组

右键点击“测试计划”–>“添加”–>“Threads(Users)”–>“线程组”,在线程组配置线程组名称、线程数、准备时长、循环次数、调度器等参数;
在这里插入图片描述
参数详解:
1.在取样器错误后要执行的动作
(1)继续:继续执行接下来的操作;
(2)start next thread loop:忽略错误,执行下一个循环;
(3)停止线程:退出该线程(不再进行此线程的任何操作);
(4)停止测试:等待当前执行的采样器结束后,结束整个测试;
(5)Stop Test Now:直接停止整个测试。

2.线程属性:
(1)线程数:虚拟用户数,一线程一用户;
(2)Ramp-Up Period(in seconds)准备时长:达到指定线程数所需要的时间。如果线程数为10,准备时长为2,每秒启动的线程数=线程数10/2=5;
(3)循环次数:每个线程发送请求的次数。如果线程数为10,循环次数为100,那么每个线程发送100次请求。总请求数为10*100=1000 ;
如果勾选了“永远”,那么所有线程会一直发送请求。
(4) Delay Thread creation until needed:直到需要时延迟线程的创建。 大致意思是,当线程需要执行的时候,才会被创建;如果不选择此选项,那么在计划开始的时候,所有需要的线程都被创建好了。
3.调度器:
调度器是设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远) ;需要在调度器复选框被选中的前提下,调度器配置才会生效
(1)持续时间(秒):测试持续时间,从某个开始时间算起,执行设置的时间后结束,会覆盖结束时间
(2)启动延迟(秒):测试延迟启动时间,手动点击开始执行计划,然后延迟N秒后,计划才真正开始执行,会覆盖启动时间
(3)启动时间:当点击开始测试时,将等到此处填写的启动时间,然后真正开始测试。
(4)结束时间:当开始测试时,将等到指定的开始时间开始测试,然后会停在此处填写的时间点结束。

3.2 添加http请求

右键点击“线程组” -> “添加” -> “Sampler” -> “HTTP请求”
在这里插入图片描述
参数详解:
1.web服务器
(1)服务器名称或IP:http请求发送的目标服务器名称或IP,比如www.baidu.com
(2)端口号:目标服务器的端口号,默认值为80,可空
2.HTTP请求
(1)协议:向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http
(2)方法:post/get
(3)Content encoding:内容的编码方式,一般为utf-8,可空
(4)路径:目标的URL路径(不包括服务器地址和端口)
(5)参数:在请求中发送的参数,每一行为一个参数(name=value),参数中传入中文是要勾选“编码”。

3.3 添加查看结果树

右键点击“线程组” -> “添加” -> “监听器” -> “察看结果树”
在这里插入图片描述

3.4 添加用户自定义变量

添加用户自定义变量用以Http请求参数化,右键点击“线程组” -> “添加” -> “配置元件” -> “用户定义的变量”
(简单的参数化,后续会学习其他方式进行参数化)
新增一个参数wd,存放搜索词:
在这里插入图片描述
参数使用格式:${}
在这里插入图片描述

3.5 添加断言

添加 响应断言:右键点击“HTTP请求” -> “添加”-> “断言” -> “响应断言”
添加 断言结果:右键点击“HTTP请求” -> “添加”-> “监听器” -> “断言结果”
在这里插入图片描述
断言结果查询:在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值