• JMeter的简单使用


    一、初识JMeter

    1. 简介(摘自百度百科)

    Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小程序服务、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能。另外,JMeter能够对应用程序做功能/回归测试,通过创建带有断言的脚本来验证你的程序返回了你期望的结果。为了最大限度的灵活性,JMeter允许使用正则表达式创建断言。

    2. 自述

    JMeter是业界比较优秀的测试软件,最基本的功能可以当成postman使用,然后进阶点就是给接口做并发测试,这里的并发是指真正意义的并发,像postman之类的软件所谓的并发本质上还是串行执行的。再高阶的用法就是通过脚本来完成多服务器的压测,因为了解有限,更多高级用法得在实际中需要用到才有机会去学习。

    二、下载安装JMeter

    环境为Win10,jdk版本1.8以上

    1. 下载

    官网下载地址

    2. 安装

    直接把下载好的压缩包解压到想要安装的位置即可。解压即可使用(前提是系统已经配好jdk环境)

    3. 目录

    解压可以看到JMeter的基本目录,大致可以了解下。

    4. 插件

    JMeter支持插件扩展,有更多的功能都可以用插件来实现。

    使用插件有两种方法,

    ​ 一是使用什么插件就下载对应jar包放到%jmeter%libext路径下。

    ​ 二是使用官网提供的插件管理器,然后在管理器里选择所需插件进行安装。

    这里介绍第二种方法,先去下载插件管理器 jmeter-plugins,然后把下载好的jmeter-plugins-manager-1.4.jar 放到%jmeter%libext下重启就可以。

    打开JMeter之后,在GUI界面选择 Options -> 最底下 Plugins Manager 即可打开插件管理器进行使用。

    三、基本使用

    在此简单介绍下JMeter的运行背景,使用GUI界面执行测试会大量消耗系统资源,而使用命令行工具执行测试脚本则能够缩减所需的系统资源,所以一般的用法是先在GUI界面创建好测试计划的脚本,然后通过命令行去执行。

    1. 运行

    打开%jmeter%in文件夹,里面有sh和bat两种格式的脚本,分别对应Linux系统和Win系统的。打开jmeter.bat就会启动一个命令窗口和GUI界面窗口,两者是共存的,不能关闭,使用时把命令窗口最小化即可。

    命令窗口:

    GUI界面窗口:

    2. 语言切换

    英文的方便对照官方文档使用,但想切换中文也是可以的,在之前的版本中使用中文需要下载语言包自己手动加载,在此版本就不需要了,直接在GUI界面窗口操作 Options -> Choose Language -> Chinese (Simplified)即可

    然后就切换到中文了。

    3. 组件介绍

    下文介绍的组件是根据个人学习到的组件而去使用的,所以作为开发人员去使用JMeter可能比不上专业使用,仅作介绍了解。

    3.1 测试计划 (Test Plan)

    可以理解为一个项目,就是一个最大的根目录,里面包括多种真正工作的测试组件。

    3.2 线程组 (Thread Group)

    添加:线程(用户) -> 线程组

    也称用户组,是进行测试的基本单位, 也可以理解为测试计划执行的开始点,它可以设置线程信息来模拟并发。

    3.3 计数器 (Counter)

    添加: 配置元件 -> 计数器

    用于配置一些计数作用的原件,比如我测接口,需要传一个ID,ID每次递增1,设置好之后,直接在请求参数里使用 ${引用名称}即可使用。

    3.4 聚合报告 (Aggregate Report)

    添加:监听器 -> 聚合报告

    一般用于显示Web接口测试的,它里面各项数据都反应了接口的情况。

    各项数据含义(注意:时间单位为ms):

    Label:每个请求的名字,可理解为每个接口请求的Name属性。

    样本(Samples):表示一次测试中一共发起了多少个请求,如果按照上面设置的持续30s,每秒100个并发量,那么就是30*100=3000个请求。

    平均值(Average):平均响应时间,默认情况是单个请求的平均响应时间。

    中位数(Median):中位数,也就是一半的用户的响应时间。

    90%百分位和95%百分位(90% Line 和 95% Line):意指90%和95%的用户的响应时间,关于为什么是这两个百分比的用户数可以自行了解下。

    最小值(Min):最小响应时间。

    最大值(Max):最大响应时间。

    异常%(Error%):错误率,指一次测试中出现错误的请求/总请求数。

    吞吐量(Throughput):默认情况表示每秒完成的请求数。

    3.5 响应时间图 (Response Time Graph)

    添加:监听器 -> 响应时间图

    这个图没记错的话是自带的,但好像看起来不太好用,所以其实用别的插件生成的图更生动些。

    3.6 察看结果树 (View Results Tree)

    添加:监听器 -> 察看结果树

    不懂是不是因为翻译问题,可能把查看写成了察看,总之是一个意思。这个组件可以看到请求的发送和返回信息,当你执行测试后,这里会自动填充请求数据就可以看了。

    3.7 Http请求(Http Request)

    添加:取样器 -> Http 请求

    这里就是最常用的组件了,模拟接口测试请求,填写好服务器IP地址和端口号,然后填写请求路径,设置好入参,就可以用了。

    3.8 TPS

    添加:监听器 -> jp@gc - Transactions per Second

    想要查看TPS得先装插件,可用插件管理器安装。

    然后添加该组件时,选择TPS即可,


    这些组件也是等测试完成有数据之后才会绘制图表,未执行测试之前是不会有东西的。

    ps:本次介绍的是个人使用到的一些简单组件,还有很多好用的东西还没接触到,后续有机会可以继续学习使用。

    四、 小结

    在此学习了解到了JMeter的快速入门,包括下载安装、一些简单的使用。其实可能连入门都不算,JMeter还是很复杂的,比如工作原理、配置文件、日志管理、定时器、断言、命令行执行等更高级的功能,希望在空闲时多去了解下,多掌握一些技能。

    文章是在自己电脑typora写好移植过来的,因为版块问题,导致内容换行很别扭。
    而且有些图复现不了,只能用本地上面的截图,所以很模糊。

  • 相关阅读:
    嵌套函数
    大括号{ }
    不是俺的错
    hasOwnProperty()
    属性的查找过程
    原型和原型链——汤姆大叔
    JS问题汇总
    phpcms无刷新分页
    phpcms开发过程中遇到的问题总结
    基于物联网的自动氮吹仪
  • 原文地址:https://www.cnblogs.com/yellowgg/p/13794431.html
Copyright © 2020-2023  润新知