简介

image

什么是JMeter?

Apache JMeter TM是纯Java 开源软件,最初由Apache Software Foundation的Stefano Mazzocchi开发,旨在负载测试功能行为和测量性能。 您可以使用JMeter分析和测量Web应用程序或各种服务的性能。 性能测试意味着针对重负载,多个和并发用户流量测试Web应用程序。 JMeter最初用于测试Web应用程序或FTP应用程序。 如今,它也用于功能测试,数据库服务器测试等。

image

JMeter的优点

image

  • 开源 :JMeter完全免费,允许开发人员使用源代码进行开发
  • 友好的GUI :JMeter非常易于使用,并且不需要时间来熟悉它
  • 独立于平台 :JMeter是100%纯Java桌面应用程序。 所以它可以在多个平台上运行
  • 完整的多线程框架 。 JMeter允许通过单独的线程组同时和同时采样不同的函数
  • 可视化测试结果:测试结果可以以不同的格式显示,如图表,表格,树和日志文件
  • 易于安装 :您只需复制并运行* .bat文件即可运行JMeter。 无需安装。
  • 高度可扩展 :您可以编写自己的测试。 JMeter还支持可视化插件,允许您扩展测试
  • 多种测试策略 :JMeter支持许多测试策略,如负载测试 ,分布式测试和功能测试 。
  • 模拟 :JMeter可以使用并发线程模拟多个用户,对正在测试的Web应用程序造成沉重负担
  • 支持多协议 :JMeter不仅支持Web应用程序测试,还评估数据库服务器性能。 JMeter支持所有基本协议,如HTTP,JDBC,LDAP,SOAP,JMS和FTP
  • 录制和回放 - 在浏览器上记录用户活动,并使用JMeter在Web应用程序中模拟它们
  • 脚本测试 :Jmeter可以与groovy, Bean Shell和Selenium集成进行自动化测试。

image

参考资料

JMeter如何工作?

image

JMeter的基本工作流程如下图所示

JMeter模拟一组用户向目标服务器发送请求,并通过图形图表返回目标服务器的统计信息

Introduction to JMeter

完成JMeter的工作流程,如下图所示

image

Jmeter版本历史

  • 1 第一次正式发布
  • 2.13 Java 6+
  • 3 Java 7+
  • 3.1 Java 7+
  • 3.2 Java 8+
  • 3.3 Java 8
  • 4 Java 8/9

安装

JMeter的操作系统支持

理论上JMeter在任何具有兼容Java实现的系统上正确运行。

以下是与JMeter兼容的操作系统列表

Linux
Windows
Mac OS
Ubuntu

安装JMeter的步骤

  • 步骤1)安装Java
    因为JMeter是纯Java桌面应用程序,它需要一个完全兼容的JVM 6或更高版本。你可以下载并安装最新版本的Java SE开发包。

安装完成后,您可以使用以下程序来检查Java JDK是否在您的系统中安装成功

JMeter的安装是非常容易和简单的。你只需将zip/tar文件解压到你想安装JMeter的目录中。没有繁琐的安装屏幕需要处理! 只需解压缩,就可以完成了!

一旦解压完成,安装目录结构应如下图所示

如何用简单的步骤安装Jmeter
以下是JMeter目录的描述及其重要性 JMeter目录包含许多文件和目录

/bin: 包含JMeter脚本文件,用于启动JMeter
/docs: JMeter文档文件
/extras:与ant相关的额外文件
/lib/: 包含JMeter所需的Java库
/lib/ext:包含JMeter和协议的核心jar文件
/lib/junit: 用于JMeter的Junit库
/printable_docs:

image

  • 步骤4)启动JMeter
    你可以用3种模式启动JMeter

GUI模式
服务器模式
命令行模式

在GUI模式下启动JMeter

如果你使用的是Windows,只需运行/bin/jmeter.bat文件,即可在GUI模式下启动JMeter。
image

如何在非GUI模式下运行JMeter

服务器模式用于分布式测试。这种测试的工作方式是客户端-服务器模式。在这种模式下,JMeter以服务器模式运行在服务器计算机上。在客户端计算机上,JMeter以GUI模式运行。

要启动服务器模式,需要运行binjmeter-server.bat文件,如下图所示
image

在命令行模式下启动JMeter

在GUI模式下,JMeter会消耗很多计算机内存。为了节省资源,你可以选择在没有GUI的情况下运行JMeter。要做到这一点,请使用以下命令选项

image
这是一个命令行的例子

$jmeter -n -t testPlan.jmx -l log.jtl -H 127.0.0.1 -P 8000

额外的软件包

根据你的要求,你将需要下面列出的一个或多个可选软件包。

  • Java编译器
    Java编译器允许开发人员构建JMeter源代码和其他JMeter插件

  • SAX XML解析器
    SAX是XML的简单API,最初是只用Java的API。你可以使用SAX XML解析器作为JMeter中XML解析器的替代。

  • 电子邮件支持
    JMeter具有广泛的电子邮件功能。它可以根据测试结果发送电子邮件,并有POP3(S)/IMAP(S)采样器。它也有SMTP采样器。

  • JDBC驱动
    如果你想测试数据库服务器,你必须安装JDBC驱动程序。

在Linux中使用JMeter

  • 在Linux中使用JMeter与在Window中使用JMeter是一样的;你只需运行下面的shell脚本。
  • 运行脚本文件jmeter(该文件没有扩展名)- 运行JMeter(默认为GUI模式)。
  • 运行脚本文件jmeter-server – start 以服务器模式启动JMeter
  • jmeter.sh - 非常基本的JMeter脚本,没有指定JVM选项。
  • mirror-server.sh - 在非GUI模式下运行JMeter镜像服务器
  • shutdown.sh - 运行Shutdown客户端,优雅地停止非GUI实例
  • stoptest.sh - 运行Shutdown客户端,突然停止非GUI实例。

3线程组,采样器,监听器,配置

image.png

什么是元素?

JMeter的不同组件称为Elements。 每个元素都是为特定目的而设计的。

线程组

线程组是线程的集合。 每个线程代表一个用户,每个Thread模拟一个到服务器的真实用户请求。

线程组的控件允许您设置每个组的线程数。

例如,如果将线程数设置为100; JMeter将创建并模拟100个用户对被测服务器的请求

image

取样

线程组如何知道需要进行哪种类型的请求(HTTP,FTP等)呢?答案是采样器。用户请求可以是FTP请求,HTTP请求,JDBC请求......等。

image

  • FTP request

image

假设您想要对FTP服务器进行性能测试。 您可以在JMeter中使用FTP请求采样器来执行此任务。 此控制器允许您将FTP“下载文件”或“上载文件”请求发送到FTP服务器。

例如,如果要从测试的FTP服务器下载文件“Test.txt”,则需要在JMeter中配置一些参数,如下图所示

image

JMeter将FTP命令发送到FTP服务器ftp.example.com ,然后从该服务器下载文件Test.txt。
HTTP请求:

  • HTTP request

image

此采样器允许您将HTTP/HTTPS请求发送到Web服务器。

考虑下面的例子。 JMeter向Google网站发送HTTP请求,并从该网站检索HTML文件或图像。

  • JDBC请求:

image

此采样器允许您执行数据库性能测试 。 它将JDBC请求(SQL查询)发送到数据库。

例如,数据库服务器具有存储在表名test_tbl中的字段test_result。 您想从数据库服务器查询此数据; 您可以配置JMeter将SQL查询发送到此服务器以检索数据。

image

  • BSF采样器:

此采样器允许您使用BSF脚本语言编写采样器。

以下是JMeter中BSF采样器的示例

image

  • 访问日志采样器:

此采样器允许您读取访问日志并生成HTTP请求。 日志可以是图像,Html,CSS ......

image

  • SMTP采样器:

如果要测试邮件服务器,可以使用SMTP采样器。 此采样器用于使用SMTP协议发送电子邮件。

image

  • 监听器:显示测试执行的结果。 它们可以以不同的格式显示结果,例如树,表,图形或日志文件

image

图形结果侦听器在图形上显示服务器响应时间

image

查看结果树以基本HTML格式显示用户请求的结果

image

表结果以表格格式显示测试结果的摘要

image

日志在文本文件中显示测试结果的摘要

image

配置元素

image

设置默认值和变量供以后采样器使用。

下图显示了JMeter中一些常用的配置元素

  • CSV数据集配置:

假设您要为使用不同凭据登录的100个用户测试网站。 您不需要记录脚本100次! 您可以参数化脚本以输入不同的登录凭据。 该登录信息(例如,用户名,密码)可以存储在文本文件中。 JMeter有一个元素,允许您从该文本文件中读取不同的参数。 它是“CSV数据集配置”,用于从文件中读取行,并将它们拆分为变量。

image

这是CSV数据的示例。 这是一个文本文件,其中包含用于登录目标网站的用户和密码

image

  • HTTP Cookie管理器

让我们用一个例子来理解这一点 -

您使用浏览器(Firefox,IE ...等)浏览www.google.com

您使用您的用户名和密码登录。

您的用户名和密码将作为cookie存储在您的计算机中。

下次访问www.google.com时 ,您无需再次登录,因为您的浏览器将使用您的Cookie作为用户数据登录。

HTTP Cookie管理器也具有与Web浏览器相同的功能。 如果您有HTTP请求并且响应包含cookie,则Cookie管理器会自动存储该cookie,并将其用于将来对该特定网站的所有请求。

image

  • HTTP默认请求

此元素允许您设置HTTP请求控制器使用的默认值。

image

例如,

您正在向服务器google.com发送100个HTTP请求

您必须为所有这100个请求手动输入server name = google.com

相反,您可以使用“服务器名称或IP”字段= google.com添加单个HTTP请求默认值

无需键入100次!

  • 登录配置元素

登录配置元素允许您在采样器中添加或覆盖用户名和密码设置。

例如,您希望使用用户和密码模拟一个用户登录网站www.facebook.com 。 您可以使用登录配置元素在用户请求中添加此用户和密码设置

登录配置元素 CSV数据配置
用于模拟一个用户登录 用于模拟多个用户登录
仅适用于登录参数(用户和密码) 适用于大量参数
内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/testing-/p/17413832.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!