学习笔记-JMeter
笔记目录:https://blog.csdn.net/weixin_42717928/article/details/114343085
昨天下了雨,今天刮了风,明天太阳就出来了
目录
一:简单了解
Apache JMeter是基于java的压力测试工具。
JMeter可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。
二:下载与安装
1:首先要安装jdk
2:jmeter下载地址:http://jmeter.apache.org/download_jmeter.cgi
(Windows版本下载.zip,Linux版本下载.tgz)
解压后是这样的
未配置jmeter环境变量时,启动jmeter方法
双击运行出现这个Warning
原因:JMeter未注册表项。解决方法:以管理员身份运行程序的时候会自动创建注册表相关项(下一次就不用了)
启动Jmeter时候,提示信息如下:
================================================================================
Don't use GUI mode for load testing !, only for Test creation and Test debugging.
For load testing, use CLI Mode (was NON GUI):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
& increase Java Heap to meet your test requirements:
Modify current env variable HEAP="-xms1g -Xmx1g -XX:MaxMetaspaceSize=256m" in the jmeter batch file
Check : https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
中文翻译如下:
================================================================================
不要使用GUI模式进行负载测试!此模式仅适用于测试创建和测试调试。
对于负载测试,请使用CLI模式(NON GUI模式):
jmeter -n -t [jmx file] -l [results file] -e -o [Path to web report folder]
并且增加Java堆以满足您的测试要求:
在jmeter.bat/jmeter.sh文件修改当前的env变量HEAP="-xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"
具体请查看官方文档:https://jmeter.apache.org/usermanual/best-practices.html
================================================================================
如果想汉化:
修改bin下的配置文件 jmeter.properties,加上language = zh_CN
三:工具使用
(1)创建测试任务
JMeter中,任何类型的测试都要先创建线程组(任何内容都放在线程组中),一个线程组可以看出是一个测试任务
- 先新建一个测试计划
- 创建线程组
- Contiune:继续。某一个请求遇到错误后,其他请求继续执行。在大量用户并发的时候,某个请求失败属正常现象
- Start Next Thread Loop:遇到错误后面的请求将不再执行,等下一轮再开始执行。例如线程组中包含登录和点赞2个请求,若登录请求失败,点赞请求将不再执行,等下一次重新迭代,从登录开始执行
- Stop Thread:遇到错误就停止线程再也不执行了。例如线程组中有50个线程,其中某一个线程的某个请求遇到错误即停止线程不再执行,剩下49个线程继续执行。若线程错误的比较多,剩余的线程就较少,此时负载数量就不足了,测试结果不满足测试要求,因此一般不会勾选此项。
- Stop Test:某个线程某个请求遇到错误,停止所有线程,也就是停止整个测试,但是线程中的余下的请求还是会执行完再停止。例如线程1中包含登录和点赞2个请求,其他线程遇到错误,现在要全部停下来,线程1点赞请求还是会执行,然后再停止测试。
- Stop Test Now:遇到错误立即停止所有线程,即整个测试。
Ramp-up Period (in Seconds):设置线程启动时长,单位s;假设线程数是50,启动时长是2s,则表示2s启动50个线程,那么平均每秒启动25个线程
循环次数:每个线程发送请求的次数;假设这个线程组有3个HTTP请求,循环是3,则表示一个线程会发送9个HTTP请求;如果选择永久,所有线程无限循环发送请求
Delay Thread creation until needed:延迟线程的创建直到需要
调度器:选中可配置持续时间(测试计划持续多久)和启动延迟(点击启动按钮后,仅初始化场景,不运行线程,等待延时时间到才运行)
(2)添加HTTP请求
参数说明:
- 协议:如http/https,大小写不敏感,默认http
- 服务器名称或IP:http请求发送的目标服务器域名或者IP,比如http://www.baidu.com
- 端口号:目标服务器的端口号,默认值为80,可不填
- 请求方式:如GTE/POST(参考:https://blog.csdn.net/weixin_42717928/article/details/118066428)
- 路径:目标的URL路径(不包括服务器地址和端口)
- Content encoding:内容的编码方式(Content-Type=application/json;charset=utf-8)
- 自动重定向:选中该项,发出的http请求得到响应是301/302,jmeter会重定向到新的界面
- Use keep Alive:jmeter 和目标服务器之间使用 Keep-Alive方式进行HTTP通信(默认选中)
- Use multipart/from-data for HTTP POST :当发送HTTP POST 请求时,使用该项
- Parameters、Body Data、Files Upload:(使用哪种看HTTP信息头管理器中Content-Type类型)
(3)添加HTTP Header
记得删除Host(我这就复制了Host,需要要手动删掉),因为JMeter会自动帮你添加
(4)添加查看结果树
简单例子(在响应查看被MD5加密的密码):
- 登录http://www.md5.cz ,输入password,抓包可以看到请求报文
- 添加查看结果树
- 运行查看结果,会让你保存,从响应可以看到,password被散列(hash)后,变成了如下所示
原文地址:https://blog.csdn.net/weixin_42717928/article/details/119297158
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。