一、简单了解

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):

  1. setUp Thread Group
  2. tearDown Thread Group

这个两个组件在工作中不是必须的,setUp Thread Group用来做初始化的工作,Thread Group是工作常用组;tearDown Thread Group用来做清理工作;

 

2、添加Sampler(演示使用HTTP Request)

选中group,右键-->add-->Sampler-->选择要测试的协议类型,以HTTP Request为例

显示:

说明:

Protocol[http]:不写就是默认的HTTP

Server Name or IP:www.7dtest.com 【默认不需要带http://】
Port Number:HTTP默认为80
Path:/表示根目录
Paramters:分两种方式一种为key-->value与json两种方式
 
3、添加查看结果

选中TestPlan-->右键-->add-->Listener-->View Results Tree,

点击请求:

弹出警告:

为你是否保存之后运行

结果如下:

结果查看几种方式:

View Results Tree组件可以很方便的查看请求的数据,响应的数据,当出现问题的时候可以用来分析问题,在jmeter中使用的频率很高

  1. Write results to file/Read from file

Filename:可以将执行结果保存到Filename指定的文件中,注意:默认保存在jmeter的bin目录下。如果勾选了后面的Errors,那么只保存错误信息;如果勾选了Success,那么只保存执行成功的信息;都不勾选的话保存所有的信息

l Browser:可以打开之前保存过的测试文件,将测试信息显示到下面的result栏中。如果勾选了后面的Errors,那么只显示错误信息;如果勾选了Success,那么只显示执行成功的信息;都不勾选的话显示所有的信息

1、Text:默认的显示方式,原始的HTML文本

2、HTML:以类似浏览器的格式查看响应数据

3、RegExp Tester:支持正则用来做检查点或者关联使用

如:<title>(.*?)</title>

[1][0]:表示整个匹配的表达式

[1][1]:表示分组中的内容

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  响应数据

聚合报告简单说明使用

图:

运行结果:

说明:

  1. Label:标签。如果选择了Include group name in label?这个选项,就会添加线程组的名称作为前缀(当聚合报告监控多个线程组时就勾上)

  2. Samples:具有相同名称的样本数

  3. Average:平均响应时间(单位:毫秒),默认是单个request的平均响应时间,当使用了事务控制器(Transaction Controller)的时候,也可以以事务为单位统计响应时间

  4. Median:中位数。也就是50%的样本不超过这个时间

  5. 90% Line:90%的样本不超过这个时间

  6. 95% Line:95%的样本不超过这个时间

  7. Min:具有相同标签样本的最小执行时间

  8. Maximum:具有相同标签样本的最大执行时间

  9. Error %:错误百分比

  10. Throughput:吞吐量,一般认为是TPS。吞吐量以每秒/分钟/小时的请求量来衡量。当TPS很低时,jmeter会默认以分钟为单位统计。

  11. Received KB/Sec:每秒收到的以千字节为单位的吞吐量

  12. Sent KB/Sec:每秒发送的以千字节为单位的吞吐量

  13. Save Table Data:把数据保存到csv文件中

  14. Include group name in label?:会将线程组的名字作为前缀显示

打开文件如:

简单说明:

改图配置可以根据实际情况选择

性能工具之Jmeter小白入门系列之一的更多相关文章

  1. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控【转】

    概述 本文我们将介绍如何使用JMeter+InfluxDB+Grafana打造压测可视化实时监控. 引言 我们很多时候在使用JMeter做性能测试,我们很难及时察看压测过程中应用的性能状况,总是需要等 ...

  2. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控

    一.安装配置InfluxDB InfluxDB是GO语言开发的一个开源分布式时序数据库,非常适合存储指标.事件.分析等数据.有人做过mysql和influxDB对比,存储1000万条数据mysql要7 ...

  3. 性能工具之Jmeter压测Hprose RPC服务

    概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...

  4. 性能工具之Jmeter压测Thrift RPC服务

    概述 Thrift是一个可互操作和可伸缩服务的框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Python, PHP, Ruby, ...

  5. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控(centos7环境)

    前提条件,已经安装jmeter并可以运行 1.安装influxdata wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.7 ...

  6. Redis小白入门系列

    一.从NoSQL说起 NoSQL 是 Not only SQL 的缩写,大意为"不只是SQL",说明这项技术是传统关系型数据库的补充而非替代.在整个NoSQL技术栈中 MemCac ...

  7. 小白入门NAS—快速搭建私有云教程系列(一)

    什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...

  8. webpack 快速入门 系列 —— 性能

    其他章节请看: webpack 快速入门 系列 性能 本篇主要介绍 webpack 中的一些常用性能,包括热模块替换.source map.oneOf.缓存.tree shaking.代码分割.懒加载 ...

  9. 【Go语言入门系列】Go语言工作目录介绍及命令工具的使用

    [Go语言入门系列]前面的文章: [保姆级教程]手把手教你进行Go语言环境安装及相关VSCode配置 [Go语言入门系列](八)Go语言是不是面向对象语言? [Go语言入门系列](九)写这些就是为了搞 ...

随机推荐

  1. 1.关于逆向工程(RE、RCE)-笔记

    名词 逆向工程(Reverse Engineering,简称RE):代码逆向工程(Reverse Code Engineering,简称RCE). 逆向分析方法 静态分析:不执行代码,观察外部特征.获 ...

  2. ES6新增常用方法

    字符串新增方法 padStart.padEnd 如果原字符串不够指定长度,则会在左侧(右侧)填充字符串,用以补全 padStart( length: number, fillStr?: string ...

  3. 通过Python将监控数据由influxdb写入到MySQL

    一.项目背景 我们知道InfluxDB是最受欢迎的时序数据库(TSDB).InfluxDB具有 持续高并发写入.无更新:数据压缩存储:低查询延时 的特点.从下面这个权威的统计图中,就可以看出Influ ...

  4. .NET Core 服务诊断工具

    前言: 前一篇文中介绍了.NET Core-全局性能诊断工具 的使用方法,那么接下来自己实现一个简单.NET Core的诊断工具. 该工具主要包括:.NET Core 程序进程信息查看.性能计数器结果 ...

  5. Flink去重统计-基于自定义布隆过滤器

    一.背景说明 在Flink中对流数据进行去重计算是常有操作,如流量域对独立访客之类的统计,去重思路一般有三个: 基于Hashset来实现去重 数据存在内存,容量小,服务重启会丢失. 使用状态编程Val ...

  6. CSS3过渡应用

    小米图标转换 transition:需要过渡的属性 花费时间 (运动曲线 何时开始): Tips: 1.第二个属性值必须跟上单位(s) 2.谁要过渡给谁加 图标转换最终效果:当鼠标划过图标时,缓慢转换 ...

  7. 1.HTML入门

    1.1 初识HTML 1.1.1 概述 网络世界已经跟我们息息相关,当我们打开一个网站,首先映入眼帘的就是一个个华丽多彩的网页.这些网页,不仅呈现着基本的内容,还具备优雅的布局和丰富的动态效果,这一切 ...

  8. .NET平台系列10 .NET统一平台愿景

    系列目录     [已更新最新开发文章,点击查看详细] 2019年,微软分享了[统一的.NET堆栈和生态系统的愿景].给开发者带来的价值是,将能够使用一组API,语言和工具来针对广泛的应用程序类型,包 ...

  9. 在Linux中通过Top运行进程查找最高内存和CPU使用率

    按内存使用情况查找前15个进程,在批处理模式下为"top" 使用top命令查看有关当前状态,系统使用情况的更详细信息:正常运行时间,负载平均值和进程总数. 分类:Linux命令操作 ...

  10. Chm文件阅读软件测试需求

    转发: .Chm文件阅读软件测试需求 . xchm问题太多就不考虑了: kchm是问题少一些 windows打开是乱码就不去考虑 必须在windows打开正常的再在龙芯上打开 1windows打开是乱 ...