JMeter 基础知识

JMeter下载

Apache JMeter - Download Apache JMeter

下载Binaries下 zip格式的压缩包

下载

环境要求

JMeter是完全Java开发的软件,所以电脑需要安装Java环境
JMeter运行需要Java8或更高的Java版本

如果未安装Java,参考其他教程进行安装,并配置Java环境变量

运行JMeter

解压JMeter压缩文件,解压后格式如下图所示


JMeter压缩文件解压

进入bin文件夹,找到ApacheJMeter.jar文件,双击运行


ApacheJMeter.jar

出现以下界面即为运行成功


JMeter

切换语言

中文切换为英文

菜单栏 -> 选项 -> 选择语言 -> 选择英语

中文切换为英文

英文切换为中文

菜单栏 -> Options -> Choose Language -> Chinese

这里有两种:Chinese(Simplified) 简体中文、Chinese(Traditional) 繁体中文

英文切换为中文

测试步骤

1、新建测试计划
2、创建一到多个线程组,采样器,控制器等元件
3、执行测试计划

起步

添加元件

方式一:添加

界面左侧,测试计划(Test Plan)右键,添加(add),选择需要的元件,一般来说都是先添加线程组

添加元件

方式二:合并

如果有之前定义的元件及配置,这次可以使用到,可以在需要添加之前配置的元件上右键,点击合并选项

方式三:打开

打开之前定义的元件及配置文件,打开文件将会覆盖现有的元件及配置,请确保已经保存,否则将会丢失现有左侧元件树中的元件及配置

移除元件

选择要删除的元件,右键,点击删除(Remove)选项

调整元件及顺序

选中要调整的元件,长按鼠标左侧,即可上下移动,调整元件的位置及顺序

保存测试计划

最新版JMeter这一步不是必须的,为了减少以后的重复配置,所以最好将测试计划保存下来,下次直接打开即可使用

菜单栏(Menu Bar)-> 文件 (File)-> 保存(Save)或 保存测试计划为(Save Test Plan as)

运行测试计划

菜单栏(Menu Bar)-> 运行(Run)-> 启动(Start)或 不停顿启动(Start no pauses)

或者是工具栏中绿色箭头,启动(Start)和不停顿启动(Start no pauses)

ps: 仅当调试测试计划时,才应使用GUI模式。要运行实际负载测试,请使用命令行(CLI)模式。

停止测试计划

菜单栏 -> 运行 -> 停止(Stop)或 关闭(Shutdown)

或菜单栏,启动按钮右侧按钮,停止(Stop)和关闭(Shutdown)

两种停止的区别
停止(Stop):立即停止,如果线程或采样器正在运行,将会提前结束
关闭(Shutdown):等待当前线程或采样器执行结束后停止

各类元件及作用

在添加元件时,我们可以看到,元件分为线程(用户)、取样器、配置元件、监听器、定时器、前置处理器、后置处理器、断言等

线程(用户)

线程是一切测试计划的起点,所有的控制器和采样器必须放在线程组下,其他一些组件,比如监听器,可以直接放在测试计划下。放在线程组下,是监听当前线程组的执行结果,放在测试计划下,是监听测试计划下所有线程组的执行结果。

取样器

取样器告诉JMeter向服务器发送一个请求并等待响应。它们将按照它们在树中出现的顺序进行处理。控制器可用于修改取样器的重复次数。

JMeter包括以下采样器:FTP、HTTP(可用于WebService)、JDBC、Java对象、JMS、JUnit Test、LDAP、Mail、OS Process、TCP等

你可以通过向测试计划添加一个或多个配置元件来进一步定制采样器。

如果你打算发送多个同类型请求到服务器,考虑使用默认配置元件。

逻辑控制器

逻辑控制器允许您自定义JMeter用来决定何时发送请求的逻辑。逻辑控制器可以更改来自其子元件的请求顺序。它们可以修改请求本身,使JMeter重复请求,等等。

配置元件

配置元件与取样器配合使用。它可以添加或修改请求的配置信息,例如,配置配置HTTP请求头,Cookie等信息

监听器

请注意,所有监听器都保存相同的数据;唯一的区别在于数据在屏幕上的显示方式,可以以图表或表格等不同的形式进行展示

监听器可以添加到测试中的任何地方,包括直接放到测试计划下。他们将收集同级别或比他们级别低的元件的数据。

定时器

默认情况下,JMeter线程按顺序执行采样器而不暂停。我们建议您通过向线程组添加一个可用定时器来指定延迟。如果不增加延迟,JMeter可能会在很短的时间内发出过多的请求,从而使服务器崩溃。

定时器将使JMeter在其范围内的每个采样器之前延迟一定的时间。

前置处理器

前置处理器在发出取样器请求之前执行一些操作。如果前置处理器连接到取样器元件,那么它将在该取样器元件运行之前执行。前置处理器最常用于在示例请求运行之前修改其设置。

后置处理器

后置处理器在发出采样器请求后执行某些操作。如果后置处理器连接到取样器元件,那么它将在该取样器元件运行后立即执行。后置处理器最常用于处理响应数据,通常用于从中提取值。

断言

断言允许你断言有关从被测试服务器收到的响应。使用断言,你可以“测试”您的应用程序是否返回你期望的结果。

例如,你可以断言对查询的响应是否包含某些特定文本。

你可以向任何采样器添加断言。例如,你可以向HTTP请求添加一个断言,以检查文本“</HTML>”。然后,JMeter将检查HTTP响应中是否存在文本。如果JMeter找不到文本,那么它会将此标记为失败的请求。

请注意,断言适用于其范围内的所有采样器。要将断言限制为单个采样器,请将断言添加为采样器的子级。

元件的执行顺序

配置元件
前置处理器
定时器
取样器
后置处理器
断言
监听器

构建Web测试计划

新建测试计划

菜单栏 -> 文件 -> 新建

如果不想叫测试计划,可以取个更贴切的名字,我这里就叫Web测试计划Demo

测试计划

添加线程(用户)

第一步,先添加线程组元件。线程组告诉JMeter你想要模拟的用户数量,用户发送请求的频率和他们应该发送多少请求。

给线程组起一个更具描述性的名字,例:JMeter用户

下一步,增加用户(线程)数到5,模拟5个用户。也可以调整Ramp-Up时间和循环次数


添加线程组

添加默认的HTTP请求属性

定义完用户之后,下一步就是定义要指定的任务了。

线程组右键,添加,配置元件,HTTP请求默认值。

如果线程组下有多个请求,我们不想在每个请求处配置主机信息(域名或IP地址),我们就可以添加一个HTTP请求属性,所有的请求都会采用请求属性中配置的信息。

HTTP请求属性

添加Cookie支持

几乎所有的web测试都应该使用cookie支持,除非你的应用明确不需要cookie。给线程组添加一个HTTP Cookie Manager,确保每个线程组有自己的cookie,但是可以在每个线程组内所有的HTTP 请求对象间共享。

添加HTTP请求

给JMeter Users元件添加第一个HTTP请求,添加-> 采样器 -> HTTP 请求,之后选择HTTP请求元件,编辑以下属性

修改名称字段为: “Home Page”
设置路径字段为 "/"。我们不需要设置服务器名称字段,因为我们已经在HTTP请求默认值元件中进行了配置。

我们这里路径只配置了"/",是因为我们已经配置了通用的请求属性

Home Page

下一步,添加第二个HTTP请求元件
修改名称为"Changes"
设置Path字段为 "/changes.html"

Changes

添加监听器查看测试结果

可以随便添加几个监听器,看下不同的监听器的展示结果,我这里只添加一个查看结果树监听器

监听器结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 229,406评论 6 538
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 99,034评论 3 423
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 177,413评论 0 382
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 63,449评论 1 316
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 72,165评论 6 410
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 55,559评论 1 325
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 43,606评论 3 444
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,781评论 0 289
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 49,327评论 1 335
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 41,084评论 3 356
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 43,278评论 1 371
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,849评论 5 362
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 44,495评论 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,927评论 0 28
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 36,172评论 1 291
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 52,010评论 3 396
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 48,241评论 2 375

推荐阅读更多精彩内容

  • 基础知识: 认识jmeter: JMeter是Apache组织开发的基于Java的压力测试工具。具有开源免费、框架...
    风夜南阅读 1,022评论 0 0
  • 一.性能测试工具选择 *考虑以下几点 成本(Loadrunner license成本高) a.工具成本b.学习成本...
    Caesar_emperor阅读 179评论 0 0
  • 零成本实现web性能测试---第二章 一、jmeter常用术语 1.采样器 2.逻辑控制器 3.监听器 4.配置元...
    eosclover阅读 219评论 0 1
  • Jmeter Jmeter的安装: 安装jdk以及配置相对应的环境变量(jmeter3.*一下JDK8一下版本)J...
    迪子也重名阅读 483评论 0 0
  • 摘要: 说起接口性能测试,大家第一个想到的应该就是JMeter这个厉害的工具了吧,但是这个工具是什么呢,包含什么功...
    Vicky_习惯做唯一阅读 1,087评论 0 1