【性能测试】JMeter性能测试(一)-入门篇

【性能测试】JMeter性能测试(一)-入门篇Jmeter性能测试一、Jmeter介绍二、准备工作-安装2.1、依赖jdk,jdk安装2.2、JMeter安装三、JMeter中常用功能释义3.1、测试计划3.1、线程组四、如何使用JMeter3.1、切换中英文模式3.1、添加‘测试计划’3.1.1、在‘测试计划’中添加‘线程组’3.1.2、在‘测试计划’中添加‘HTTP请求默认值’3.1.3、在‘测试计划’中添加‘查看结果树’3.1.4、在‘…

一、Jmeter介绍

官网:Jmeter

Apache JMeter是Apache组织开发的基于Java的开源压力测试工具。用于对软件做压力测试。

Apache JMeter的功能包括:

  • 能够加载和性能测试许多不同的应用程序/服务器/协议类型:
    1、网络-HTTP,HTTPS(Java,NodeJS,PHP,ASP.NET等)
    2、SOAP / REST Web服务
    3、FTP
    4、通过JDBC的数据库
    5、LDAP
    6、通过JMS的面向消息的中间件(MOM)邮件-SMTP(S),POP3(S)和IMAP(S)
    7、本机命令或Shell脚本
    8、TCP协议
    9、Java对象
  • 功能齐全的Test IDE,可进行快速的Test Plan 记录(来自浏览器或本机应用程序),构建和调试。
  • CLI模式(命令行模式(以前​​称为Non GUI)/无头模式)可从任何Java兼容的操作系统(Linux,Windows,Mac OSX等)加载测试
  • 完整且随时可以呈现的动态HTML报告
  • 通过从大多数流行的响应格式,HTML,JSON, XML或任何文本格式中提取数据的能力,轻松实现关联
  • 完全的可移植性和100%Java纯度。
  • 完整的多线程框架允许通过多个线程进行并发采样,并通过单独的线程组同时对不同的函数进行采样。
  • 缓存和脱机分析/重放测试结果。
  • 高度可扩展的核心:
    1、可插拔采样器允许无限的测试功能。
    2、可脚本化的采样器(与Groovy和BeanShell 等JSR223兼容的语言)
    3、可以通过可插入计时器选择几个负载统计信息。
    4、数据分析和可视化插件可实现出色的可扩展性和个性化。
    5、函数可用于为测试提供动态输入或提供数据处理。
    6、通过针对Maven,Gradle和Jenkins的第三方开源库轻松进行持续集成。

二、准备工作-安装

2.1、依赖jdk,jdk安装

JMeter与Java 8或更高版本兼容。

  • 下载

下载方式一官网下载地址.

嫌注册下载麻烦的可以使用方式二获取
在这里插入图片描述
根据自己的使用环境,下载对应的jdk:
在这里插入图片描述
下载方式二

链接:https://pan.baidu.com/s/1cOVLkxLH5_cHrigg3AxoBQ
提取码:kgi9
在这里插入图片描述

  • 安装下载的JDK
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 配置系统环境变量
    在这里插入图片描述

新建变量名:JAVA_HOME ,变量值为 jdk 的安装路径。
在这里插入图片描述

新建变量名:CLASSPATH ,变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
在这里插入图片描述
找到Path变量,双击编辑 Path变量
在值得最后增加;%JAVA_HOME%\bin
在这里插入图片描述

验证是否安装配置正确
打开cmd,输入java -version
在这里插入图片描述

2.2、JMeter安装

链接: 官网下载地址.
在这里插入图片描述
下载完成后解压zip包
在这里插入图片描述
进入apache-jmeter-5.2.1\bin,双击jmeter.bat
在这里插入图片描述
在这里插入图片描述

三、JMeter中常用功能释义

JMeter里面的元件很多,逻辑控制器,配置元件,定时器,Sampler,监听器等等,先给出一个实例,慢慢了解元件的使用方法。测试一个网站,我们至少需要:用户,发送请求,查看结果这三个过程。

3.1、测试计划

本节描述测试计划的不同部分。

最少的测试将包括测试计划,线程组和一个或多个采样器。

测试计划对象具有一个称为“ 功能测试 ” 的复选框。如果选择该选项,它将使JMeter记录每个样本从服务器返回的数据。如果您在测试侦听器中选择了文件,则此数据将被写入文件。如果要进行少量运行以确保正确配置JMeter并确保服务器返回预期结果,这将很有用。结果是文件将快速增长,JMeter的性能将受到影响。如果要进行压力测试,则应禁用此选项(默认情况下处于禁用状态)。

如果您没有将数据记录到文件中,则此选项没有区别。

您还可以使用侦听器上的“ 配置”按钮来确定要保存的字段。

3.2、线程组

线程组元素是任何测试计划的起点。所有控制器和采样器必须在线程组下。其他元素(例如,侦听器)可以直接放在测试计划下,在这种情况下,它们将应用于所有线程组。顾名思义,线程组元素控制JMeter将用于执行测试的线程数。线程组的控件使您可以:

设置线程数
设置加速时间
设置执行测试的次数
每个线程将完整地执行测试计划,并且完全独立于其他测试线程。多个线程用于模拟与服务器应用程序的并发连接。

加速期告诉JMeter将“加速”到所选线程的总数需要多长时间。如果使用了10个线程,并且启动周期为100秒,那么JMeter将花费100秒来启动和运行所有10个线程。每个线程将在上一个线程开始后10(100/10)秒开始。如果有30个线程,启动周期为120秒,则每个连续线程将延迟4秒。

升级需要足够长的时间,以避免在测试开始时工作量过大,还应足够短,以使最后一个线程在第一个线程完成之前开始运行(除非有人希望这样做)。

从“ Ramp-up =线程数”开始,然后根据需要向上或向下调整。

默认情况下,线程组配置为在其元素之间循环一次。

线程组还提供了一个调度程序。单击“线程组”面板底部的复选框以启用/禁用其他字段,您可以在其中输入测试持续时间,启动延迟,运行的开始和结束时间。您可以配置持续时间(秒)和启动延迟(秒)来控制每个线程组的持续时间以及启动后的秒数。当测试开始时,JMeter将在启动线程组的线程之前等待启动延迟(秒),然后运行配置的持续时间(秒)。请注意,这两个选项会覆盖“ 开始时间”和“ 结束时间”。

另外,您也可以使用其他两个字段Start time和End time(尽管不建议这样做,因为它不太灵活)。测试开始时,如有必要,JMeter将等待直到达到启动时间。在每个周期的末尾,JMeter会检查是否已达到结束时间,如果已结束,则运行将停止,否则,将允许测试继续进行直到达到迭代限制。

四、如何使用JMeter

4.1、切换中英文模式

在这里插入图片描述

4.2、添加‘测试计划’

具体操作:添加测试计划,并且可以自定义计划名称
在这里插入图片描述

4.2.1、在‘测试计划’中添加‘线程组’

线程组名自定义,可以根据业务来命名。
在这里插入图片描述
比如:这里我设置10个线程,一直循环发请求
在这里插入图片描述

4.2.2、在‘线程组’中添加‘HTTP请求’

在这里插入图片描述

一般会添下面的一些内容,路径填写请求ur中l除了ip+port的后面的部分,举例:

在这里插入图片描述

4.2.3、在‘线程组’中添加‘HTTP信息头管理器’

在这里插入图片描述

举例:
在这里插入图片描述

4.2.4、在‘线程组’中添加‘查看结果树’

发送请求的响应结果,会在这里显示

在这里插入图片描述

示例:
在这里插入图片描述

4.2.4、在‘线程组’中添加‘图形结果’

在这里插入图片描述

4.2.5、在‘线程组’中添加‘聚合报告’

在这里插入图片描述

在这里插入图片描述

4.3、执行

你还可以根据自己的需要添加别的功能进来。添加设置完后,执行
在这里插入图片描述

示例

在这里插入图片描述

4.4、定制

4.4.1、配置“线程组”间串行

举例:执行完“线程组1”内的所有请求才执行“线程组2”下面的所有请求
在这里插入图片描述

4.4.2、添加”临界部分控制器”控制线程组同一时间只能执行一个

临界部分控制器根据锁名来控制并发,同一个锁名之下,在同一时间点只能存在一个运行中,适用于控制并发的场景

和5.1.1的差别是:可能会出现“线程组1 :请求1.1“—–》“线程组2:请求2.1”—-》“线程组2 :请求2.2“—–》“线程组1:请求1.2”这种顺序。
在这里插入图片描述

二、常见报错解决办法

如果安装的JDK版本过高在使用jemter时可能会出现下面的报错:


Uncaught Exception java.lang.IllegalAccessError: class com.github.weisj.darklaf.ui.filechooser.DarkFilePaneUIBridge$DetailsTableModel (in unnamed module @0xd83da2e) cannot access class sun.awt.shell.ShellFolder (in module java.desktop) because module java.desktop does not export sun.awt.shell to unnamed module @0xd83da2e in thread Thread[AWT-EventQueue-0,6,main]. See log file for details.
Uncaught Exception java.lang.NoClassDefFoundError: Could not initialize class org.apache.jmeter.gui.util.FileDialoger in thread Thread[AWT-EventQueue-0,6,main]. See log file for details.

解决办法:
apache-jmeter-5.4.3\bin\jmeter.bat文件,增加一段 –add-opens java.desktop/sun.awt.shell=ALL-UNNAMED,然后重新启动即可
在这里插入图片描述

今天的文章【性能测试】JMeter性能测试(一)-入门篇分享到此就结束了,感谢您的阅读。

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

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注