万字长文,带你学会JMeter的使用!!!赶紧收藏(上)

简介: 万字长文,带你学会JMeter的使用!!!赶紧收藏

1.简介

JMeter是一种应用程序,它提供了多种可能性,可以使用不同的技术和协议来配置和执行负载,性能和压力测试。

它允许针对所有类型的数据库,FTP,HTTP,HTTPS或其他类型的服务器模拟不同类型的请求。

简要解释所有这些概念的含义可能是一件好事:

  • 负载测试:这种测试可以使测试的系统或应用程序达到设计和要求的极限。它们用于测量极端条件下的系统和应用程序行为。
  • 性能测试:这些测试用于检查系统在性能方面的行为,即系统如何响应以及特定工作负载的稳定性。
  • 压力测试:这些测试试图通过加载更多资源并使模块超出设计的限制来破坏或破坏系统。

JMeter最初旨在测试Web应用程序,但其功能已得到扩展,如今,它可以针对几乎所有类型的程序进行测试,并可用于在您的应用程序中执行功能测试。

2.使用的技术

JMeter是Java桌面应用程序。它的UI使用Swing Java API实现。由于这两点,JMeter是多平台的,可以在装有Java虚拟机的任何类型的计算机中运行:Windows,Linux,Mac。

它的框架允许并发和执行多个线程和线程组。在尝试配置负载和压力测试时,这非常有用。

它是可扩展的,并且有大量可用的插件。

JMeter是Apache软件基金会的一部分,并且是完全免费和开源的(http://www.apache.org/licenses/)。

3.这篇文章是关于什么的?

本文是有关如何在没有JMeter经验的情况下为开发人员和软件工程师使用JMeter的教程。

它还提供了有关不同可能配置和测试计划的示例以及操作方法。在下一章中,我们将了解如何安装JMeter以及如何配置,运行,存储和分析不同类型的测试计划的结果。

4.安装

您需要执行以下步骤才能在计算机上安装并运行JMeter:

  • 首先,您必须安装Java。您的计算机中需要安装JRE 1.6或更高版本。为此,只需访问Oracle下载站点并安装适合您的系统的软件包:http : //www.oracle.com/technetwork/java/javase/downloads/index.html
  • JAVA_HOME环境变量设置为指向计算机上安装Java的基本目录位置。对于Windows用户:
JAVA_HOME=C:\Program Files\Java\jdk1.8.0_20

或任何Java版本。

  • 将Java编译器位置附加到系统路径。对于Windows用户:
C:\Program Files\Java\jdk1.7.0_25\bin

到系统变量Path的末尾。

  • 通过转到命令行并键入以下内容来检查计算机中是否已安装Java:
java -version

应该出现以下内容:

java version ``"1.8.0_20"``Java(TM) SE Runtime Environment (build 1.8.0_20-b26)``Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)
apache-jmeter-2.9``apache-jmeter-2.9\bin``apache-jmeter-2.9\docs``apache-jmeter-2.9\extras``apache-jmeter-2.9\lib\``apache-jmeter-2.9\lib\ext``apache-jmeter-2.9\lib\junit``apache-jmeter-2.9\printable_docs
  • 然后,您可以通过转到文件夹C:\jmeter\apache-jmeter-2.11\bin(Windows用户)并启动程序来启动JMeter jmeter.bat
  • 您应该看到JMeter GUI的开始屏幕:

image.png

5. GUI概述

JMeter GUI非常直观且易于使用,提供了用于文件处理的常用菜单,如新建,打开,保存,另存为等,以及用于启动和停止测试计划以及配置它们的特定菜单。通过单击鼠标右键,每个测试计划,线程组和测试计划节点(我们将在下一章中详细介绍)将提供不同的上下文菜单选项。

也可以更改UI的语言,并且可以使用多种语言。

正如我们所说,GUI非常直观,易于使用,并且为每个菜单和操作提供了非常易懂的工具提示。这是JMeter如此广泛使用的原因,除了其质量以外,因为它真的很容易理解和学习如何使用它。

6.可用请求

JMeter为几乎所有类型的系统提供测试配置,但通常开箱即用地涵盖以下协议:

  • Web:HTTP,HTTPS网站“ Web 1.0” Web 2.0(ajax,flex和flex-ws-amf):之后我们将看到如何测试潜在的网页及其行为。
  • Web服务:SOAP / XML-RPC。
  • 通过JDBC驱动程序的数据库。几乎支持任何种类的数据库,您只需要一个合适的驱动程序,并将其打包在JMeter安装目录中的相应文件夹中即可。之后,我们将举一个MySQL数据库测试的例子。
  • 目录:LDAP。
  • 通过JMS的面向消息的服务
  • 使用POP3,IMAP,SMTP的邮件服务。
  • FTP服务。
  • 使用JUnit和Java应用程序进行功能测试。

7.测试计划和组成

基本上,使用JMeter包括测试计划的创建,配置和执行以及结果的分析。测试计划是针对本地或远程服务器(或客户端)的请求集,这些服务器被配置为按照特定说明运行。

在测试计划的配置中,您可以指定几个输入和输出参数,并且可以配置应满足的基本条件,以便测试计划成功与否。

JMeter测试计划由不同的组件组成。这是最重要的列表,其中包含有关如何使用JMeter UI添加它们以及它们的目的的说明:

7.1线程组

线程组基本上是不同测试计划元素的组合。它是测试计划的基础,它控制基本的中心参数。

为了创建测试计划,您可能必须首先创建一个线程组并配置其线程数,加速周期,循环计数以及万一出现错误的行为:

  • 线程数:将用于执行测试计划的线程数,对于配置负载和压力测试非常重要。
  • 加速期: JMeter需要启动所有线程的时间。
  • 循环计数:迭代次数,即测试将要执行的次数。
  • 错误行为:出现错误时该怎么办:停止当前线程,停止整个测试,继续…

线程组还具有开始和结束时间配置选项。通过单击复选框“ Scheduler”,将出现一个带有计划参数的新部分,您可以配置测试的开始和结束时间。

配置完成后,您可以开始将其他测试计划元素(例如采样器,侦听器和计时器)添加到线程组。我们将在下一章中解释所有这些。

7.2采样器

采样器用于将请求发送到不同类型的服务器。它们是每个测试计划的基本元素,所有工作都围绕着它们进行:它们执行请求(基于提供的配置),并且这些请求产生一个或多个响应,然后进行分析。这是JMeter中可用的采样器列表(我们将在本教程中看到其中的一些采样器):

  • 访问日志采样器
  • AJP采样器
  • 豆壳采样器
  • BSF采样器
  • 调试采样器
  • FTP采样器
  • HTTP采样器
  • Java采样器
  • JDBC采样器
  • JMS(几个)采样器
  • JSR223采样器
  • JUnit采样器
  • LDAP(几个)采样器
  • 邮件阅读器
  • MongoDB采样器
  • 操作系统进程采样器
  • SMTP取样器
  • 肥皂
  • TCP采样器
  • 测试动作

正如我们在上面的列表中看到的那样,有很多不同类型的采样器。此列表不完整,因为在不同的JMeter插件中实现了多个采样器。每个采样器的配置取决于其执行的请求,这意味着某些采样器具有共同点,但其他采样器由于其请求的性质而完全不同。

7.3逻辑控制器

逻辑控制器是允许您配置线程组内不同采样器的执行顺序的元素。此列表包含JMeter中所有可用的逻辑控制器:

  • 简单控制器
  • 回路控制器
  • 一次性控制器
  • 交错控制器
  • 随机控制器
  • 随机顺序控制器
  • 吞吐量控制器
  • 运行时控制器
  • 如果控制器
  • 当控制器
  • 开关控制器
  • 每个控制器
  • 模块控制器
  • 包含控制器
  • 交易控制器
  • 录音控制器

7.4听众

侦听器提供了不同的方式来查看采样器请求所产生的结果。侦听器以表,树或纯日志文件的形式解析结果。

可以将它们添加到测试计划中的任何位置,但是它们只会解析和收集采样器级别或以下级别的结果数据。

这些是JMeter中可用的侦听器:

  • 样本结果保存配置
  • 图形完整结果
  • 图形结果
  • 样条可视化器
  • 断言结果
  • 查看结果树
  • 汇总报告
  • 查看表中的结果
  • 简单数据写入器
  • 监控结果
  • 分布图(alpha)
  • 聚合图
  • Mailer Visualizer
  • BeanShell侦听器
  • 总结报告

7.5计时器

您可以使用计时器定义两次请求之间要等待的时间。如果您未指定任何请求,JMeter将在当前请求完成后立即执行下一个请求,而不会等待任何时间。

JMeter中提供以下计时器:

  • 恒定计时器
  • 高斯随机计时器
  • 统一随机计时器
  • 恒定吞吐量计时器
  • 同步计时器
  • JSR223时间
  • BeanShell时间
  • BSF时间
  • 泊松随机时间

7.6断言

断言通过验证采样器请求产生的响应来确认测试计划的有效性。断言基本上与单元测试断言相似,并检查已测试应用程序响应的质量。您可以为每种测试计划配置哪种断言处于活动状态。

这是JMeter中可用断言的列表:

  • 豆壳断言
  • BSF断言
  • 比较断言
  • JSR223断言
  • 回应断言
  • 持续时间断言
  • 大小断言
  • XML断言
  • BeanShell断言
  • MD5Hex断言
  • HTML断言
  • XPath断言
  • XML模式声明

7.7配置节点

您可以使用配置元素将不同的参数传递给采样器请求。它们提供了一种创建变量的方法(不同的和动态的),以后可以由采样器使用。它们在执行采样器之前在其所属节点的开头执行,这就是为什么采样器可以依赖这些变量的原因。

这是可以在JMeter中使用的所有配置节点的列表:

  • 计数器
  • CSV数据集配置
  • FTP请求默认值
  • HTTP授权管理器
  • HTTP缓存管理器
  • HTTP Cookie管理器
  • HTTP代理服务器
  • HTTP请求默认值
  • HTTP标头管理器
  • Java请求默认值
  • 密钥库配置
  • JDBC连接配置
  • 登录配置元素
  • LDAP请求默认值
  • LDAP扩展请求默认值
  • TCP采样器配置
  • 用户定义的变量
  • 简单的配置元素
  • 随机变量
目录
相关文章
|
Web App开发 存储 SQL
万字长文,带你学会JMeter的使用!!!赶紧收藏(下)
万字长文,带你学会JMeter的使用!!!赶紧收藏
218 0
万字长文,带你学会JMeter的使用!!!赶紧收藏(下)
|
前端开发 JavaScript Java
万字长文,带你学会JMeter的使用!!!赶紧收藏(中)
万字长文,带你学会JMeter的使用!!!赶紧收藏
177 0
万字长文,带你学会JMeter的使用!!!赶紧收藏(中)
|
1月前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
【10月更文挑战第1天】Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
130 3
|
2月前
|
测试技术 数据库 UED
Python 性能测试进阶之路:JMeter 与 Locust 的强强联合,解锁性能极限
【9月更文挑战第9天】在数字化时代,确保软件系统在高并发场景下的稳定性至关重要。Python 为此提供了丰富的性能测试工具,如 JMeter 和 Locust。JMeter 可模拟复杂请求场景,而 Locust 则能更灵活地模拟真实用户行为。结合两者优势,可全面评估系统性能并优化瓶颈。例如,在电商网站促销期间,通过 JMeter 模拟大量登录请求并用 Locust 模拟用户浏览和购物行为,可有效识别并解决性能问题,从而提升系统稳定性和用户体验。这种组合为性能测试开辟了新道路,助力应对复杂挑战。
107 2
|
3月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【8月更文挑战第5天】性能测试确保应用高负载下稳定运行。Apache JMeter与Locust是两大利器,助力识别解决性能瓶颈。本文介绍这两款工具的应用与优化技巧,并通过实战示例展示性能测试流程。首先,通过JMeter测试静态与动态资源;接着,利用Locust的Python脚本模拟HTTP请求。文中提供安装指南、命令行运行示例与性能优化建议,帮助读者掌握性能测试核心技能。
129 0
|
12天前
|
测试技术 持续交付 Apache
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
Python性能测试新风尚:JMeter遇上Locust,性能分析不再难🧐
37 3
|
11天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
26 1
|
2月前
|
缓存 Java 测试技术
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
使用JMeter对项目各个接口进行压力测试,并对前端进行动静分离优化,优化三级分类查询接口的性能
谷粒商城笔记+踩坑(11)——性能压测和调优,JMeter压力测试+jvisualvm监控性能+资源动静分离+修改堆内存
|
1月前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
【10月更文挑战第1天】告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
60 4
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
237 7
Jmeter实现WebSocket协议的接口测试方法