1. 下载JMeter包,而后直接解压值电脑某个地方:web
https://jmeter.apache.org/download_jmeter.cgiapache
如今最新的版本是4.0了,可是我是用3.3版本为例子给你们演示一遍如何建立性能测试Project并添加测试用例的哈。浏览器
2. 如何打开JMeter呢?服务器
方式一: 双击Jmeter解压之后bin目录下的ApacheJMeter.jar文件就能够打开了。cookie
方式二:在cmd窗口输入jmeter,而后回车,就会自动打开应用界面:多线程
固然,这种方式可能不太好,由于万一关掉这个cmd窗口了,这个JMeter程序就自动退出了,因此建议第一种。并发
若是以为每次都去这个目录下面打开程序不方便,那就右键该jar包->发送至桌面快捷方式,而后每次都双击桌面上的快捷方式就能够了哦。app
3. JMeter的工做原理是什么?工具
The Apache 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. 如何快速建立一个测试用例呢?
我这里设置20个用户一块儿并发,而且一个线程有错误的话也继续执行下一个线程。
而后添加Basic 信息:
上图具体什么意思,我想作过API测试的都知道,因此就很少强调了。
不过必定要注意:
Server Name or IP必定要去掉“http://“这个URL前缀哈。
Path就是去掉protocol, server name以后剩下的URL部分。
Port Number看本身测试的URL是否有来决定是否添加。
Method就是Get , Post之类的了。
具体的URL中的参数能够直接放到Path里,也能够添加到下面的Parameters区域哈。
好比说Header:
好比说从csv文件中读取参数而且参数化:
好比说添加Response Assertion断言:
JMeter每次只能打开一个Test Plan,
每一个Test Plan至针对一个Test API,
一个Test API能够有多个测试情景,
一个测试情景对应一个Thread Group,
一个Thread Group能够看作一个Test Case。
一个Thread Group的测试结果能够用多个结果查看器(Listener)展现。
Listener添加越多,该Test Plan执行起来就耗时越久。
一. Summary Report : 是最经常使用最直接的展现组件:
每一个Case都会在这里有一行结果。
另外会加上总的Test Plan的执行结果。
我没有执行,因此这里是空的。
二. View Results Tree : 用来查看每一个线程请求的具体信息 :
若是执行了,这里的结果就是每一个URL测试状况,相似Postman或者在浏览器控制台看到的请求列表。
这个组件在debug的时候很必要,可是调试完了就Disable吧,太费时。。。
我还添加了别的展现组件,这个是JMeter没有的,我下载的其余插件。具体如何操做请看个人另外文章,由于这个内容太多了。
谢谢阅读哦~~