微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JMeter学习一

学习笔记-JMeter

笔记目录:https://blog.csdn.net/weixin_42717928/article/details/114343085

昨天下了雨,今天刮了风,明天太阳就出来了

目录

简单了解

下载与安装

工具使用

创建测试任务

添加HTTP请求

添加HTTP Header

添加查看结果树


一:简单了解

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
================================================================================

如果想汉化:

Jmeter 长期汉化(修改后,重启认为中文简体版)

修改bin下的配置文件 jmeter.properties,加上language = zh_CN 

三:工具使用

(1)创建测试任务

JMeter中,任何类型的测试都要先创建线程组(任何内容都放在线程组中),一个线程组可以看出是一个测试任务

  • setup线程组:用于执行预测试操作。这些线程的行为完全像一个正常的线程组元件;类似LR中的init

如:测试数据库,用于执行打开数据库连接操作

  • teardown线程组:用于执行测试后动作。这些线程的行为完全像一个正常的线程组元件。类似LR中的end

如:测试数据库,用于执行关闭数据库连接操作

 

在取样器错误后要执行的动作:就是在错误之后要如何执行

  • 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加密的密码):

  •  在JMeter输入,这个HTTP是POST方法,且有Body,在Body Data输入参数内容

  • 添加HTTP信息头管理器,将fiddler复制的请求头粘贴进来

  • 运行查看结果,会让你保存,从响应可以看到,password被散列(hash)后,变成了如下所示

 

原文地址:https://blog.csdn.net/weixin_42717928/article/details/119297158

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐