简介
JMeter是开源软件Apache基金会下的一个性能测试工具,用来测试部署在服务器端的应用程序的性能。而且它是开源的,不花钱!
JMeter下载和安装
JMeter可以在JMeter的官方网站下载,下载链接如下图所示
https://jmeter.apache.org/ 运行jemeter之前要安装jdk环境,这个大家自己安装,下个jdk配个环境变量就行了。
话分两头,回到jemeter这里
下载后解压到你系统下的任意目录,然后运行 (你的jemeter安装目录)/bin/jmeter.bat
文件。
运行成功后
入门jemeter使用
如下图所示,右击“测试计划”>添加>Threads(Users)>线程组。这里xmeter君需要解释一下“线程组”的意思:JMeter是由Java实现的,并且使用一个Java线程来模拟一个用户,因此线程组(Thread Group)就是指一组用户的意思,换句话说一个线程组就是一组虚拟用户(virtual users),这些虚拟用户用来模拟访问被测系统。
添加完之后介绍一下几个基本参数配置:
- number of threads
(线程数):这里就是指虚拟用户数,默认的输入是“1”,则表明模拟一个虚拟用户访问被测系统,如果想模拟100个用户,则此处输入100。 - Ramp-Up Period (seconds) :
虚拟用户增长时长。不明白别着急,给你举个栗子:比如你测试的是一个考勤系统,那么实际用户登录使用考勤系统的时候并不是大家喊1、2、3 -
走起,然后一起登录。实际使用场景可能是9点钟上班,那么从8:30开始,考勤系统会陆陆续续有人开始登录,直到9:10左右,那么如果完全按照用户的使用场景,设计该测试的时候此处应输入40(分钟)* 60(秒)= 2400
。但是实际测试一般不会设置如此长的Ramp-Up时间,原因嘛,难道你做一次测试要先等上40分钟做登录操作?一般情况下,可以估计出登录频率最高的时间长度,比如此处可能从8:55到9:00登录的人最多,那这里设置成300秒,如果“线程数”输入为100,则意味着在5分钟内100用户登录完毕。 - loop count:
该处设置一个虚拟用户做多少次的测试。默认为1,意味着一个虚拟用户做完一遍事情之后,该虚拟用户停止运行。如果选中“infinite”(永不停止),则意味着测试运行起来之后就根本停不下来了,除非你把它强制咔嚓。
如果要让这些线程不间断的执行,只要选择Loop count中的infinite.通常同时会限定一个持续的时间Duration
demo
让50个线程在60秒内不间断的请求
还有种情况是需要模拟用户在一个页面上停留1秒
在http请求上右键然后添加constant timer 1000毫秒
添加被测页面(这里以http请求为例)
接下来需要设置一下“HTTP请求” Sampler的属性,如下所示:
1)name:自己定义,就是被测试网页的描述性文字
2) protocol: 协议为http
3)server name or IP:被测服务器的网站名字,也可以是IP地址。剩下的属性可以按照被测系统的属性按需配置,现在都可以为空。
4)port number :端口
5) path:就是ip后面的url,即controller
下面可以选择http request
请求是get还是post
post且要定义参数的可以自己定义
在并发测试的时候添加一个计数器
参数解释
在http
请求体里使用这个计数器
对http的请求头进行设置
比如我下面设置了http请求头的contentType
为application/json
查看测试日志
直接查看Log Viewer
查看更详细的测试结果可以用结果监听器
右击“线程组” > “监听器” > “察看结果树”来查看性能测试过程中请求和响应信息。
threadGroup -> listener -> view results tree