性能测试工具---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的安装与使用详解(第一篇) 的相关文章

  • Windows使用selenium操作浏览器爬虫

    以前的大部分程序都是操作Chrome 很少有操作Edge 现在以Edge为例 Selenium本身是无法直接控制浏览器的 不同的浏览器需要不同的驱动程序 Google Chrome需要安装ChromeDriver Edge需要安装Micro
  • 自动化生成测试脚本,点点点搞定性能测试!

    性能测试基于jmeter引擎 目前版本暂时没有设计存储于数据库 因此测试过程和结果数据都是属于实时一次性的 需要手动监控和保存数据 环境需要安装jdk1 8版本 当前Jmeter版本是5 6 2 把文件以及包含的报告汉化包放到Autotes
  • Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

    前言 随着Web应用程序的不断发展 自动化测试已成为项目开发中必不可少的一环 然而 验证码的出现却经常会使自动化测试变得更具挑战性 为了解决这个问题 我们需要一种方法来自动识别和处理验证码 从而提高自动化测试的效率和准确性 本文将介绍如何封
  • API调试神器!Apipost

    前言 Apipost是一款支持 RESTful API SOAP API GraphQL API等多种API类型 支持 HTTPS WebSocket gRPC多种通信协议的API调试工具 除此之外 Apipost 还提供了自动化测试 团队
  • 【实战详解】如何快速搭建接口自动化测试框架?Python + Requests

    摘要 本文主要介绍如何使用Python语言和Requests库进行接口自动化测试 并提供详细的代码示例和操作步骤 希望能对读者有所启发和帮助 前言 随着移动互联网的快速发展 越来越多的应用程序采用Web API 也称为RESTful API
  • 自动化测试-数据生成工具

    为什么开发ZenData ZenData帮助文件 ZenData测试数据生成器 ZenData通用数据生成工具 ZenData官网 ZenData是一款无依赖 跨平台 语法简单 使用方便的通用数据生成工具 其主要两大功能 数据生成和数据解析
  • 自动化测试-数据生成工具

    为什么开发ZenData ZenData帮助文件 ZenData测试数据生成器 ZenData通用数据生成工具 ZenData官网 ZenData是一款无依赖 跨平台 语法简单 使用方便的通用数据生成工具 其主要两大功能 数据生成和数据解析
  • 【2024全网最火最全性能教程】一文搞懂性能测试!

    性能测试概念 我们经常看到的性能测试概念 有人或称之为性能策略 或称之为性能方法 或称之为性能场景分类 大概可以看到性能测试 负载测试 压力测试 强度测试等一堆专有名词的解释 针对这些概念 我不知道你看到的时候会不会像我的感觉一样 乱 一个
  • unittest自动化测试断言方法的介绍

    断言如同在测试用例上 类似于预期结果与实际结果是否一致 如果一致则表示测试通过 Assert断言 很好的用于测试结果判断上 更灵活的对预期结果和实际结果进行对比 下面简单的介绍一下unittest的Assert断言 unittest中基础的
  • Apipost:一键生成接口文档

    你是否经常遇到接口开发过程中的各种问题 或许你曾为接口测试与调试的繁琐流程而烦恼 不要担心 今天我将向大家介绍一款功能强大 易于上手的接口测试工具 Apipost 并带你深入了解如何玩转它 轻松实现接口测试与调试 什么是Apipost Ap
  • Postman报错提示 Could not get any response怎么解决

    在通过 postman 请求做接口测试的过程中 有时候会遇到一些报错 当遇到这些报错我们不要着急 看着具体哪里报错 然后进行解决 postman报错 经常使用postman的小伙伴们都应该遇到过一些报错 遇到报错的时候我们不要着急 这么这几
  • JMeter 性能测试基本过程及示例

    jmeter 为性能测试提供了一下特色 jmeter 可以对测试静态资源 例如 js html 等 以及动态资源 例如 php jsp ajax 等等 进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一
  • 5年经验之谈 —— 为什么要做自动化测试?

    自动化测试是一种软件测试方法 通过编写和使用自动化脚本和工具 以自动执行测试用例并生成结果 自动化旨在替代手动测试过程 提高测试效率和准确性 自动化测试可以覆盖多种测试类型 包括功能测试 性能测试 安全测试等 以确保软件系统在各个方面的质量
  • Python自动化测试面试题分享(含答案)

    1 如果页面元素经常发生需求变化 你是如何做 利用po模式 业务逻辑和测试逻辑相分离 当某个页面经常发生变化只需要维护页面 包括元素定位表达式 封装业务方法 不需要修改测试逻辑 页面经常变化正是自动化测试的痛点 我们改不了需求 目前利用po
  • Appium —— 初识移动APP自动化测试框架Appium

    说到移动APP自动化测试 代表性的测试框架非Appium莫属 从今天开始我们将从 APP结构解析 Appium框架学习 安卓 iOS自动化测试实战 自动遍历回归测试 自动化测试平台及持续集成 多个维度一起由浅入深的学废Appium 今天我们
  • Fiddler工具 — 9.命令行和状态栏

    1 命令行 命令行在Fiddler的左下方的黑色窗口 也叫 QuickExec 可以调用 Fiddler的内置命令 这一系列内置的函数用于筛选和操作会话列表中的session 会话 虽然它不是很显眼 但用好它 会让你的工作效率提高 N 倍
  • #私密朋友圈被吐槽有bug?官方致歉!网友:尴尬了......

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Selenium小技巧!

    Chrome DevTools 简介 Chrome DevTools 是一组直接内置在基于 Chromium 的浏览器 如 Chrome Opera 和 Microsoft Edge 中的工具 用于帮助开发人员调试和研究网站 借助 Chro
  • APP端网络测试与弱网模拟

    当前APP网络环境比较复杂 网络制式有2G 3G 4G网络 还有越来越多的公共Wi Fi 不同的网络环境和网络制式的差异 都会对用户使用app造成一定影响 另外 当前app使用场景多变 如进地铁 上公交 进电梯等 使得弱网测试显得尤为重要
  • codeblock使用技巧

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 前言 一 pandas是什么 二 使用步骤 1 引入库 2 读入数据 总结 前言 提示 这里可以添加本文要记录的大概内容 例如 随着人工智能的不断发展 机器学习这门

随机推荐

  • 爬虫合集!(看这里)

    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