Jmeter入门笔记
一、什么是Jmeter
Apache JMeter是Apache组织开发的基于Java的压力测试工具,能够对HTTP和FTP服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过JDBC)。
也就是可以对指定url进行大量访问的一个压力测试工具。
二、Jmeter的用法
1.从官网下载Jmeter压缩包并解压(apache-jmeter-5.3.zip):
http://jmeter.apache.org/download_jmeter.cgi
2.解压完成后,找到jmeter.bat,双击启动(需要jdk1.8),路径样例如下:
D:\apache-jmeter-5.3\bin\jmeter.bat
3.右击Test Plan,选择Add->Threads(Users)->Thread Group,添加一个线程组。
4.选中Thread Group,右侧的Number of Threads(users)可以设置线程数;Ramp-up period(seconds)可以设置多长时间启动所有线程;Loop Count表示循环执行线程多少次,选中infinite表示无限循环执行线程。
5.右击Thread Group,选择Add->Sampler->HTTP Request,添加一个Http请求
6.选中HTTP Request,右侧可以设置请求相关参数,Protocol可以设置请求协议(如图https),Server Name or IP可以设置服务器根路径,Port Number可以设置请求的端口,"GET"字样的下拉菜单可以设置请求方式(GET或POST等),Path可以设置服务器的子路径;
Follow Redirects选中后,发送这个请求时,如果页面被重定向,收到的响应会显示重定向后的内容;取消选中后,收到的响应则是重定向前的内容;
下方的Paramters可以填写键值对参数,Body Data可以填写json格式参数,需要注意这两个只能二选一,如果Paramters中有参数,则无法使用Body Data,反之同样。
如图,最后这个请求要访问的地址为(端口没有填,使用服务器默认端口):
【https://blog.csdn.net/BHSZZY】
7.右击Thread Group,选择Add->Listener->View Results Tree,添加一个响应结果树。
8.点击启动按钮(上方的绿色三角按钮),就会发送刚才写好的Http请求,就可以在View Results Tree中看到响应报文了。
可以在右侧Sample result、Request、Response data栏中查看请求与响应的详细信息。
9.可以将这个Jmeter测试用例保存,保存后的文件格式为jmx。
三、Jmeter的用法(续)
1.右击TestPlan,选择Add->Config Element,其中常用的选项有:
CSV Data Set Config,可以从csv文件中读取参数,在请求参数中使用;
HTTP Header Manager,可以设置请求的请求头(Content-Type等);
HTTP Cookie Manager,可以设置请求的cookie信息(jsessionid等);
HTTP Cache Manager,可以设置缓存来模拟浏览器缓存功能;
HTTP Request Defaults,可以设置请求默认格式,例如默认参数等。
这些配置可以作为测试计划的全局设置使用(TestPlan),也可以移动到某个线程组(Thread Group)使用。
2.csv文件可以用Excel打开与编写,也可以用txt查看,如图:
3.在Jmeter中创建CSV Data Set Config后,选中,然后在右侧填写配置内容,可参考下图:
Filename为csv文件的路径,图中jmx与csv同目录,因此为【./1.csv】;
File encoding为csv文件的编码格式,图中为【utf-8】;
Variable Names是给csv中每列起个名字,逗号分隔,图中为【id,name】;
Ignore first line为【true】,表示忽略csv的第一行(也可以为false)。
4.配置好CSV后,选中HTTP Request,在参数栏中可以使用${}的形式,使用csv中的参数发送请求,每发一次请求使用一行的参数,如下:
发送后的结果为(get形式):
5.如果要发送json格式的请求参数,则需要写在Body Data栏中,如下(先删除Parameters中的参数,才能选择Body Data标签):
发送后的结果为:
四、总结
由于工作需要,最近本人才开始接触Jmeter,目前也就是写点测试用例,对java后台接口进行些测试;
用到的相关知识也就是从csv中取参数进行压测而已,还没有用到更复杂的内容;
因此本文属于Jmeter入门笔记,还请大佬忽略。