jmeter简介

2023-10-26

**

性能测试

**

性能测试是什么
就是说基于协议模拟用户的发出请求,对服务器进行一定的负载,来测试服务器的性能指标是否满足要求性能指标关注点:时间性能、空间性能,性能测试与页面无关

性能测试工具:HP LoadRunner、Apache AB、Apache Jmeter

在这里插入图片描述

Jmeter简介

1.我们为什么使用Jmeter
开源,免费,基于Java编写,可集成到其他系统可拓展各个功能插件
支持接口测试,压力(负载和压力)测试等多种功能,支持录制回放,

入门简单相较于自己编写框架活其他开源工具,有较为完善的UI界面,便于接口调试

多平台支持,可在Linux,Windows,Mac上运行,支持多协议
2.Jmeter的作用

  1. 接口测试 因为方便好用。
  2. 性能测试 jmeter,也可以用postman(runner),但是没有性能指标
  3. 数据库测试
    3.Jmeter下载安装
    JMeter安装
    1.http://jmeter.apache.org/下载最新版本的JMeter,解压文件到任意目录
    2.安装JDK,配置环境变量JAVA_HOME.
    3.系统要求:JMeter2.11 需要JDK1.6以上的版本支持运行
    4.JMeter可以运行在如下操作系统上:Unix,Windows和Open VMS.
    5.避免在一个有空格的路径安装JMeter,这将导致远程测试出现问题。
    运行:进入bin目录运行jmeter.bat启动jmeter
    注意:打开的时候会有两个窗口,JMeter的命令窗口和JMeter的图形操作界面,不可以关闭命令窗口。

Windows下Jmeter下载安装,登录 http://jmeter.apache.org/download_jmeter.cgi ,根据自己平台,下载对应文件

请添加图片描述
4.安装JAVA环境
安装JDK,配置环境变量(具体步骤不做介绍)
请添加图片描述
将下载Jmeter文件解压,打开/bin/jmeter.bat
请添加图片描述
请添加图片描述
可以将语言切换位中文,如图所示:
请添加图片描述

Jmeter的目录结构

请添加图片描述

/bin 目录常用文件介绍:
    examples:目录下包含Jmeter使用实例
    ApacheJMeter.jar:JMeter源码包
    jmeter.bat:windows下启动文件
    jmeter.sh:Linux下启动文件
    jmeter.log:Jmeter运行日志文件
    jmeter.properties:Jmeter配置文件
    jmeter-server.bat:windows下启动负载生成器服务文件
    jmeter-server:Linux下启动负载生成器文件
/docs目录——Jmeter帮助文档
/extras目录——提供了对Ant的支持文件,可也用于持续集成
/lib目录——存放Jmeter依赖的jar包,同时安装插件也放于此目录
/licenses目录——软件许可文件,不用管
/printable_docs目录——Jmeter用户手册

Jmeter的快速入门-http请求

使用Jmeter访问一个网站 , 并查看请求和响应信息

步骤:
1.启动Jmeter
2.在 测试计划 中添加  线程组
3.在 线程组 中添加 http请求 取样器
4.在 http请求 中添加对应的请求参数
5.在 线程组 下添加 察看结果树 监听器
6.点击 启动 按钮,并查看结果

创建线程组

如图所示,在Test Plan上右键,然后做如下操作:
请添加图片描述
**线程组主要包含三个参数:**线程组Number of Threads)、准备时长(Ramp-Up Period(in seconds))、循环次数(Loop count)。
请添加图片描述
线程组(Number of Threads):
虚拟用户数。一个虚拟用户占用一个线程。设置多少虚拟用户数在这里也就是设置多少个线程数。

准备时长(秒)(Ramp-Up Period(in seconds)):

​ 设置的虚拟用户数需要多长时间全部启动。如果线程数为20 ,准备时长为10 ,那么需要10秒钟启动20个线程。也就是每秒钟启动2个线程。
循环次数(Loop count):

​ 每个线程发送请求的次数。如果线程数为20 ,循环次数为100 ,那么每个线程发送100次请求。总请求数为20*100=2000 。如果勾选了“永远”,那么所有线程会一直发送请求,一直到选择停止运行脚本。

调度器

​ 设置线程组启动的开始时间和结束时间(配置调度器时,需要勾选循环次数为永远)

持续时间(秒)

​ 测试持续时间,会覆盖结束时间

启动延迟(秒)

​ 测试延迟启动时间,会覆盖启动时间

11.3.2 创建http请求

线程组右键 – Add — Sampler(取样器)-- HTTP Request请添加图片描述
请添加图片描述

关于http请求的的属性参数说明:
1)Name(名称):用于标识一个sample。建议使用一个有意义的名称
2)Comments(注释):对于测试没任何影响,仅用来记录用户可读的注释信息
3)Protocol(协议):向目标服务器发送http请求时的协议,http/https,大小写不敏感,默认http
4)Server Name or IP(服务器名称或IP):http请求发送的目标服务器名称或者IP地址,比如http://www.baidu.com
5)Port Number(端口号):目标服务器的端口号,默认值为80,可不填
6)Method(方法):发送http请求的方法(链接:http://www.cnblogs.com/imyalost/p/5630940.html)
7)Path(路径):目标的URL路径(不包括服务器地址和端口)
8)Content encoding:内容的编码方式(Content-Type=application/json;charset=utf-8)
————————————————————————————————————————————————————————
9)Redirect Automatically(自动重定向):如果选中该项,发出的http请求得到响应是301/302,jmeter会重定向到新的界面
10)Follow Redirects(跟随重定向):如果发出的http请求得到响应是301/302,jmeter会重定向到新的界面
11)Use keep Alive:jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信(默认选中)
12)Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用
13)Browser Compatible headers 
————————————————————————————————————————————————————
14)Parameters、Body Data以及Files Upload的区别:
   1. parameter是指函数定义中参数,而argument指的是函数调用时的实际参数
   2. 简略描述为:parameter=形参(formal parameter), argument=实参(actual parameter)
   3.在不很严格的情况下,现在二者可以混用,一般用argument,而parameter则比较少用
   当定义方法时,传递到方法中的变量称为参数.
   当调用方法时,传给变量的值称为引数.(有时argument被翻译为“引数“)
   4.Body Data指的是实体数据,就是请求报文里面主体实体的内容,一般我们向服务器发送请求,携带的实体主体参数,可以写入这里
   5、Files Upload指的是:从HTML文件获取所有有内含的资源:被选中时,发出HTTP请求并获得响应的HTML文件内容后还对该HTML进行Parse 并获取HTML中包含的所有资源(图片、flash等):(默认不选中)
      如果用户只希望获取特定资源,可以在下方的Embedded URLs must match 文本框中填入需要下载的特定资源表达式,只有能匹配指定正则表达式的URL指向资源会被下载

使用监听器查看结果

对于http请求的结果,我们可以使用监听器去查看,通常使用的有三种:察看结果树,聚合报告,用表格查看结果

请添加图片描述
在线程组中修改 线程数,Ramp-up时间,循环次数,点击绿色三角图标运行

察看结果树

通过察看结果树,我们可以看到每个请求的结果,其中红色的是出错的请求,绿色的为通过。

Thread Name:线程组名称
Sample Start: 启动开始时间
Load time:加载时长
Latency:等待时长
Size in bytes:发送的数据总大小
Headers size in bytes:发送数据的其余部分大小
Sample Count:发送统计
Error Count:交互错误统计
Response code:返回码
Response message:返回信息
Response headers:返回的头部信息

请添加图片描述
聚合报告
请添加图片描述

lable:对应每一个http请求,显示的是http请求的Name,如百度http请求name为baidu
#Samples:表示这一次的测试中一共发出了多少请求,如上图所示,sougou和baidu的http请求每个都发出30个请求
Average:平均响应时间,指的是所有的请求的平均响应时间,如上图的30个请求的总的响应时间除以30得出的平均响应时间,默认的情况下是单个请求的平均响应时间,但当使用了“事务控制器”时,则以事物为单位显示平均响应时间
Median:中位数,响应时间的中值
90%Line:90%用户的响应时间
Min:最小响应时间
Max:最大的响应时间
Error%:本次测试中出现错误的请求的数量/请求的总数,如上图所示,本次的测试中,sougou的http请求66.6%的请求出错,而baidu的请求则没有出错的请求
Throughput:吞吐量,默认情况下表示每秒完成的请求数,如上图请求所示,每秒完成的请求数分别为2.9个每秒,13.7个每分钟
Recived KB/Sec:每秒从服务器端接收到的数据量,以kb为计算的单位
掌握:平均时间、错误率、吞吐量。

用表格察看结果请添加图片描述

Sample:每个请求的序号
Start Time:每个请求开始时间
Thread Name:每个线程的名称
Label:Http请求名称
Sample Time:每个请求所花时间,单位毫秒
Status:请求状态,如果为勾则表示成功,如果为叉表示失败。
Bytes:请求的字节数
样本数目:也就是上面所说的请求个数,成功的情况下等于你设定的并发数目乘以循环次数
平均:每个线程请求的平均时间
最新样本:表示服务器响应最后一个请求的时间
偏离:服务器响应时间变化、离散程度测量值的大小,或者,换句话说,就是数据的分布。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jmeter简介 的相关文章

  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 在 Apache JMeter 中配置响应超时

    我试图检查特定 HTTP 请求的响应时间是否超过 30 秒 如果是 则将其标记为失败并停止线程 有时我可以看到响应时间接近 80 秒 没有浏览器等待服务器响应那么长时间 我发现了以下三种在 JMeter 中设置超时值的方法 但这让我很困惑
  • 仅在 n 个断言错误后停止 JMeter 测试执行

    Problem 我正在 JMeter 2 13 中模拟压力测试 我的想法是在达到一定的响应时间上限后停止测试 我使用 Duration Assertion 节点进行测试 但是 我不想在第一次此类失败后停止测试执行 在其他稳定的情况下 它可能
  • JMeter 3.2 中不存在 SOAP/XML-RPC Sampler

    我有点惊讶我的 JMeter 3 1 脚本在 3 2 中不起作用 JMeter 3 2 中删除 SOAP XML RPC Sampler 的原因是什么 是否存在一些性能问题等 这是 JMeter 的一部分change http jmeter
  • 在 jMeter 的值字段中使用变量

    我添加了一个用户定义变量元素 然后创建一个值为 123456 的变量 Parameter 并将其传递到 GET 请求中 创建了第二个变量 Response 其值为 无效代码 123456 我添加了一个响应断言元素 将 Response 变量
  • 使用数据库表作为 JMeter 的 CSV 数据集

    我目前正在使用 JMeter 对我公司的一个应用程序进行性能测试 该应用程序需要登录 我必须使用多个用户 在 JMeter 中通常完成此操作的方式似乎是通过 CSV 数据集 但是我可以访问数据库并可以直接从那里读取所有凭据 由于这是一个测试
  • Java 12 JMeter 5 HTTP/2 请求 java.lang.NoClassDefFoundError: org/eclipse/jetty/alpn/client/ALPNClientConnectionFactory

    我在 Ubuntu 9 0 4 上使用 Java 12 JMeter 5 1 1 并在尝试发送 HTTP 2 请求时遇到以下异常 Response code Non HTTP response code java util concurre
  • jmeter HTTP响应代码:org.apache.http.conn.HttpHostConnectException,非HTTP响应消息:连接被拒绝错误

    我正在使用 JMeter 测试负载 我正在使用 Amazon Server 当我测试 400 个并发用户的负载时 我收到错误消息 HTTP response code org apache http conn HttpHostConnect
  • 使用Java代码进行Jmeter分布式测试

    我能够使用 Java 代码运行 Jmeter 但如果我想做与分布式测试相同的操作 那么如何在 Java 代码中添加远程引擎 这是一个sample http alvinalexander com java jwarehouse jakarta
  • 使用Jmeter调用API时如何传递表单数据?

    我想使用 Jmeter 进行 API 调用 在我的 API 调用中 我发送一个带有请求的文件 我需要将文件名指定为表单数据 e g when I call the same API from postman 当我从 Jmeter 进行上述调
  • 在 JMeter 的 BeanShell Sampler 中将字符串解析为整数

    我试图在 JMeter 中将字符串解析为整数 但由于以下错误而失败 如果我尝试打印 vars get 返回的字符串 它们看起来不错 2014 06 28 00 08 52 WARN jmeter assertions BeanShellAs
  • 如何使用 JMeter 发送动态 URL 参数

    我想将 URL PATH 发送为 controller 1 1 controller 2 2 start 但是参数 2controller 2是动态的 如何发送该参数 使参数成为变量 controller 2 controller2 par
  • JMeter - 使用其他 BeanShell 预处理器/后处理器中的变量?

    有没有一种方法可以将变量从一个 BeanShell 预处理器 后处理器引用到另一个 BeanShell 处理器 它们在同一个线程组内 如果我在 HTTP 请求下的 BeanShell 预处理器内创建一个字符串变量 那么我可以在同一 HTTP
  • 负载测试kafka消费者

    我正在编辑问题 因为我认为它不够清楚 如何对我的 kafka 消费者进行负载测试 我看过很多关于 apache kafka 负载测试的文章 但没有一篇关于消费者负载测试的文章 对于前 我在jsr223中编写了jmeter kafka生产者测
  • 无法在fiddler中捕获jmeter流量

    我创建了 JMeter 记录 但当我开始测试时 我在 Fiddler 中没有看到任何请求 我改变了 Fiddler 中的端口号为 8080 我在 JMeter 中使用该端口号 Steps 创建线程组 将Http请求添加到线程组并输入URL
  • 与 Jenkins 一起在 JMeter 中响应断言 - 从不显示失败

    寻找一点指导 我有一个基本的 JMeter 测试计划设置来加载页面 我添加了几个断言来检查屏幕上的文本是否显示 对这些使用了响应断言 我使用 JMeter GUI 运行了该计划 并故意导致断言失败 错误率为 15 所以这很好 然后 我尝试使
  • 使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

    在我的网站上 我有两个商家操作 搜索和浏览 一次搜索通常会触发三次浏览 我有一个 JMeter 测试 它使用商家和商家 ID 号的 CSV 文件 在大规模运行此测试时 我希望使用我网站上的所有商家 我已经在 J Meter 中映射了它 如下
  • 在 JMETER 中循环遍历 JSON 响应 +

    我正在使用 Jmeter 进行性能测试并卡在以下点 我从 Webapi 收到 JSON 响应 如下所示 PersonInfoList Person 0 id 1 name Steve 1 Person id 2 name Mark 我需要根
  • Jmeter动态生成请求的json负载

    我有一个 Jmeter 测试计划 我希望 HttpSampler 发送发布请求 请求正文应包含 Json 如下所示 productIds p1 p2 我设置了一个随机变量生成器 每次调用都会返回格式正确的 ProductId 我想做的是通过
  • 分布式模式下的 JMeter 摘要报告

    我正在分布式模式 2个从站 主站 下运行Jmeter性能测试 在我的测试脚本中我配置了摘要 报告应将一些数据保存到 csv 文件 此文件位置配置有固定名称 reports summary csv 值 当我从主站成功连接到两个从站时 测试在从

随机推荐

  • 微信小程序报错“getLocation:fail the api need to be declared in the requiredPrivateInfos field in app.js...“

    解决微信小程序获取定位报错 上个礼拜在调试一个微信小程序的时候 在手机允许小程序获取定位 定位授权成功的情况下 发现安卓手机能获取定位 但是苹果手机获取不到定位 我就开始查阅资料 一 报错信息 报错信息是errMsg getLocation
  • 在外包做了3年测试,离职后却成功入职字节跳动.....

    最近换了份工作 当时和群里的朋友也聊过换工作的话题 他们都觉得这是一次非常冒险的行为 说我这是一次豪赌 成了会有更好的职业发展 没成可能就会出现两三年的发展断层 甚至影响职业生涯路径 一步错 步步错 我当时也仔细的考虑过了 的确有很大的风险
  • JAVA基础知识之文件读取详细解读

    欢迎访问个人博客 德鲁大叔撸代码 我们要把一个文件从外部读入程序中 大致的步骤如下 第一步 获取需要被读取的文件 第二步 构造一个字节输入流 用来读取文件 第三步 为了提高读写速度 需要把字节流转换成一个字符输入流 第四步 写文件 所以我们
  • python英文文本情感分析_sentimentpy模块进行中文文本情感分类

    sentimentpy是我根据R语言的一个文本情感分析包sentiment进行开发的 开发的初衷有 R的sentiment已经被弃坑 没人维护 Python比R更擅长文本处理 sentiment包不支持中文 而sentimentpy包有如下
  • Vite 配置 Eslint 规范代码

    在经历过比较大型的项目协同开发后 代码规范成为了团队协同开发的棘手问题 今天 准备从头整理一份从编辑器 gt 代码编写过程中的规范总结 一 代码风格统一 这里推荐使用 EditorConfig 配置 来规范不同的编辑器 不同的编辑器配置 所
  • 【OAuth漏洞】第三方身份验证-账号接管

    目录 什么是OAuth OAuth 如何用于身份验证 在 Booking com 实施 OAuth 为什么 Booking com OAuth 在 Booking com 中的工作原理 Booking com 帐户接管 安全漏洞 1 不允许
  • android 修改最近任务列表的图标以及名称

    在activity里加入 如下代码 if Build VERSION SDK INT gt 27 ActivityManager TaskDescription description new ActivityManager TaskDes
  • 【华为OD机试真题 C++】面试官人数

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • 数据结构1)数据结构的基本概念

    1 1 1 1 数据 数据是信息的载体 是描述客观事物属性的数 字符及所有能输入到计算机并被计算机程序识别和处理符号的集合 数据是计算机程序加工的原料 2 数据元素 数据元素是数据的基本单位 通常作为一个整体进行考虑和处理 一个数据元素可以
  • 特征值与特征向量的重要性质:特征值之和等于对角线元素之和,特征值之积等于行列式的值

  • 矩阵系列:矩阵乘法

    上一篇说到一个基本的小知识点浮点到定点的转换 这一篇来说说矩阵乘法 矩阵乘法和下一篇要说的矩阵LU分解是矩阵求逆的重要组成部分 所以就算大家不需要做矩阵求逆 对其先有个整体的认识也是好的 矩阵求逆的整体框图还是很好理解的 甚至你只要瞟一眼图
  • PS学习笔记--去掉图片上不想要的部分

    1 首先打开Photoshop 将要修改的图片拖到画布中 2 点击左侧 选框工具 在弹出菜单栏点击 矩形选框 利用选框工具 选择图片上的文字 3 然后右键点击选框 在弹出的菜单栏中 选择 填充 选项 点击打开后 进入填充选项 4 将使用设置
  • Golang - api中生产数据,另一个进程控制并发数去消费api中生产的数据

    api示例 该实例主要功能是实现一个API API在调用的时候会向channel中发送任务数据 Consumer函数去消费channel中的任务数据 并且可以通过maxConcurrency去控制消费的并发数 package main im
  • OS 二级页表

    条件 32位逻辑地址空间 页面大小4KB 页表项大小4B 以字节为编址单位 页面大小为4KB 页内偏移地址为log24K 12位 页号部分为20位 若不采用分级页表 则仅一个页表就要占用20x4B 4KB 1024页 4MB 页表项仅用于存
  • SHH 客户端神器之MobaXterm

    本文着重介绍 MobaXterm 的下载 安装 简单使用 以及其强大的功能亮点 优点 MobaXterm 的下载 如果是个人使用 下载家庭版 免费的 就可以满足基本工作需求 如果想要使用更丰富的功能 可以使用专业版 收费的 个人使用的是家庭
  • 更换新硬盘,重新装回正版win10的方法

    1 添加 Microsoft 帐户并将其链接到数字许可证 这一步可以参考微软给出的官方的解决方法https support microsoft com zh cn help 20530 windows 10 reactivating aft
  • Java中的for循环/增强for/嵌套for(基础一)

    目录 一 Java中的for循环语句 1 普通的for循环 2 for each 增强for循环 3 嵌套for循环 一 Java中的for循环语句 1 普通的for循环 普通的for循环由初始化 布尔表达式条件 初始量自增 自减 循环体组
  • 【内附源码和文档】在线课堂管理平台的设计与实现

    在线课堂管理平台的设计与实现 一 需求分析 1 1 需求来源 通过研究传统的课堂学习特点 了解到传统课堂教学中存在教师与学生沟通不便 通知与作业不能及时传达 教学资源不能高效共享等不足 本项目使用 Java EE 技术来解决上述需求 此项目
  • 重学java笔记「一」

    1 关于程序入口 所有的Java 程序由public static void main String args 方法开始执行 2 java支持的变量类型 2 1类变量 静态变量 独立于方法之外的变量 用 static 修饰 无论一个类创建了
  • jmeter简介

    性能测试 性能测试是什么 就是说基于协议模拟用户的发出请求 对服务器进行一定的负载 来测试服务器的性能指标是否满足要求性能指标关注点 时间性能 空间性能 性能测试与页面无关 性能测试工具 HP LoadRunner Apache AB Ap