Jmeter性能测试 (入门)

2023-11-06

Jmeter是一款优秀的开源测试工具, 是每个资深测试工程师,必须掌握的测试工具,熟练使用Jmeter能大大提高工作效率。

熟练使用Jmeter后, 能用Jmeter搞定的事情,你就不会使用LoadRunner了。

本文将通过一个实际的测试例子, 来讲解Jmeter的基本用法。本文的最后提供了本篇文章的脚本。 不喜欢看文章的同学直接看脚本也能看懂

Jmeter 介绍

Jmeter  是一款使用Java开发的,开源免费的,测试工具, 主要用来做功能测试和性能测试(压力测试/负载测试). 

而且用Jmeter 来测试 Restful API, 非常好用。

如何学好Jmeter

如果你用Jmeter去对Web进行功能测试,或者性能测试。 你必须熟练HTTP协议,才能学好Jmeter。 否则你很难理解Jmeter中得概念。

Jmeter  下载和运行

官方网站:Apache JMeter - Apache JMeter™

解压后, 运行  “bin/jmeter.bat”   

Jmeter 是支持中文的, 启动Jmeter 后, 点击 Options -> Choose Language  来选择语言

实际测试的例子

目标: 获取城市的天气数据:

第一步: 发送request 获取城市的城市代号
http://toy1.weather.com.cn/search?cityname=上海 

从这个请求的response 中获取到上海的城市代码. 比如:

上海的地区代码是101020100

上海动物园的地区代码是:  10102010016A

第二步:  发送request 到: http://www.weather.com.cn/weather2d/101020100.shtml   可以得到该城市的天气数据

第一步: 新建一个Thread Group

必须新建一个Thread Group,  jmeter的所有任务都必须由线程处理,所有任务都必须在线程组下面创建。

 

第二步:新建一个 HTTP Request

比如我要发送一个Get 方法的http 请求: http://toy1.weather.com.cn/search?cityname=上海 

可以按照下图这么填

第三步 添加HTTP Head Manager

选中上一步新建的HTTP request. 右键,新建一个Http Header manager. 添加一个header

 

第四步: 添加View Results Tree

View Results Tree 是用来看运行的结果的

 

第五步:运行测试,查看结果

到这里。 我们已经成功运行起来了。

 

第六步:添加Assertion和Assert Results

 选择HTTP Request, 右键 Add-> Assertions -> Response Assertion.  添加 Patterns To Test

然后添加一个Assetion Results 用来查看Assertion执行的结果. 

选中Thread Group 右键  Add -> Listener -> Assertion Results. 

运行后, 如果HTTP Response中没有包含期待的字符串。 那么test 就会Fail. 

 

第7步: 使用用户自定义变量

我们还可以在Jmeter中定义变量。 比如我定义一个变量叫 city.    使用它的时候用  ${city}

添加一个 User Defined Variables.  选中Thread Group: 右键 Add -> Config Element -> User Defined Variables.

我们添加一个变量: city

然后在Http Request中使用这个变量

 第八步:关联

所谓关联, 就是第二个Requst, 使用第一个Request中的数据

我们需要在第一个Http Requst 中新建一个正则表达式,把Response的值提取到变量中,提供给别的Http Request 使用

选择第一个Http Request, 右键 Add -> Post Processors -> Regular Expresstion Extractor

现在新建第二个Http Request,     发送到: http://www.weather.com.cn/weather2d/${citycode}.html 

${citycode} 中的数据, 是从Regular Expression Extractor 中取来的

到这, 脚本就全部写好了, 运行下,看下最终结果

 源代码下载

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jmeter性能测试 (入门) 的相关文章

  • JMeter 使用什么 Maven 插件? jmeter-maven-plugin 还是 chronos-jmeter-maven-plugin?

    我需要设置由 CI 系统自动触发运行的性能测试 为此 我想使用 JMeter 因为已经存在一些脚本和经验 并且我想将其与 Maven 结合起来 在我对合理插件的研究过程中 我发现存在两个插件 jmeter maven 插件 http wik
  • jmeter无法记录浏览器操作

    我正在使用 apache jmeter 2 6 我想使用 HTTP 代理服务器记录浏览器操作 但动作并没有记录 我已经在线程组下定义了 HTTP 请求默认值 我为服务器名称指定了值 如下所示 http www xxxxx com 81 ht
  • JMeter:为单个用户触发多个并发 HTTP 请求

    我有一个带有线程组和 Cookie 管理器的 JMeter 负载测试脚本 线程组中的用户首先使用HTTP采样器登录来获取cookie 然后 循环控制器触发交错采样器 该采样器在几个向服务器发出查询的 HTTP 采样器之间交替 现在 我希望交
  • JMeter 记录使用 HTTPS 的 iOS 本机应用程序会导致 SSL 握手问题

    我有一个用于我们的应用程序的 IPAD 混合应用程序 它会在登录过程中尝试访问我们的 https 服务器 我想使用 JMeter 来记录这个简单的流程 我正在本地计算机上运行 JMeter 代理服务器 我更新了 IPAD 代理详细信息 以便
  • 暂停和恢复 jmeter 执行

    我正在寻找暂停和恢复 JMeter 执行 单 多线程 的选项 1 Pausing and Resuming through command line 2 From the Jmeter UI 3 By coding in some lang
  • 负载测试kafka消费者

    我正在编辑问题 因为我认为它不够清楚 如何对我的 kafka 消费者进行负载测试 我看过很多关于 apache kafka 负载测试的文章 但没有一篇关于消费者负载测试的文章 对于前 我在jsr223中编写了jmeter kafka生产者测
  • 我有 JSR233 监听器,它在 JMeter 非 GUI 模式下似乎被忽略

    我在 HTTP 请求下有 JSR233 侦听器 它存储所有响应时间值 创建数组 然后对数组进行排序以查找 90 行 然后在达到最终 90 行阈值时标记最后一个事务 请求通过或失败 GUI 中的一切都运行完美 但我使用 Docker Imag
  • 在jmeter中设置整个请求url

    我有一个请求 它提供上传网址作为响应正文 uploadUrl https test com 9000 sample uploadurl I m able to extract the uploadUrl using JSON extract
  • 无法在fiddler中捕获jmeter流量

    我创建了 JMeter 记录 但当我开始测试时 我在 Fiddler 中没有看到任何请求 我改变了 Fiddler 中的端口号为 8080 我在 JMeter 中使用该端口号 Steps 创建线程组 将Http请求添加到线程组并输入URL
  • jmeter恒定视频流

    我正在使用 Jmeter 来加载测试视频流 我可以传递登录信息 但我需要让 Jmeter 在提供视频流的页面上 保持 我怎样才能做到这一点 我已经设置了 cookie 管理器 如果视频流不在您的服务器上 您根本不需要测试它 例如 如果您的网
  • 通过 Jmeter 从 Phantomjs 收集客户端性能指标

    在整个 PhantonJS 驱动程序配置中 我们有什么方法可以通过 phantomjs 使用 Jmeter DomLoad WindLoad ResourceCount 资源大小来捕获以下客户端性能指标 Thanks 我建议使用捕获指标WD
  • 使用 JMeter 时陷入嵌套循环。嵌套循环控制器和 CSV 数据集配置。

    在我的网站上 我有两个商家操作 搜索和浏览 一次搜索通常会触发三次浏览 我有一个 JMeter 测试 它使用商家和商家 ID 号的 CSV 文件 在大规模运行此测试时 我希望使用我网站上的所有商家 我已经在 J Meter 中映射了它 如下
  • 如何设置http请求的源IP?

    在发送 http 请求之前 我需要设置源 IP 地址 用于 IP 欺骗等 用于建立http连接的类是HTTPURLConnection 我在 stackoverflow 上找到了下面的链接 这非常有用 注册和使用自定义 java net U
  • 分布式模式下的 JMeter 摘要报告

    我正在分布式模式 2个从站 主站 下运行Jmeter性能测试 在我的测试脚本中我配置了摘要 报告应将一些数据保存到 csv 文件 此文件位置配置有固定名称 reports summary csv 值 当我从主站成功连接到两个从站时 测试在从
  • 在 JMeter 中,“将响应保存到文件”中,如何在将自定义后缀附加到文件名末尾的同时增加文件名

    在 JMeter 中 当使用 将响应保存到文件 来存储 http 响应时 如何在将自定义后缀附加到文件名末尾的同时增加文件名 这是我的场景 使用记录控制器和 HTTP S 测试脚本记录器记录文件转换和从网站下载的 http 流量 然后 我将
  • Jmeter 和 Bitbucket 服务器负载测试

    我是 Jmeter 的新手 我有一个本地托管的 Bitbucket 服务器 有时 当 Bamboo plan 触发并发 git 克隆操作时 会发现 Bitbucket 服务器变得缓慢 无响应 我必须重新启动服务 我想通过对另一个本地创建的
  • JMeter:来自 Jenkins 的九个以上参数

    我试图将超过九个参数从 Jenkins 传递到 JMeter4 0 当我阅读时 我发现 JMeter 不接受超过 9 个参数 作为解决方法 我想将所有参数作为字符串传递 并在 JMeter BeanShell 中将其拆分 java jar
  • 如何使用JMeter对网站进行负载测试

    我想在 JMeter 中创建一个脚本来模拟100 位用户在 3 4 分钟内访问我们的网站 我们需要测试我们的应用程序是否可以允许 25 000 个用户 天 即每小时 1 100 个用户 为此我做了这个 Jmeter 测试 这是结果 这是图表
  • 通过 Java 独立应用程序运行 JMeter 测试用例,无需在本地安装 JMeter。

    我正在尝试使用以下命令执行 JMeter 测试用例 我是否有另一种方法可以在不本地安装 JMeter 的情况下执行测试用例 这里我必须提供 JMeterUtils 的 JMeter HOME 路径 JMeter Engine Standar
  • 在 Jmeter 中将变量从一个 http 请求传递到另一个 http 请求

    我必须将变量从 jmeter 中的 xpath 提取器传递到另一个 http 请求 我怎样才能做到这一点 我想在http请求的标头中传递变量 我已将 xpath 提取器中的变量保存为LoginToken 尝试在第二个 http 请求的标头中

随机推荐

  • python 爬虫的开发环境配置

    1 新建一个python项目 2 在控制台中分别安装下面三个包 pip install requests pip install beautifulsoup4 pip install selenium 如果安装时报以下错误 raise Re
  • RPM软件包编译

    文章目录 spec文件解析 关键字 rpm处理spec文件的几个阶段 变量判断 RPM软件包 制作RPM包 工作目录结构 RPMBUILD命令常用参数 RPM命令常用参数 其他命令 spec文件解析 关键字 Name 软件包的名称 在后面的
  • Cisco—HSRP下实现DHCP主备冗余

    实验 01 拓扑 02 实验要求 S1 S2通过DHCP 为下游的linux服务器 分配IP 地址 S1 S2 上配置HSRP 让S1 S2 动态充当linux服务器的网关 断开SW 连接S1 的接口 查看HSRP 是否能动态的切换 宕机S
  • 统计网站页面的访问量

    最近做的 食盐行业信用管理与公共服务系统 项目 需要做一个网站文章页面的访问量功能 自己的解决方案 可能很简陋 但是解决了问题 而且我也给出了详细的过程 请大家多多支持 参与谈论 博客写这么长不容易啊 嘿嘿 需求及规则如下 1 同一个ip地
  • java游戏主角叶开,《仙侠道》叶开深度解析

    仙侠道 叶开深度解析 成也叶开 败也叶开 高速的都想把叶开秒了 这样赢得几率大 但是对手也会想法设法让你秒不了 上叶开同等战力同样伙伴 低速度的占优势 低速阵印陷阱有两个回个 经脉有两个回合 燕无名魂刃给叶开套上 套上期间任何陷阱 增益 清
  • K8S 安装 Dashboard

    1 在 master 节点执行 本例 k8s 是 v1 17 2 对应的 dashboard 是 v2 0 0 rc5 这个版本 具体去这里查看对应的版本 Releases kubernetes dashboard GitHub wget
  • js算法设计思想之“贪心算法”

    贪心算法是算法设计中一种方法 期盼通过每个阶段的局部最优选择 从而达到全局的最优选择 结果不一定是最优的 leetcode 455 分饼干 解题思路 局部最优 技能满足孩子 还消耗最小 先将 较小的饼干 分给胃口最小的孩子 解题步骤 饼干数
  • datax-web使用介绍

    datax web 路由策略 当执行器集群部署时 提供丰富的路由策略 包括 FIRST 第一个 固定选择第一个机器 LAST 最后一个 固定选择最后一个机器 ROUND 轮询 RANDOM 随机 随机选择在线的机器 CONSISTENT H
  • GRE虚拟隧道配置

    GRE拓扑 配置ip client1 172 16 1 1 172 16 1 254 server1 192 168 1 1 192 168 1 254 配置路由 R1 sys sys peer1 int g0 0 0 ip address
  • AnyTXT Searcher

    AnyTXT Searcher 非常简单 只需要写下您要搜索的关键文字 然后按Enter Go 一体化的界面 用户界面是一个巨大的预览面板 如果您有多个驱动器 则可以选择要搜索的驱动器 也可以全部覆盖 要指定您的驱动器 请单击搜索字段旁边的
  • 一个简单的线程锁------pthread和win32的临界区(Critical Section)

    临界区 临界区是指一个小代码段 在代码能够执行前 它必须独占对某些资源的访问权 这是让若干代码能够 以原子操作方式 来使用资源的一种方法 所谓原子 atomic 操作方式 是指这段代码知道没有别的线程要访问这个资源 说明 1 MacOSX
  • 尝试在条件“$(_DeviceSdkVersion) >= 21”中对计算结果为“”而不是数字的“$(_DeviceSdkVersion)”进行数值比较。

    最近折腾xamarin android 使用genymotion模拟器 vs 2015自带的速度太慢 发生 出现部署错误 问题 查看 输出 窗口 发现是adb exe执行问题 原因是genymotion默认使用自身的adb配置 更改过来即可
  • 【自动控制原理】非零初始条件下的传递函数_含有初始条件的传递函数-笔记

    一个一阶函数 其传递函数为 得其微分方程为 前提条件为x 0 0 而 做Laplace 得到新的传递函数G s 化成框图 不会影响系统的稳定 不影响我们分析该系统 比如
  • 新媒体数据分析:新媒体运营主要做什么?

    新媒体运营主要做什么 新媒体运营每天是做什么 虽然在招聘网上一搜 各种岗位职责 岗位要求 一目了然 但落实到具体的工作中时 都是在做的什么 作为一个从事新媒体运营工作的人 工作主要分为社交媒体的辅助运营 主要媒体的精益运营和自媒体的变现三类
  • Anaconda安装(详细教程)

    一 简介 Anaconda是一个开源的Python发行版本 其包含了conda Python等180多个科学包及其依赖项 其中包括Conda Python以及一大堆安装好的工具包 比如 numpy pandas等 而conda是一个开源的包
  • MTD子系统和NAND

    先前的文章 虚拟文件系统 VFS 基于linux3 10 和 UBIFS文件系统 只是对文件系统进行各层的分析 并没有连贯到读写flash 透过本文可以知道ubifs文件系统发出的读在linux操作系统上是到底是如何完成的 NAND设备 L
  • A-2 LRU-K(攀拓(PAT)- 程序设计(甲级)2023年春季考试仿真卷)

    A 2 LRU K 分数 25 作者 陈越 单位 浙江大学 Least Recently Used LRU cache scheme is to remove the least recently used frame the one ha
  • T分布和T检验的理解,Python代码实现T检验的计算

    每天学习一点 每天进步一点 声明 本人所有的原创 都是自己在学习过程中的记录点滴 不一定都是对的 肯定也会有一些错误的想法 所以大家看一看就好 不可尽信 当然也欢迎指出 T分布 定义 有来自标准正态分布的样本X N 0 1 和来自卡方n分布
  • git lfs的用法及安装遇到的问题-Windows版本

    在使用git lfs的时候遇到了各种问题 遍寻无果 最后终于摸索出来了 现将摸索出来的成功下载文件的过程和方法总结如下 在下载GitHub上程序和数据的时候发现下载的数据为 csv格式 但是打开却出现了意义不明的乱码 然后我打开了versi
  • Jmeter性能测试 (入门)

    Jmeter是一款优秀的开源测试工具 是每个资深测试工程师 必须掌握的测试工具 熟练使用Jmeter能大大提高工作效率 熟练使用Jmeter后 能用Jmeter搞定的事情 你就不会使用LoadRunner了 本文将通过一个实际的测试例子 来