首页 > 其他分享 >Jmeter详解

Jmeter详解

时间:2023-05-08 23:14:13浏览次数:54  
标签:控制器 Jmeter 请求 查看 响应 添加 执行 详解

目录

Blazemeter

界面详解

image-20230505225046209

image-20230505232121445

  • Disable Browser Cache:禁用浏览器缓存。如果勾选了这个选项,BlazeMeter会在录制脚本时自动添加一个HTTP Cookie Manager来确保请求不使用浏览器缓存

  • Wipe Service Workers:清除Service Workers。如果您的应用程序使用了Service Workers,则勾选此选项可以确保录制的脚本不受Service Workers干扰

  • Record Ajax Requests:记录Ajax请求。如果勾选了这个选项,BlazeMeter会自动记录所有Ajax请求并将其添加到录制的脚本中

  • Update Settings Before Running Test:在运行测试之前更新设置。如果勾选了此选项,则在运行测试之前,BlazeMeter将更新所有设置以反映最新更改

  • Randomize recorded think times:随机化思考时间。如果勾选了这个选项,BlazeMeter会自动为录制的脚本中的每个事务添加一个随机思考时间(Think Time),以模拟用户在执行操作之间进行思考或等待的情况

Requests to Record

image-20230505230717727

  • only top-level requests: 该选项只会记录顶级请求,即页面加载期间发出的请求。这些请求包括HTML、CSS、JavaScript文件等。子请求,如Ajax请求或嵌套在页面中的图片、视频等资源将不被记录。这个选项可以用于快速创建基本测试脚本,而无需处理所有子请求

  • top-level requests and the following: 该选项将记录所有网络请求,包括顶级和子级请求,如Ajax、嵌套资源等。这个选项可以用于创建更详细的测试脚本,以模拟用户与应用程序之间的所有交互

  • 区别:两个选项之间的主要区别在于录制的范围。如果您只需要测试应用程序的基本功能,则可以使用“仅记录顶级请求”选项。如果您需要测试更详细的交互,则应选择“记录所有请求”选项

Jmeter

参数化

1、用户定义的变量

调用格式:${变量名}

  • 添加元件

image-20230507140611747

  • 配置元件

image-20230507142946888

  • 引用变量

image-20230507143107912

  • 执行查看结果树

image-20230507143209210

2、CSV数据文件设置

Demo

百度点名

  • 导入JMX文件

  • 创建CSV文本文件

image-20230505233122087

  • 添加CSV Data Set Config元件

image-20230505232533686

  • 配置CSV Data Set Config元件

image-20230505234303117

  • 使用参数

image-20230505235401526

  • 设置迭代次数

image-20230505235927079

  • 执行测试计划查看结构树

image-20230506000632729

3、用户参数

  • 添加用户参数元件

image-20230507132706317

  • 配置元件

image-20230507133137433

  • 使用参数—与CSV相同

  • 设置迭代次数

image-20230507133456620

  • 执行测试计划查看结构树

image-20230507133531695

4、函数

常见函数

counter

counter计时器函数:TRUE,每个用户有自己的计数器;FALSE,使用全局计数器

  • 选择函数模型

image-20230507134205418

  • 生成变量

image-20230507134521951

  • 设置线程属性

image-20230507134709508

  • 执行查看结果树

image-20230507134814388

  • 更改为flase查看结果树

image-20230507134859269

Random

Random随机数函数:参数1:一个范围内的最小值;参数2:一个范围内允许的最大值

  • 填入范围值

image-20230507135215651

  • 执行查看结果树

image-20230507135335002

time

time获取当前时间函数:获取时间戳,但是可以用格式转换

  • 填入时间格式

image-20230507135631476

  • 执行查看结果树

image-20230507140059546

数据库

  • 导入mysql-jdbc

image-20230507164426268

  • 添加元件

image-20230507164605605

  • 配置元件

image-20230507165229513

  • 添加JDBC请求

image-20230507165335653

  • 配置属性

image-20230507165642233

  • 执行查看结果树

image-20230507165725246

引用数据库操作

  • 取变量名

image-20230507171941602

  • 添加调试取样器

image-20230507172042960

  • 执行查看变量名

image-20230507172223286

  • 新建http请求

image-20230507172411087

  • 请求成功

image-20230507172726267

断言

响应断言

image-20230507175727315

响应文本
  • 设置断言

image-20230507180002525

  • 执行查看结果树

image-20230507180140461

  • 更换文本

image-20230507180232964

  • 再次执行报错

image-20230507180303322

响应代码
请求方式 要素1 (定位资源) 要素2 (提交的数据) 要素3 (响应的数据)
URL + GET 一般以键值对格式提交数据 状态码:200响应体:单条或多条查询信息
URL + POST 以键值对或JSON格式提交数据 状态码:201(或200)响应体:新增后的数据
URL + PUT 以键值对或JSON格式提交数据 状态码:201(或200)响应体:修改后的数据
URL + DELETE 一般以键值对格式提交数据 状态码:204 响应体:无
  • 判断状态码

image-20230507181504294

  • 执行查看结果树

image-20230507181557774

  • 更换状态码

image-20230507181701977

  • 失败

image-20230507181726775

  • 选项—或者

image-20230507181938809

  • 成功

image-20230507182035028

大小断言

  • 设置断言

image-20230507184500677

  • 断言验证方法

image-20230507184156476

控制器

IF逻辑控制器

作用:允许您根据某些条件只运行特定的请求。如果条件为真,则执行该请求,否则将跳过该元素并继续执行测试计划中的下一个元素。

优点:可以根据特定条件动态地调整测试计划,以便更好地模拟真实场景。

缺点:如果有多个条件需要判断,则需要多个if逻辑控制器或者嵌套if逻辑控制器,导致测试计划复杂度增加。

  • 添加用户定义的变量

image-20230507190830985

  • 添加HTTP请求并增加IF控制器

image-20230507191036489

  • 编写IF控制器判断条件

image-20230507191611697

  • 执行结果

image-20230507191716755

  • 更改用户输入的变量

image-20230507191754765

  • 执行结果

image-20230507191900344

ForEach逻辑控制器

作用:允许您迭代一组变量,并为每个值执行一组请求。这个控制器通常与CSV数据文件或用户定义的变量一起使用,以便在每次循环迭代时使用不同的值。

优点:可以方便地对多个变量进行操作,并且可以在循环过程中修改变量值。

缺点:如果需要对大量数据进行操作,则可能会导致性能问题。

  • 添加HTTP请求并增加ForEach控制器

image-20230507194155606

  • 增加并编辑用户定义的变量

image-20230507193727907

  • 执行并查看结果树

image-20230507194250242

  • 注意点

image-20230507194549307

循环逻辑控制器

作用:允许您重复执行一组请求,直到达到指定的循环次数或条件。这个控制器通常与其他逻辑控制器结合使用,以便在特定情况下重复执行请求。

优点:可以轻松地重复执行相同的步骤,并且可以设置循环次数或者条件。

缺点:如果需要执行的步骤较多,则可能会导致测试计划执行时间过长。

image-20230507195833411

关联

JMeter中的正则表达式提取器和XPath提取器都是用于从服务器响应中提取特定数据的工具

XPath提取器

使用XPath语法来定位服务器响应中的特定节点,并将其提取出来

  • 添加元件

image-20230507235651029

  • 配置元件

image-20230508000125595

  • 填入变量

image-20230508000309903

正则表达式提取器

使用正则表达式来匹配服务器响应中的特定文本,并将其提取出来

  • 配置参数

image-20230508004613726

跨越线程组传值

  • 添加取样器

image-20230508011615671

  • 获取全局变量的字符串

image-20230508011514424

  • 设置全局变量

image-20230508011846174

  • 引用变量

image-20230508012953865

  • 注意点

image-20230508014703242

  • 执行查看结果

image-20230508014116018

高并发

Demo

同一时刻100个用户访问网站,统计高并发情况下平均响应时间及错误率

  • 添加定时器

image-20230508143100384

  • 设置相关参数

image-20230508143240450

  • 添加聚合报告

image-20230508142412686

  • 设置线程数

image-20230508143351902

  • 执行查看聚合报告(单位:ms)

image-20230508144022380

高频率

Demo

一个用户以20QPS的频率访问网站,持续15秒,统计服务器响应时间

  • 添加定时器

image-20230508142322137

  • 添加聚合报告

image-20230508142412686

  • 计算每分钟的吞吐量

image-20230508142509776

  • 设置单用户循环次数

image-20230508142544468

  • 查看聚合报告的平均响应时间(单位:ms)

image-20230508142638006

分布式

JMeter的分布式测试是通过将负载分散到多个计算机上来模拟高并发用户访问的一种方式

  • 不同的测试机上安装Jmeter
  • 配置基础环境(统一操作系统、JDK、Jmeter…)
  • 控制机与执行机如何通信?端口号
  • 在控制机中的配置文件中添加所有其他计算机的IP地址或主机名

image-20230508150921393

  • 控制机与执行机都得设置远程访问相关属性

image-20230508151402414

  • 打开控制机与所有执行机的jmeter.bat的命令

  • 远程控制执行机

image-20230508152346177

生成图形化测试报告

在Jmeter安装目录下的bin目录进入命令行

命令:jmeter -n -t 脚本文件 -l 日志文件 -e -o 目录
-n 无图形化运行
-t 被运行的脚本
-l 将运行信息写入日志文件
-e 生成测试报告
-o 指定报告输出目录
  • 将JMX文件放入bin目录中

  • 进入命令行生成报告

image-20230508192224214

  • 进入目录查看文件

image-20230508192334925

  • 打开html文件查看报告

image-20230508192410798

标签:控制器,Jmeter,请求,查看,响应,添加,执行,详解
From: https://www.cnblogs.com/xiaoxiangstudy/p/17383447.html

相关文章

  • 入门8-Pytest部分测试用例的前后置(fixture)(1-参数详解)
    使用[email protected](scope=”function”,autouse=False,params=loginutil(),ids=[0,1,2],name="login")各个参数详解Scope:作用域             Function:用例之前和之后    Class:类之前和之后Package/session:#整个项目会话之......
  • 软考中级软件设计师主观题详解
    软件设计题分析试题考察内容数据流图/DFD补充外部实体、数据存储、加工、数据流等数据库设计/ERE-R图关系模式主键/外键规范化理论增加实体UML建模类图用例图活动图等C语言算法C语法+数据结构Java/C++基础语法+设计模式备考策略前三题固定......
  • Ajax详解(不包括jQuery)
    AjaxURLURL地址一般由三部分组成客户端与服务端之间的通信协议存有该资源的服务器名称资源在服务器上具体存放位置客户端与服务端通信过程请求-处理-响应三个步骤资源请求方式客户端请求服务器,最常见get和post请求get请求通常用于获取服务端资源post请求通常用于向服......
  • 环形队列的实现 [详解在代码中]
    1packageDataStructures.Queue.Array.Exerice;23/**4*@authorLoe.5*@projectDataStructures&Algorithms6*@date2023/5/87*@ClassInfo环形队列8*主要使用取模的特性来实现环形特征9*/10publicclassCirularQue......
  • 软件测试——实验七:JMeter性能测试
    JMeter下载参考博客:参考博客下载完JMeter之后,打开,首先新建线程组: 设置线程组的线程数等内容 在线程组中添加http请求和查看结果树,用于查看结果。    在http中设置测试网站,这里我测试的是新浪网  运行查看结果  初步测试通过,添加断言和聚合报告  ......
  • xfs_repair命令详解
    1.现状 目前网上出现大量的主机输入输出错误,原因是由于主机文件系统损坏。一线人员大部分采用的是umont和mount的方式恢复,这种恢复方式不能真正修复已经损坏的文件系统,在后续使用过程中,仍然会再次出现主机端输入输出错误。 2.需要修复的场景 <1>.主机侧发现存在文件系统不......
  • Python语言进行代码换行常用的方法详解!
    在编写Python代码时,有效换行可以让代码变得更加美观,那么Python中如何进行代码换行?Python中换行的方法有很多,本文为大家介绍两种比较常用的方法,快来看看吧。Python建议每行代码的长度不超过80个字符。对于过长的代码,建议进行换行。1、在该行代码末尾加上续行符“\”,即......
  • 一分钟学会、三分钟上手、五分钟应用,快速上手责任链框架详解 | 京东云技术团队
    作者:京东物流覃玉杰1.pie简介责任链模式是开发过程中常用的一种设计模式,在SpringMVC、Netty等许多框架中均有实现。我们日常的开发中如果要使用责任链模式,通常需要自己来实现,但自己临时实现的责任链既不通用,也很容易产生框架与业务代码耦合不清的问题,增加CodeReview的成本......
  • jmeter逻辑控制器使用
    一、jemeter控制器的种类1.简单控制器(SimpleController)作用:分组,用来组合取样器和其他逻辑控制器 2.循环控制器(LoopController)作用:控制该控制器下请求的循环次数例如下图中线程数为2,循环控制器次数为3,执行后HomePage执行了2次,NewsPage执行了6次(线程2*循环3次)如果勾选了f......
  • 黑客工具之BurpSuite详解
    BurpSuite是用于攻击Web应用程序的集合平台,包含了许多工具。BurpSuite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP消息、持久性、认证、代理、日志、警报。BurpSuite基于Java开发,所以你的电脑上必须得安装有JDKProxy代理模块B......