【JMeter接口测试学习笔记】---day2 JMeter基本使用&组件
二、jmeter基本使用&元件
(一) 主页面布局
1. 界面布局
- JMeter的主界面布局分为标题栏、菜单栏、工具栏、树形标签栏和内容栏。
- 标题栏:主要显示计划信息以及JMeter版本
- 菜单栏:全部的功能都包含在菜单栏中
- 工具栏:工具栏中的按钮在菜单栏中都可以找到,工具栏就相当于菜单栏常用功能的快捷按钮
- 树形标签栏:通常用来显示测试用例(计划)相关的标签,添加元件
-
内容栏:配合树形标签栏显示,树形标签中点击哪个标签,内容栏就显示相应的内容和操作,操作元件
2.界面显示语言设置
(二) JMeter录入脚本(向百度发送请求 操作步骤)
1.添加测试计划(打开 Jmeter默认拥有该测试计划)
2.添加线程组
鼠标在测试计划上 → 右键 → 添加 → 线程(用户) → 线程组
3.添加 HTTP请求
鼠标在 线程组 → 右键 → 添加 → 取样器 → HTTP请求
4.配置http请求:
- 修改名称:发送百度请求
- 基本
- 添加协议:HTTP
- 服务器名称和IP地址:www.baidu.com(服务器:地址/域名 ;IP)不用再加协议头
- 端口号:可填可省
- http请求:请求头
5.添加查看结果树
- 鼠标在线程组 → 右键 → 添加 → 监听器 → 添加察看结果树(查看结果数内容暂时不做任何配置):查看结果树是记录发送请求返回结果
6.运行
小结:
–打开:bin\jmeter.bat运行JMeter
1、添加测试计划:打开 Jmeter默认拥有该测试计划
2、添加线程组:测试计划上 → 右键 → 添加 → 线程(用户) → 线程组
3、添加HTTP请求:线程组–添加–取样器–HTTP请求–协议,IP,端口,方法<如POST>,路径<如/apir/signin>,编码<如utf8>
4、HTTP请求–添加–配置元件–HTTP信息头管理器–复制header–从剪贴板添加
5、回到HTTP请求–<如果是form–填写参数 | 如果是json–填写消息体数据>
6、为了看到结果:HTTP请求–添加–监听器–查看结果树
7、运行
(三)测试元件
1.测试计划(Test Plan)— 项目名称
描述一个性能测试,包含本次测试所有相关功能
2. 线程组/线程用户(Thread Group)— 业务流程
相当于一个业务流程;
着重介绍一下,线程属性 ThreadProperties
- 线程数(Number of Threads):表示请求的虚拟用户数量,例:输入10,就代表有10个用户发送请求(以用户为单位)—可以设置多个用户
- Ramp-Up时间:单位为秒,相当于在X秒内启动上面配置的用户数(是启动并不是执行)
-
循环次数(Loop Count):线程数的循环次数,表示有A个线程循环跑B次;勾选永远(infinite)进入死循环,将持续测试(按stop停止,最后一个用例会报错),
eg:如果循环次数填5次,有10个线程 ,就将10个线程都循环五次
3.HTTP请求(HTTP Request)— (一个)接口名称
-
添加HTTP请求:
添加一个请求,执行之后中文乱码,一种是设置请求内容编码为utf-8,一种是修改
4. 取样器(sampler)
- 取样器(Sampler)是性能测试中向服务器发送请求,记录响应信息,记录响应时间的最小单元,JMeter 原生支持多种不同的 Sampler(支持多种不同协议类型的请求),如 HTTP Request Sampler、FTP Recquest Sampler、TCP Recquest Sampler、JDBC Recquest Sampler等,每一种不同类型的 Sampler可以根据设置的参数向服务器发出不同类型的请求。
- 在JMeter的所有sampler中,Java Request Sampler 与 BeanShell Request Sampler是两种特殊的可定制的sampler。
一个取样器通常进行三部分的工作(取样器作用)-
- 向服务器发送请求
-
- 记录服务器的响应数据(相应内容)
-
- 记录响应时间信息
作用:向服务器发送请求,并记录响应时间和响应内容。
- 记录响应时间信息
-
4. 逻辑控制器
- 逻辑控制器,包括两类无件,一类是用于控制 Test Plan中 Sampler节点发送请求的逻辑顺序的控制器,常用的有如果(If)控制器、Switch Controller、Runtime Controller、循环控制器等。
- 另一类是用来组织可控制 Sampler来节点的,如事务控制器、吞吐量控制器(性能测试相关)。
6. 配制元件
- 配置元件(config element)用于提供对静态数据配置的支持。CSV Data Setconfig可以将本地数据文件形成数据池(Data Pool),而对应于 HTTP Request Sampler和 TCP Request Sampler等类型的配制无件则可以修改 Sampler的默认数据。用来做参数化,或配置前置条件。
7.定时器
- 用于操作之间设置等待时间,等待时间使性能测试中常用的控制客户端 QPS的手段,jmeter定义了 Constant Times、Constant Throughput Times、Guass Ramdon Times等不同类型的 Times,
- 在取样器与取样器之间设置等待时间,等多久再启动。相当于timesleep
8.前置处理器
- 用于在实际请求(接口)发出之前对即将发出的请求进行特殊处理。
例如:Count处理器可以实现自增操作,自增后生成的的数据可以被将要发出的请求使用,而 HTTP URL Re-Writing Modifier处理器则可以实现 URL重写,当 URL中有 sessionID一类的 session信息时,可以通过该处理器填充发出请求实际的 sessionID。
9.后置处理器
- 用于用于检查测试中得到的响应数据(接口返回数据以后)等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。对 Sampler发出请求后得到的服务器响应进行处理。一般用来提取响应中的特定数据(类似 loadrunner中的关联)。
- 例如:Regular Expression Extractor用于提取响应数据中匹配某正则表达式的数据段,并将其填充在参数中,Xpath Extractor则可以用于提取响应数据中通过给定 Xpath值获得的数据
10.断言(Assertions)
- 用于检查测试中得到的响应数据等是否符合预期,Assertions一般用来设置检查点,用以保证性能测试过程中的数据交互与预期一致。
11.监听器
- 对测试结果进行处理和可视化展示的一系列组件,常用的有图形结果、察看结果树、聚合报告等。(取样器记录的响应信息是通过监听器展示出来的)