JMeter基础知识入门

摘要: 说起接口性能测试,大家第一个想到的应该就是JMeter这个厉害的工具了吧,但是这个工具是什么呢,包含什么功能呢?

1. 下载JMeter包,然后直接解压值电脑某个地方:

https://jmeter.apache.org/download_jmeter.cgi

现在最新的版本是4.0了,但是我是用3.3版本为例子给大家演示一遍如何创建性能测试Project并添加测试用例的哈。

2. 如何打开JMeter呢?

方式一: 双击Jmeter解压以后bin目录下的ApacheJMeter.jar文件就可以打开了。

方式二:在cmd窗口输入jmeter,然后回车,就会自动打开应用界面:

当然,这种方式可能不太好,因为万一关掉这个cmd窗口了,这个JMeter程序就自动退出了,所以建议第一种。

如果觉得每次都去这个目录下面打开程序不方便,那就右键该jar包->发送至桌面快捷方式,然后每次都双击桌面上的快捷方式就可以了哦。

3. JMeter的工作原理是什么?

TheApache 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.

Apache JMeter may be used to test performance both on static and dynamic resources, Web dynamic applications.

It can be used to simulate a heavy load on a server, group of servers, network or object to test its strength or to analyze overall performance under different load types.

JMeter is not a browser, it works at protocol level. As far as web-services and remote services are concerned, JMeter looks like a browser (or rather, multiple browsers); however JMeter does not perform all the actions supported by browsers. In particular, JMeter does not execute the Javascript found in HTML pages. Nor does it render the HTML pages as a browser does (it's possible to view the response as HTML etc., but the timings are not included in any samples, and only one sample in one thread is ever displayed at a time).

就是说Jmeter工作在协议层,能够不启动应用程序,而只是在后台模拟应用程序发送的协议请求给服务器。

Jmeter应用程序本身只是一个进程,它所控制的是很多线程。

具体怎么发送请求就看你对这个API的模拟参数设置了,例如:

情景一:测试某个API在30个(或非常多个)用户同时并发请求时的情景,记录服务器各项性能指标。

情景二:测试某个API在某段时间内持续不间断被多个用户访问时的场景,记录服务器各项性能指标。

4. JMeter包含哪些基本功能块呢?

一:各种元器件:(右键Test Plan->Add,所有的菜单都有子菜单,这些都是元器件)

Thread : 用来定义你是准备用什么测试场景去测一个功能点,性能测试是在功能测试之上的,所以说性能测试的时候,是一定要有功能测试用例的哦,然后你就根据这个用例选定Thread 类型。

Config Element : 是用来给Test Plan或者Test API添加各种类型参数,header,cookie之类的。

Timer : 顾名思义,就是定时器喽。

Pre Processors :  就是在进程启用以前要做的一些预处理操作了。

Post Processors : 就是在进程结束以后要做的一些善后操作了。

Assertions : 就是一个线程的断言,程序并不能自己去判断一个现成怎样才是成功或者失败,所以需要我们去干涉一下。

Listener : 就是对Thread Group的监听。因为一个线程组有很多性能参数,每次都要把数据保存并且进行一些简单的处理,才能转换成我们肉眼可以看懂的table,chart之类的信息。这个获取响应参数并且转换过程就可以认为是Listener要做的事情了。

二: 工具条:

可以让我们快速对项目或者线程组进行一些操作,并且在最右侧的0/170部分是显示 “我们这次一共有多少个线程,现在还剩下多少个没运行“ 。

感叹号那里提示有多少个错误。

时间那一块提示我们花了多长时间来运行选择的Test Plan。

扫把那里就是清除之前的结果记录。

三 : 最上面的菜单我就不多说了,自己点吧。

四 : 工作区:

5. 如何快速创建一个测试用例呢?

1. 邮件测试计划-》添加一个线程组-》修改线程组基本设置或者直接使用默认值:

我这里设置20个用户一起并发,并且一个线程有错误的话也继续执行下一个线程。

2.添加一个HTTP协议的request请求:

然后添加Basic 信息:

上图具体什么意思,我想做过API测试的都知道,所以就不多强调了。

不过一定要注意:

Server Name or IP一定要去掉“http://“这个URL前缀哈。

Path就是去掉protocol, server name之后剩下的URL部分。

Port Number看自己测试的URL是否有来决定是否添加。

Method就是Get , Post之类的了。

具体的URL中的参数可以直接放到Path里,也可以添加到下面的Parameters区域哈。

3. 添加HTTP Request相关的元器件:

比如说Header:

比如说从csv文件中读取参数并且参数化:

比如说添加Response Assertion断言:

4. 若是针对这一个API有多个测试情形,就添加多个Thread Group哦。

JMeter每次只能打开一个Test Plan,

每个Test Plan至针对一个Test API,

一个Test API可以有多个测试情景,

一个测试情景对应一个Thread Group,

一个Thread Group可以看做一个Test Case。

一个Thread Group的测试结果可以用多个结果查看器(Listener)展示。

Listener添加越多,该Test Plan执行起来就耗时越久。

5. 对所有的Thread Group来个统计并展示统计结果:

一. Summary Report : 是最常用最直接的展示组件:

每个Case都会在这里有一行结果。

另外会加上总的Test Plan的执行结果。

我没有执行,所以这里是空的。

二. View Results Tree : 用来查看每个线程请求的具体信息 :

如果执行了,这里的结果就是每个URL测试情况,类似Postman或者在浏览器控制台看到的请求列表。

这个组件在debug的时候很必要,但是调试完了就Disable吧,太费时。。。

我还添加了别的展示组件,这个是JMeter没有的,我下载的其他插件。具体如何操作请看我的另外文章,因为这个内容太多了。

谢谢阅读哦~~

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

推荐阅读更多精彩内容

  • 在使用Jmeter进行接口的性能测试时,由于Jmeter 是JAVA应用,对于CPU和内存的消耗比较大,所以,当需...
    燕京博士阅读 4,159评论 0 16
  • 主要文体来自 CDNS:https://www.cnblogs.com/ceshisanren/p/5639895...
    Amano阅读 10,960评论 3 27
  • 笔者混迹于测试行业挺长一段时间了,一直想写一篇关于软件测试人员危机感的文章,但苦于工作原因迟迟未下笔。最近终于有...
    Tomandy阅读 1,550评论 4 17
  • 小时候, 过年是期盼已久的新衣裳, 过年是几毛钱的压岁钱, 过年是热闹的锣鼓和社火, 过年是吃在嘴里的糖葫芦。 现...
    非洲鲫鱼阅读 308评论 1 5
  • 最近封装一个网络请求库的时候,观摩别人的代码时候发现用到了很多ES6语法,确实很实用,总结如下: 变量的解构赋值(...
    LazzMan阅读 2,552评论 0 1