04.Jmeter概述及安装


目录

0、JMeter简介

1、安装

2、JMeter目录

3、基本界面

4、常用的组件

5、JMeter插件安装

6、server-agent

7、setenv配置


0、JMeter简介

  • Apache JMeter是Apache软件基金会的基于java开发的压力测试工具。

    • 用于对软件做压力测试,最初被设计用于web应用测试,但是后来扩展到其他测试领域
  • Apache JMeter可用于对静态的和动态的资源(文件、servlet、perl脚本、java对象、数据库和查询、ftp服务器等)的性能进行测试。

    • 可用于对服务器、网络或者对象模拟繁重的负载来测试应用的强度
    • 或者分析不同压力下的整体性能

  • JMeter的特点

    • 1)能够对http和ftp服务器进行压力和性能测试,也可以对数据进行性能测试(通过jdbc, 当然通过专业的db工具会更好,但是jmeter也能做这件事情)
    • 2)完全的可移植性和100%的纯java

    • 3)完全Swing和轻量组件支持(预编译的jar使用 javax.swing.*)包

    • 4)完全多线程,框架允许通过多个线程并发取样和通过单独的线程组对不同的功能同时取样

    • 5)精心设计的GUI设计允许快速操作和更精确的计时

    • 6)离线分析/回放测试结果

    • 7)支持远程控制模式,即分布负载模式(多客户端 - 当单台负载不够时,多加几台客户机,一起加压/加负载)

  • JMeter支持的协议

    • web应用:http、https
    • web service服务:soap/xml-rpc/rest service

    • 数据库:通过jdbc驱动程序对数据库进行性能测试

    • LDAP目录服务

    • 通过jms的面向消息的服务

    • pop3、smtp邮件服务

    • ftp服务

  • JMeter5.0新特性概述

    • Restful增强【比如支持了put、delete等方法;可以支持用附文件的方式来发送json请求体(Body)】
    • 分布式测试,对线程名的增强

    • Xpath2.0的支持

    • Scripts/debug增强【搜索替换功能的增强】

    • 录制功能增强,增加了弹窗提示窗口,在录制过程中允许用户命名事务

    • Jmeter增加了restart功能

    • 报表功能的增加和Bug修复等

    • 。。。

  • JMeter如何运作?

    • JMeter模拟一组向目标服务器【或者说被测应用】发送请求的用户
    • 接受服务响应,通过图表、图形等返回统计信息,显示目标服务器/应用程序的性能/功能

  • JMeter组件

    • 取样器、逻辑控制器、前置处理器、后置处理器等这些都叫组件
    • 说白了,组件就是包含了一组元件

  • JMeter八大组件的概念

    • 1)取样器
    • 2)逻辑控制器

    • 3)前置处理器

    • 4)后置处理器

    • 5)断言

    • 6)定时器

    • 7)配置元件

    • 8)监听器

  • JMeter元件执行的顺序

  • JMeter测试计划脚本呈树形结构排列
    • 元件的执行顺序是先执行根节点,再执行子节点

    • 在同一层次中,各个元件的执行顺序逻辑如下:

      • 1)配置元件
      • 2)前置处理器

      • 3)定时器

      • 4)取样器

      • 5)后置处理器

      • 6)断言

      • 7)监听器

    • 元件执行顺序注意:

      • 定时器、断言、前置处理器、后置处理器只有在适用于有取样器的情况下才会按照顺序进行处理
        • 如果你取样器都没有,何谈上面这些操作呢?
      • 控制器和取样器按照在测试计划树中的顺序进行处理

      • 其他测试元件根据其范围和测试元素的类型进行处理

      • 如测试元件是同一种类型,则元件按照在树中出现的顺序进行处理


1、安装

  • JMeter要运行必须先配置jdk环境

    #    MacOS
    
    # xx @ xxdeMacBook-Pro in ~ [21:34:37]
    $ java -version
    java version "1.8.0_181"
    Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
    Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
    
    # xx @ xxdeMacBook-Pro in ~ [21:34:40]
    $ which jmeter
    /Users/xx/Software/apache-jmeter-5.4.1/bin/jmeter
    
    # xx @ xxdeMacBook-Pro in ~ [21:34:56]
    $


2、JMeter目录

           

  • backups

    • 脚本备份目录,存放.jmx的脚本文件
    • 当然不建议你把脚本放这里咯

  • bin目录

    • 可执行文件
      • jmeter.bat, windows双击可以启动
        • 这种是带终端的启动方式,如果你想看jmeter后台运行的一些日志(比如错误,异常等),可以选择这种
      • jmeter.cmd, 不带终端的启动方式

      • jmeter.sh, linux下启动脚本

      • jmeter-server.bat, windows分布式测试要用到的服务器配置

      • jmeter-server,linux分布式测试要用到的服务器配置

    • 配置文件

      • examples, 目录中有csv样例
        • jmeter.log, jmeter运行日志文件

        • jmeter.properties, 系统配置文件

  • docs

    • 里面有个api目录,包括jmeter官方文档的API文档,主要用于二次开发
  • extras

    • 扩展插件目录。
    • 提供了对Ant的支持,可以使用Ant来实现自动化测试。

    • 例如批量脚本执行,产生html格式的报表,测试运行时,可以把测试数据记录下来,

    • jmeter会自动生成一个.jtl文件,将该文件放到extras目录下,

    • 运行"ant -Dtest=文件名 report",就可以生成测试统计报表。

  • lib

    • lib下存放有jmeter所依赖的外部jar包
    • ext子目录:

      • 存放有jmeter的核心jar包
      • 存放jmeter的第三方库的

    • junit子目录:

      • 存放junit测试脚本
    • jmeter会自动在~JMETER_HOME/lib和ext目录下寻找需要的类

    • 比如你要配置jdbc,那么你所依赖的.jar 包最好放进来

  • printable_docs

    • 该目录存放的是jmeter官方提供的帮助文档
  • 其他不用管了

  • JMeter改中文

    • 1)临时生效, option ---> choose language ---> 选择中文即可。
    • 2)改配置文件 bin/jmeter.properties


3、基本界面


4、常用的组件

  • 线程组

  • 配置元件

  • 监听器

  • 定时器

  • 前置处理器

  • 后置处理器

  • 断言

  • 取样器

  • 控制器

  • 测试片段

  • 非测试元件


5、JMeter插件安装

  • 下载插件: 

  • 放入~jmeter/lib/ext目录下后,重启jmeter,打开选项后,已经有了Plugins Manager

  • 然后安装第三方的插件

    • redis
    • websocket

    • json

    • Merge Results

    • PerfMon

  • 装好插件后


6、server-agent

[root@ksie5mpd1rte5e2b ServerAgent-2.2.3]# ls
CMDRunner.jar  lib  LICENSE  ServerAgent.jar  startAgent.bat  startAgent.sh
[root@ksie5mpd1rte5e2b ServerAgent-2.2.3]# ./startAgent.sh 
INFO    2022-09-18 08:35:35.157 [kg.apc.p] (): Binding UDP to 4444
INFO    2022-09-18 08:35:36.157 [kg.apc.p] (): Binding TCP to 4444
INFO    2022-09-18 08:35:36.161 [kg.apc.p] (): JP@GC Agent v2.2.3 started
...
  • 注意:

    • 1)如果默认的启动后连接不上
      • 检查防火墙,端口是否放开等
    • 2)如果都没问题,换个端口,不要默认的4444,因为有些云服务器可能不放开这种端口

      • ./startAgent.sh --udp-port 7879 --tcp-port 7879

7、setenv配置

  • win下面以setenv.bat存在

  • linux下面以setenv.sh存在

  • 主要用于一些jmeter启动的jvm配置,它是可以被命令行运行的时候的启动参数覆盖的

    • 这里根据需要进行自定义,默认为1024m, 建议运行4G内存
rem This is the content of bin/setenv.sh
rem it will be called by bin/jmeter.sh

set JVA_ARGS=Xms2g -Xmx2g -Dpropname=your_name

【基本介绍】 Apache JMeter 是100%的Java桌面应用程序。用于对软件做压力测试(例如Web应用)。 它可以用于测试静态和动态资源例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库, FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来在不同压力类别下测试它们的强度和分析整体性能。   另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。 【软件特点】   在设计阶段,JMeter能够充当HTTP PROXY(代理)来记录IE/NETSCAPE的HTTP请求,也可以记录apache等WebServer的log文件来重现HTTP流量。当这些HTTP客户端请求被记录以后,测试运行时可以方便的设置重复次数和并发度(线程数)来产生巨大的流量。JMeter还提供可视化组件以及报表工具把量服务器在不同压力下的性能展现出来。   相比其他HTTP测试工具,JMeter最主要的特点在于扩展性强。JMeter能够自动扫描其lib/ext子目录下.jar文件中的插件,并且将其装载到内存,让用户通过不同的菜单调用。   测试结果字段的意义   1、Label: 定义的HTTP请求名称   2、Samples: 表示这次测试中一共发出了多少个请求   3、Average: 访问页面的平均响应时间   4、Min: 访问页面的最小响应时间   5、Max: 访问页面的最大响应时间   6、Error%: 错误的请求的数量/请求的总数   7、Throughput:每秒完成的请求数   8、KB/Sec: 每秒从服务器端接收到的数据量
Apache JMeterapache-jmeter-5.4.3.zip)可用于测试静态和动态资源、Web 动态应用程序的性能。 它可用于模拟服务器、服务器组、网络或对象上的重负载,以测试其强度或分析不同负载类型下的整体性能。 Apache JMeter 功能包括: 能够加载和性能测试许多不同的应用程序/服务器/协议类型: 网络 - HTTP、HTTPS(Java、NodeJS、PHP、ASP.NET,...) SOAP/REST 网络服务 FTP 通过 JDBC 数据库 LDAP 通过 JMS 的面向消息的中间件 (MOM) 邮件 - SMTP(S)、POP3(S) 和 IMAP(S) 本机命令或 shell 脚本 TCP Java 对象 全功能测试 IDE,允许快速记录测试计划(来自浏览器或本机应用程序)、构建和调试。 CLI 模式(命令行模式(以前​​称为非 GUI)/无头模式)从任何 Java 兼容操作系统(Linux、Windows、Mac OSX 等)加载测试 完整且可随时呈现的动态 HTML 报告 通过从最流行的响应格式、HTML、JSON、 XML或任何文本格式中提取数据的能力轻松关联 完全可移植性和100% Java 纯度。 完整的多线程框架允许多个线程并发采样和不同线程组同时采样不同功能。 缓存和离线分析/重放测试结果。 高度可扩展的核心: 可插拔采样器允许无限的测试功能。 可编写脚本的采样器(与 JSR223 兼容的语言,如Groovy和 BeanShell) 可以使用可插拔计时器选择多个负载统计信息。 数据分析和可视化插件允许极大的可扩展性和个性化。 函数可用于为测试提供动态输入或提供数据操作。 通过适用于 Maven、Gradle 和 Jenkins 的第3方开源库轻松实现持续集成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值