性能测试工具---JMeter的安装与使用详解(第一篇)

2023-11-04

目录

一、主流性能测试工具

1.1 LoaderRunner

1.2 JMeter

二、JMeter环境搭建

2.1下载安装JDK

2.2 下载安装JMeter

2.3 JMeter文件目录介绍

2.3.1 bin目录

2.3.2 docs目录

2.3.3 lib目录 

三、JMeter中基本元件和组件

3.1 基本元件及组件

3.2 JMeter元件作用域及执行顺序

3.3 JMeter三大重要组件

3.3.1线程组

3.3.2 HTTP请求

3.3.3结果数

四、JMeter参数化 

4.1用户定义的变量

4.2 用户参数设置

4.3 CSV数据文件设置

4.4函数(_counter)


一、主流性能测试工具

主流性能测试工具:LoadRunner和JMeter

1.1 LoaderRunner

HPLoaderRunner是一种工业级标准性能测试负载工具,可以模拟上万用户实施测试,并监控性能提供报表。

支持多协议:Web(HTTP/HTML)、Windows Sockets、FTP、ODBC、MS SQL Sever等协议,由C语言编写。

优点:多用户(支持数量单位万),提供详细分析报表,支持ip欺骗;

缺点:收费、体积庞大(单位GB)、无法定制功能。

1.2 JMeter

JMeter是由Apache组织开发的基于Java的开源软件,用于对系统接口测试和性能测试。

最初设计用于Web应用测试,后来逐步扩展,可用于静态文件、Java程序、shell脚本、Mail等;

优点:免费、开源、小巧、丰富的学习资料及扩展组件、应用广泛、容易上手;

缺点:不支持ip欺骗、分析和报表能力相对于lr欠精度。

选择JMeter的原因:免费、功与lr基本一致,能满足绝大部分性能测试需求。

二、JMeter环境搭建

2.1下载安装JDK

官网:http://www.Oracle.com/

JDK8下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151html下载时注意电脑系统是32位或者64位

配置环境变量

JAVA_HOME=安装路径

在path中添加:%JAVA_HOME\bin;%JAVA_HOME%\jre\bin

校验:java -version

2.2 下载安装JMeter

下载地址:http://jmeter.apache.org/download_jmeter.cgi

安装提示:安装目录中不要出现空格,也不要将其装在中文文件夹内。要关注与JDK版本匹配。

环境配置:

1)新建JMETER_HOME变量,并添加jemeter所在目录,如:->D:\Program Files\apache-jmeter-5.4.3

2)PATH->.;%JEMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\loki

启动验证:

进入JMeter安装目录下的bin目录,以下三种方式任意一种打开都可。

        ·双击 jmeter.bat

        ·双击ApacheJMeter.jar选择使用java程序打开

        ·命令行输入:java -jar ApacheJMeter. jar 

2.3 JMeter文件目录介绍

jmeter目录结构

bin目录:存放可执行的文件和配置文件

printable-docs:存放用户手册

lib目录:jmeter运行时以来的jar包

docs目录:存放jmeter接口文档

2.3.1 bin目录

存放可执行文件和配置文件

2.3.2 docs目录

是JMeter的api文档,可打开api/index html页面来查看

printable_docs的usermanual子目录下的内容是JMeter的用户手册文档;

 printable_docs的demos子目录下有一些常用的JMeter脚本案例,可参考;

usermanual下component_reference.html是最常用到的核心元件帮助文档。

2.3.3 lib目录 

三、JMeter中基本元件和组件

3.1 基本元件及组件

元件:类似于类的概念;组件:类似于类中定义的方法的概念。

JMeter中基本元件和组件
取样器 发送请求,类似于自动化中的业务测试语句;
逻辑控制器 控制元件执行顺序,类似于自动化中的逻辑控制语句;
前置处理器 对发送的请求参数进行预处理,类似于自动化中的参数化;
后置处理器 对收到的响应数据进行处理。类似于自动化中获得对应的测试结果;
定时器 等待一定时间,类似于自动化中的sleep语句;
测试片段 封装的脚本,供其他脚本调用。类似于自动化中封装的函数
配置元件 测试前的环境及数据配置。类似于自动化中的初始化动作
监听器 查看测试的结果。类似于自动化中的日志和报告。
组件 实现独立的某个功能(类似于方法)

3.2 JMeter元件作用域及执行顺序

在JMeter中,按照jmeter测试计划的树形结构中的父子关系来定义作用域;

作用域的原则:

1)取样器:jmeter核心,其他组件都以取样器为核心运行,不作用于其他组件。

2)逻辑控制器:只对子节点中的取样器和控制器起作用。

3)其他六大元件:

        ·如果父节点是取样器,则只对父节点起作用。

        ·如果父节点不是取样器,则对父节点下所有组件起作用

元件的执行顺序:

写脚本的顺序:定义参数-->对参数进行赋值-->发送请求-->收响应-->提取响应数据-->断言响应中的字段-->观察运行结果

元件执行顺序:配置元件->前置处理器->定时器->取样器->后置处理程序->断言->监听器

注:

1.前置处理器、后置处理器和断言等组件只对取样器起作用,若其所在作用域内没有任何取样器,则 不会被执行。

2.如果同一作用域内有多个同类型的元件,则这些元件按照所在测试计划中的上下顺序依次执行。

3.3 JMeter三大重要组件

在JMeter中,基本每一次操作都至少包含三大重要组件:线程组、HTTP请求和结果树。

3.3.1线程组

线程组主要是模拟多人操作;如果有多个线程组,可以并行或者串行执行。串性即从上到下顺序执行,并行的先后顺序无法保证。

 线程组分类:

普通线程组:用于发送业务请求的线程组(受并行、串行配置的影响)

setup线程组:在所有的线程组之前执行(不受并行、串行配置的影响)

terdown线程组:在所有的线程组之后执行(不受并行、串行配置的影响)

线程组属性:

线程数:模拟用户数

ramp-up time:模拟用户全部启动所需时间,目的是为了模拟性能测试场景,用户慢慢接入系统。

循环次数:设置固定次数为n,脚本发送请求n次后停止;设置循环次数为永远,脚本将一直运行;

调度器:配合循环次数为永远使用,其他请无效;

        ·调度器设置持续时间为n,则脚本发送的时间为n秒

延迟启动设置为n,脚本等待n秒后发送;

延迟创建线程直到需要:当启动线程发送请求时,才分配资源;如果暂未启动该线程,则不分配。

如果 不勾选,在jmeter点击运行时立即分配(使用不多,了解即可,无法观察效果)

线程数m和循环次数n的关系

如果同时配置,实际发送的HTTP请求数应该为:m*n,

虽然发送的请求次数相同,但不能相互代替线程数,代表并发用户数,体现服务器的负载量,循环次数代表执行时间

3.3.2 HTTP请求

案例一:发送http请求

发送请求时:协议未填写,默认HTTP协议;

端口号未填写,默认80;

GET 请求参数放在路径中填写

案例二:发送https请求

发送请求时,协议要填https;端口号为443,

将GET请求参数放在下面的参数列表中进行填写

案例3:发送POST请求

将参数内容放入到消息体数据中,在发送时参数会添加到请求体中发送

3.3.3结果数

注:如果jmeter响应中出现乱码: 

修改路径:bin目录下,修改配置文件jmeter.properties中的内容:

四、JMeter参数化 

4.1用户定义的变量

配置方法:

1)配置元件中配置:测试计划—>线程组—>配置元件—>用户定义的变量

参数设置:

参数名:参数值

在HTTP取样其中应用:${参数名}

线程组下配置的用户定义的变量,在线程组下生效,与测试计划中配置的变量冲突时,以线程组下的为准;

2)在测试计划中配置(全局生效)

使用用户定义变量,不同的用户在访问时,读取的数值完全相同;如果要是读取的数值不同,就要使用用户参数。

4.2 用户参数设置

配置方法:线程组—>前置处理器—>用户参数

添加用户:可以添加多组用户

添加参数:每个用户添加多个参数

4.3 CSV数据文件设置

使用用户参数时,每个用户可以取不同的数据,但同一用户多次循环时读取的数据是不变的。要使同一个用户循环多次发送不同的请求值,可以使用CSV数据文件设置。

添加方式:测试计划—>线程组—>配置元件—>CSV数据文件设置

案例:请求https:www.baidu.com

要求:循环4次,每次请求时附带参数username,password,code的值不同。

1.定义CSV数据文件

2.添加线程组

3.配置CSV数据文件设置:线程组—>配置元件—>CSV数据文件设置

参数配置:

4.添加HTTP请求:引用参数值时,使用时CSV数据文件中定义的变量名

5.查看结果树

4.4函数(_counter)

函数:计数函数,一般做执行次数统计使用;对于传递内容无要求,仅仅要求传递内容不一样,可以使用函数助手。

位置:在菜单中—>工具—>函数助手对话框

函数助手

在HTTP取样器中,应用counter函数生成的函数字符串,就可以读取counter函数生成的数值。

如果counter参数设置为TRUE,则每个用户分别从1开始计算,每循环一次加1 ;

如果counter参数设置为FALSE,则所有用户公用一个计数器,每发送一个请求时,取值加1。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

性能测试工具---JMeter的安装与使用详解(第一篇) 的相关文章

随机推荐

  • 爬虫合集!(看这里)

    awesome spider 收集各种爬虫 默认爬虫语言为 python 欢迎大家 提 pr 或 issue 收集脚本见此项目 github search A 暗网爬虫 Go 爱丝APP图片爬虫 B Bilibili 用户 Bilibili
  • php curl cookie,php中curl获取返回页面的cookie

    php的curl可以模仿用户浏览网页并且获取网页的cookie 获取cookie还有专用的参数如CURLOPT COOKIEJAR 用于保存 cookie 到文件了 下面一起来看几个例子吧 curl可以获取返回页面设置的cookie 原理跟
  • 数学建模写作指导20篇(一)-如何写好数学建模论文?

    数模国赛开赛在即 给大家推荐一个比较好的专栏 喜欢的小伙伴请移步 2022年高教社杯全国大学生数学建模竞赛 比赛规则篇 比赛规则及比赛指导 一 写好数模论文的重要性 1 评定参赛队的成绩好坏 高低 获奖级别 数模论文是唯一依据 2 论文是竞
  • java SpringBoot 切换不同的运行环境(生产环境、开发环境、测试环境)SpringBoot配置多个不同运营环境【多文件版本】

    背景 同一套Spring Boot应用程序会被安装到不同环境 比如 开发 测试 生产等 其中修改最多的无非 数据库地址 服务器端口等等配置 使用profile功能实现不同的运行环境 生产环境 开发环境 测试环境 切换 yml文件 yml配置
  • Spring高手之路5,Dubbo服务注册与发现(文末送书)

    目录 一 介绍 1 介绍 Dubbo 服务注册与发现的基本概念和重要性 2 阐述 Dubbo 服务注册与发现的实现方式和应用场景 二 Dubbo 服务注册与发现的架构设计 1 Dubbo 服务注册与发现的总体架构设计 2 Dubbo 服务提
  • stm32(六)中断

    什么是中断呢 可以举一个日常生活中的例子来说明 假如你正在给看书 电话铃响了 这时 你放下手中的书 记录下你看书的页数 去接电话 通话完毕 再继续从原来的位置继续看书 这个例子就表现了中断及其处理过程 电话铃声使你暂时中止当前的看书的动作
  • Flink-CDC实践(含实操步骤与截图)

    文章目录 前言 Flink CDC 1 CDC简介 1 1 什么是 CDC 1 2 CDC 的种类 1 3 Flink CDC 2 Flink CDC 案例实操 2 1 DataStream 方式的应用 2 1 1 导入依赖 2 1 2 编
  • DM达梦如何再修改了端口好的情况登录

    1 登录DM的disql 再bin目录下输入disql 输入用户名和密码 即可登录 也可以不用输入用户名和密码 直接敲连个空格 就可以直接登录 不过前提是用户名和密码都是默认密码 2 如果端口不是默认5236 那么这种登录方式 也就不起作用
  • 常见的内存泄漏原因和解决方案

    常见的内存泄漏原因和解决方案 1 全局引用 问题 在JavaScript代码中 使用全局变量或全局对象来保存对DOM元素或其他对象的引用 这可能导致内存泄漏 解决方案 避免使用全局变量或全局对象 改用合适的作用域来管理变量和对象的生命周期
  • 【STM32】-串口调试中软硬件问题定位过程分享

    1 概述 串口调试中难免会遇到问题 对于新手来说 会觉得无从下手 或急于修改代码 查找软件原因 本文将分享调试中遇到的问题及排故思路 供读者参考 学习 2 问题描述 在将原工程文件移植到原子阿波罗开发板 其他开发板类似 后 上位机无法接收到
  • 【毕业设计】人脸识别算法研究与实现 - 深度学习 机器学习

    文章目录 0 前言 1 机器学习 人脸识别过程 1 1 人脸检测 1 2 人脸对齐 1 3 人脸特征向量化 1 4 人脸识别 2 深度学习 人脸识别过程 2 1 人脸检测 2 2 人脸识别 3 最后 0 前言 Hi 大家好 这里是丹成学长的
  • 2013年4月10日星期三 (DEMO7——6使用blitter)

    本来打算晚上进行封装 不过由于上午进行HDR 只剩下RENDERBLOOM 了 有些疲倦 不妨先进行封装 闲话少说 现在是14 18 开始进行了 这1节还是开头强调了硬件局限性 目前当然没有这个问题了 只考虑封装方法吧 大概浏览了一下这一节
  • 0.0.0.0 网关的含义

    简介 使用 route 命令查看linux的路由时候常遇到 gateway为0 0 0 0 的情况 注意不是目标网段 让人很困惑 仔细看看这些网卡往往时候一些虚拟出来的网卡 比如docker0 0 0 0 0 或者 表示不需要路由 目标地址
  • Addressables学习笔记3: 实际操作实现资源热更新

    本篇基本上是官方演示的东西 介绍一下如何快速使用Addressables实现资源热更 为了能够热更资源 你需要有一个资源服务器使你能下载资源 一 资源准备 首先打开Unity编辑器菜单 gt Window gt Asset Manageme
  • 通用工具类

    package com struts2 jquery utils import java io File import java io IOException import java io OutputStream import java
  • 驱动级鼠标模拟实现_S71500PLC 连接 V90 伺服系统实现位置闭环控制

    S7 1500 运动控制功能支持旋转轴 定位轴 同步轴和外部编码器等工艺对象 并拥有轴控制面板以及全面的在线和诊断功能有助于轻松完成驱动装置的调试和优化工作 S7 1500 支持多种连接方式 可以使用 PROFIBUS DP 和 PROFI
  • Android缓存机制&一个缓存框架推荐

    1 先推荐一个轻量级缓存框架 ACache ASimpleCache ACache介绍 ACache类似于SharedPreferences 但是比 SharedPreferences功能更加强大 SharedPreferences只能保存
  • yagmail群发邮件

    直接给代码 导入yagmail第三方库 import yagmail yagmail SMTP user 邮箱名 host SMTP服务器域名 yag yagmail SMTP user 284036658 qq com host smtp
  • 零信任提升组织的数字安全性

    组织越来越多地实施零信任策略以增强其数字安全状况 根据 信息安全杂志 的统计 有15 的组织表示他们在2019年底之前实施了零信任策略 另有59 的参与者表示 他们打算在未来12个月内实施 要了解为什么如此众多的组织涌向零信任 首先要深入了
  • 性能测试工具---JMeter的安装与使用详解(第一篇)

    目录 一 主流性能测试工具 1 1 LoaderRunner 1 2 JMeter 二 JMeter环境搭建 2 1下载安装JDK 2 2 下载安装JMeter 2 3 JMeter文件目录介绍 2 3 1 bin目录 2 3 2 docs