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性能测试 (入门) 的相关文章

随机推荐

  • 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了 本文将通过一个实际的测试例子 来