性能工具之Jmeter小白入门系列之一
一、简单了解
Apache JMeter
The Apache JMeter application is open source software, a 100% pure Java application designed to load test functional behavior and measure performance. It was originally designed for testing Web Applications but has since expanded to other test functions.
官网网站为:
https://jmeter.apache.org/
安装
l 官网:http://jmeter.apache.org/download_jmeter.cg
l 下载完成后直接解压缩即可,无须安装(前置条件,本机需要有java运行虚拟机环境)。
l 点击bin目录下的jmeter.bat文件即可启动jmeter.
帮助文档:
https://jmeter.apache.org/usermanual/get-started.html
插件安装
访问:https://jmeter-plugins.org/install/Install/
下载后存放位置:
1) 下载成功后将jar包放到jmeter的 lib/ext目录下,重启jmeter即可
2) 验证插件可以使用
查看插件
二、初步功能测试介绍
步骤一:新建线程组 【Thread Group】
步骤二:添加请求类型【sampler】
步骤三:增加结果参看树【view results tree】
1、添加线程组
TestPlan-->右键-->add-->Threads(Users),添加Thread Group
解释:Threads(Users):
- setUp Thread Group
- tearDown Thread Group
这个两个组件在工作中不是必须的,setUp Thread Group用来做初始化的工作,Thread Group是工作常用组;tearDown Thread Group用来做清理工作;
2、添加Sampler(演示使用HTTP Request)
选中group,右键-->add-->Sampler-->选择要测试的协议类型,以HTTP Request为例
显示:
说明:
Protocol[http]:不写就是默认的HTTP
选中TestPlan-->右键-->add-->Listener-->View Results Tree,
点击请求:
弹出警告:
为你是否保存之后运行
结果如下:
结果查看几种方式:
View Results Tree组件可以很方便的查看请求的数据,响应的数据,当出现问题的时候可以用来分析问题,在jmeter中使用的频率很高
Write results to file/Read from file
l Filename:可以将执行结果保存到Filename指定的文件中,注意:默认保存在jmeter的bin目录下。如果勾选了后面的Errors,那么只保存错误信息;如果勾选了Success,那么只保存执行成功的信息;都不勾选的话保存所有的信息
1、Text:默认的显示方式,原始的HTML文本
2、HTML:以类似浏览器的格式查看响应数据
3、RegExp Tester:支持正则用来做检查点或者关联使用
如:<title>(.*?)</title>
[1][0]:表示整个匹配的表达式
4、XPath Tester:xpath方式提取内容
参考语法:[https://www.w3school.com.cn/xpath/index.asp]
l Use Tidy?:当需要处理的页面是HTML格式时,必须选中该选项,当需要处理的页面是XML或XHTML格式(例如,RSS返回)时,取消选中该选项。l Reference Name:存放提取出的值的参数。l XPath Query:用于提取值的XPath表达式。l Default Value:参数的默认值
5、JSON PATH Tester 使用方式为:
如果:$.extend.pageInfo.pageSize
参考java代码如:
/**
* 通过json获取值
* 李文 2020-03-25
* @param json
* @param path
* @param filter
* @return
*/public static Object jsonPath(String json, String path, Filter... filter) {
try {
return filter.length == 0 ? JsonPath.parse(json).read(path, new Predicate[0]) : JsonPath.parse(json).read(path, new Predicate[]{filter[0]});
}
catch (PathNotFoundException var4) {log.error(var4.getMessage());
return null;
}
}
以上取值待遇也是按$.开头取值;
6、Scroll automatically:请求很多时可以自动滚屏
如果勾选会自动滚屏
View Results Tree试图为:
sampler result:
说明:
Thread Name: Thread Group 1-1:Thread Group 2线程组的编号,1是线程组内线程的编号
Load time: 整个请求的执行时间
Connect Time: 连接时间
Latency: 延迟时间
Size in bytes: Headers size in bytes + Body size in bytes
Sent bytes:发送的字节数
request 请求数据
response data 响应数据
聚合报告简单说明使用
图:
运行结果:
说明:
Label:标签。如果选择了Include group name in label?这个选项,就会添加线程组的名称作为前缀(当聚合报告监控多个线程组时就勾上)
Samples:具有相同名称的样本数
Average:平均响应时间(单位:毫秒),默认是单个request的平均响应时间,当使用了事务控制器(Transaction Controller)的时候,也可以以事务为单位统计响应时间
Median:中位数。也就是50%的样本不超过这个时间
90% Line:90%的样本不超过这个时间
95% Line:95%的样本不超过这个时间
Min:具有相同标签样本的最小执行时间
Maximum:具有相同标签样本的最大执行时间
Error %:错误百分比
Throughput:吞吐量,一般认为是TPS。吞吐量以每秒/分钟/小时的请求量来衡量。当TPS很低时,jmeter会默认以分钟为单位统计。
Received KB/Sec:每秒收到的以千字节为单位的吞吐量
Sent KB/Sec:每秒发送的以千字节为单位的吞吐量
Save Table Data:把数据保存到csv文件中
Include group name in label?:会将线程组的名字作为前缀显示
打开文件如:
简单说明:
改图配置可以根据实际情况选择
性能工具之Jmeter小白入门系列之一的更多相关文章
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】
概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控
一.安装配置InfluxDB InfluxDB是GO语言开发的一个开源分布式时序数据库,非常适合存储指标.事件.分析等数据.有人做过mysql和influxDB对比,存储1000万条数据mysql要7 ...
- 性能工具之Jmeter压测Hprose RPC服务
概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...
- 性能工具之Jmeter压测Thrift RPC服务
概述 Thrift是一个可互操作和可伸缩服务的框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, ...
- 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控(centos7环境)
前提条件,已经安装jmeter并可以运行 1.安装influxdata wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.7 ...
- Redis小白入门系列
一.从NoSQL说起 NoSQL 是 Not only SQL 的缩写,大意为"不只是SQL",说明这项技术是传统关系型数据库的补充而非替代.在整个NoSQL技术栈中 MemCac ...
- 小白入门NAS—快速搭建私有云教程系列(一)
什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...
- webpack 快速入门 系列 —— 性能
其他章节请看: webpack 快速入门 系列 性能 本篇主要介绍 webpack 中的一些常用性能,包括热模块替换.source map.oneOf.缓存.tree shaking.代码分割.懒加载 ...
- 【Go语言入门系列】Go语言工作目录介绍及命令工具的使用
[Go语言入门系列]前面的文章: [保姆级教程]手把手教你进行Go语言环境安装及相关VSCode配置 [Go语言入门系列](八)Go语言是不是面向对象语言? [Go语言入门系列](九)写这些就是为了搞 ...
随机推荐
- (8)MySQL进阶篇SQL优化(InnoDB锁-共享锁、排他锁与意向锁)
1.锁的分类 锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制.之前MyISAM锁章节已经讲过锁分类,而InnoDB锁按照粒度分为锁定整个表的表级锁(table-level l ...
- FlinkSQL使用自定义UDTF函数行转列-IK分词器
一.背景说明 本文基于IK分词器,自定义一个UDTF(Table Functions),实现类似Hive的explode行转列的效果,以此来简明开发过程. 如下图Flink三层API接口中,Table ...
- Redis—简单动态字符串(SDS)
目录 Redis-简单动态字符串(SDS) SDS的定义 SDS与C字符串的区别 1. 常数复杂度获取字符串长度: 2. 杜绝缓冲区溢出: 3. 减少修改字符串时带来的内存重分配次数 4. 二进制安全 ...
- LightningChart JS 3.0 新功能上线
在这次的LC JS更新中,首次将极坐标图引入图表库. 这种全新的图表类型可以通过API轻松地进行样式设置.极坐标可以用作独立图表或在仪表板中使用. 另外,用于 XY图表的对数轴也添加到了这次的更新,L ...
- (转)如何优雅的使用rabbit mq
RabbitMQ无疑是目前最流行的消息队列之一,对各种语言环境的支持也很丰富,作为一个.NET developer有必要学习和了解这一工具.消息队列的使用场景大概有3种: 1.系统集成,分布式系统的设 ...
- MzzTxx——团队贡献分分配方案
项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 团队贡献分分配规则制定 我在这个课程的目标是 进一步提升工程化开发能力,积累团队协作经验,熟悉全栈 ...
- 浅尝js垃圾回收机制
局部作用域内的变量,在函数执行结束之后就会被js的垃圾回收机制销毁 为什么要销毁局部变量? => 为了释放内存 js垃圾回收机制何时会销毁局部变量 : 如果局部变量无法再得到访问,就会被 ...
- mysql 格式化 取日期
- AOP随笔
AOP: Aspect-Oriented Programming 面向切面编程. 首先明确一个点:AOP是一个概念.那么对于一个概念,其实现方式多种多样,分为静态AOP.动态AOP,而对于动态AOP的 ...
- 容器环境下如何将NuGet包XML文档添加到Swagger
容器环境下将NuGet包XML文档添加到Swagger 在.NET Core项目开发过程中,为了实现代码复用,我们将可以重复使用的部分拆分成一个个小的NuGet包.这些NuGet包可以在其他系统中复用 ...