软件测试 —— 性能测试(jmeter)

news2025/7/16 22:35:51

软件测试 —— 性能测试(jmeter)

  • 什么是jmeter
  • 安装jmeter
  • jmeter常用组件
    • 线程组
    • 取样器
    • 结果树

我们之前学习了接口测试工具Postman,我们今天要学习的是性能测试工具——jmeter

什么是jmeter

Apache JMeter 是一个开源的性能测试工具,主要用于对Web应用进行负载和性能测试。它最初设计用于测试Web应用程序,但随着时间的发展,JMeter已经成为了一个多功能的性能测试工具,可以用来测试静态和动态资源、Web动态应用程序、FTP服务器、数据库服务器(通过JDBC)、LDAP服务等多种类型的服务。

以下是关于JMeter的一些关键点:

  • 用途:它可以模拟重负载来测试服务器、网络或对象的强度和性能,也可以用于回归测试以确保应用程序在不同的负载条件下仍然稳定运行。
  • 协议支持:除了HTTP/HTTPS外,还支持多种协议,如FTP、JDBC、JMS、SOAP、REST等。
  • 用户界面:提供图形用户界面(GUI)用于构建和执行测试计划,同时也支持命令行模式用于非GUI的批处理测试。
  • 可扩展性:JMeter拥有丰富的插件生态系统,可以通过第三方插件扩展其功能,例如支持更多类型的取样器、监听器、报告等。
  • 灵活配置:可以配置线程组(模拟用户数量)、定时器(模拟思考时间)、断言(验证响应)、监听器(收集和分析结果)等组件,以创建复杂的测试场景。
  • 结果分析:内置了多种监听器帮助分析测试结果,如聚合报告、视图结果树、响应时间图表等,还可以生成HTML格式的详细测试报告。
  • 跨平台:JMeter是基于Java的应用程序,因此可以在任何支持Java的平台上运行,包括Windows、Linux和macOS。
  • 社区支持:作为Apache软件基金会的一部分,JMeter有一个活跃的开发社区,提供文档、教程和技术支持。

JMeter是一个强大的工具,适用于需要评估系统在不同负载条件下的表现的开发者、测试人员和运维工程师。它不仅限于Web应用的性能测试,也可以应用于其他类型的软件和服务。

安装jmeter

首先jmeter是要在java环境上运行的,如果大家的java环境还没有安装好,可以在网上搜搜教程,这里不再过多赘述,我们这里主要介绍jmeter在配置好java环境之后的安装:

安装完java环境之后,我们可以来到jmeter的官网:

https://jmeter.apache.org/

在这里插入图片描述点击左旁的Downloads Releases:
在这里插入图片描述
选择Binaries下的zip:
在这里插入图片描述下载完之后,找个地方解压:
在这里插入图片描述
点进去找到bin文件:
在这里插入图片描述再点进去,找到jmeter.bat:
在这里插入图片描述双击,看看jmeter是否能运行:
在这里插入图片描述这样的话运行成功,但是这样我们运行jmeter时每次都要到bin文件目录下打开jmeter.bat,这样很麻烦,我们可以把bin文件的文件目录放到环境变量中:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
新建之后,把文件路径粘进去,然后一直点确定,就可以了。这时候打开cmd,在命令行直接输入jmeter就可以直接启动:

在这里插入图片描述如果想改变jmeter的语言设置,找到jmeter.properties:
在这里插入图片描述打开之后找到language这一行,改成language=zh_CN

在这里插入图片描述

jmeter常用组件

线程组

我们进入到jmeter的页面,在新的测试计划右击添加组件:线程组
在这里插入图片描述在这里插入图片描述这张图片显示了JMeter中线程组(Thread Group)的配置界面。以下是各个属性的解析:

  1. 线程数 (Number of Threads):

    • 设置为 1,表示将有1个虚拟用户参与测试。
  2. Ramp-Up时间 (秒) (Ramp-Up Period in Seconds):

    • 设置为 1,表示所有虚拟用户将在1秒内启动。如果设置为0,则所有虚拟用户会立即开始执行任务。
  3. 循环次数 (Loop Count):

    • 设置为 1,表示每个虚拟用户将执行一次测试计划中的采样器。如果选择“永远”(Forever),则虚拟用户将持续执行直到测试被手动停止。
  4. Same user on each iteration:

    • 选中此选项表示在每次迭代中使用相同的用户凭证。这通常用于需要保持会话状态的测试场景。
  5. 延迟创建线程直到需要 (Delay Thread Creation Until Needed):

    • 未选中,这意味着线程会在测试开始时立即创建。
  6. 调度器 (Scheduler):

    • 未选中,这意味着测试将持续运行,直到所有线程完成它们的任务或达到循环次数。
  7. 持续时间 (秒) (Duration in Seconds):

    • 空白,表示没有设置持续时间。如果设置了持续时间,测试将在指定的时间后自动停止。
  8. 启动延迟 (秒) (Start Delay in Seconds):

    • 空白,表示没有设置启动延迟。如果设置了启动延迟,测试将在指定的时间后开始。

我们现在只是设置了线程组,还没有设置请求,还无法执行,如果我们要执行,还要添加取样器

取样器

在线程组上右击,添加HTTP取样器:

在这里插入图片描述在这里插入图片描述我们填入百度的信息试一下:
在这里插入图片描述这个时候如果我们想看运行结果,要添加结果树

结果树

在这里插入图片描述
在这里插入图片描述
这个时候我们可以点击左上方的绿色按钮:
在这里插入图片描述
在这里插入图片描述这个时候可以看到我们的运行结果,我们可以看一下请求和相应数据:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2281480.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Kubernetes v1.28.0安装dashboard v2.6.1(k8s图形化操作界面)

准备工作 Kubernetes v1.28.0搭建教程请参考:Kubernetes v1.28.0集群快速搭建教程-CSDN博客 查看当前集群nodes都是ready状态 查看当前pods都是running状态 下载并修改配置文件 下载 recommended.yaml ,下载好之后,进入文件编辑 下载地址…

(2024,MLLM,Healthcare,综述)多模态学习是否已在医疗保健领域实现通用智能?

Has Multimodal Learning Delivered Universal Intelligence in Healthcare? A Comprehensive Survey 目录 0. 摘要 1. 简介 5. MLLM 5.1 模态编码器与跨模态适配器 5.1.1 图像编码器 (Image Encoder) 5.1.2 语言模型 (Language Model) 5.1.3 跨模态适配器 (Cross-moda…

图形化数据报文转换映射工具

目录 概要整体架构流程技术名词解释技术细节小结 概要 在当今数字化时代,数据的处理和分析是企业、科研机构以及各类组织日常运营的核心环节。数据来源广泛,格式多样,常见的数据格式包括XML(可扩展标记语言)和JSON&a…

如何打造一个高并发系统?

今天和大家聊聊作为一个后端开发,在实际工作中,我们如何打造一个高并发的系统? 如下图所示,大概有六个层面,我们结合具体的场景直播间签到去一一细说。 一、前端 1、打散请求:即把用户的接口分散一点去请求…

acm培训 part 1(学习总结)

第一部分的重点为语法糖,时空复杂度,stl容器等等,下面就简单介绍一下这些部分。 1. 语法糖 1.1 定义 语法糖是由英国计算机科学家彼得约翰兰达提出的一个术语,指的是编程语言中添加的某种语法,这种语法对语言的功能…

【ComfyUI】python调用生图API,实现批量出图

官方给的示例: https://github.com/comfyanonymous/ComfyUI/blob/master/script_examples/websockets_api_example.pyhttps://github.com/comfyanonymous/ComfyUI/blob/master/script_examples/websockets_api_example.pyhttps://github.com/comfyanonymous/ComfyU…

【2024年华为OD机试】(B卷,100分)- 非严格递增连续数字序列 (JavaScriptJava PythonC/C++)

一、问题描述 题目描述 给定一个仅包含大小写字母和数字的字符串,要求找出其中最长的非严格递增连续数字序列的长度。非严格递增连续数字序列指的是序列中的数字从左到右依次递增或保持不变,例如 12234 就是一个非严格递增连续数字序列。 输入描述 输…

C# OpenCV机器视觉:红外体温检测

在一个骄阳似火的夏日,全球却被一场突如其来的疫情阴霾笼罩。阿强所在的小镇,平日里熙熙攘攘的街道变得冷冷清清,人们戴着口罩,行色匆匆,眼神中满是对病毒的恐惧。阿强作为镇上小有名气的科技达人,看着这一…

Android Audio音频系统

一、Audio音频架构简介 二、Android Audio系统框架 三、Audio架构以及各层的代码分布图 四、音频框架在Android系统中的进一步细化 五、创建声卡和注册声卡 六、Android Audio系统的结构 七、Audio音频原理介绍 八、Audio音频策略制定与策略执行的调用流程 九、Android…

配电自动化系统“三区四层”数字化架构

目录 一、“三区四层”数字化架构的特点和优势 二、“三区四层”数字化架构面临的挑战 三、针对“三区四层” 数字化架构在实际应用中面临挑战的措施 配电自动化系统 “三区四层” 数字化架构是一种用于规范和指导配电自动化系统建设与运行的体系结构,对保障电力…

编程界“华山论剑”:PHP与Go,谁主沉浮?

在编程的广阔天地里,选择一门合适的编程语言就如同为一场冒险挑选趁手的武器,至关重要却又常常令人纠结。当我们面对 PHP 与 Go 这两种备受瞩目的编程语言时,这种纠结愈发明显:PHP,作为 Web 开发领域的老牌劲旅&#x…

element tbas增加下拉框

使用Tabs 标签页的label插槽,嵌入Dropdown 下拉菜单,实现Tabs 标签页增加下拉切换功能 Tabs 标签页 tab-click"事件"(这个事件当中到拥有下拉框的tab里时,可以存一下Dropdown 第一个菜单的id,实现点击到拥有…

AIGC视频生成模型:ByteDance的PixelDance模型

大家好,这里是好评笔记,公主号:Goodnote,专栏文章私信限时Free。本文详细介绍ByteDance的视频生成模型PixelDance,论文于2023年11月发布,模型上线于2024年9月,同时期上线的模型还有Seaweed&…

mysql 学习3 SQL语句--整体概述。SQL通用语法;DDL创建数据库,查看数据库,删除数据库,使用数据库;

SQL通用语法 SQL语句分类 DDL data definition language : 用来创建数据库,创建表,创建表中的字段,创建索引。因此成为 数据定义语言 DML data manipulation language 有了数据库和表以及字段后,那么我们就需要给这个表中 添加数…

Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用

QTableView 是QT的一个强大的表视图部件,可以与模型结合使用以显示和编辑数据。QSqlQueryModel、QSqlTableModel 都是用于与 SQL 数据库交互的模型,将二者与QTableView结合使用可以轻松地展示和编辑数据库的数据。 QSqlQueryModel的简单应用 import sys from PySid…

C语言文件操作:标准库与系统调用实践

目录 1、C语言标准库文件操作 1.1.题目要求: 1.2.函数讲解: fopen 函数原型 参数 常用的打开模式 返回值 fwrite函数 函数原型 参数 返回值 注意事项 fseek函数 函数原型 参数 返回值 fread函数 函数原型 参数 返回值 fclose 函数…

【2024年华为OD机试】 (C卷,100分)- 多段线数据压缩(JavaScriptJava PythonC/C++)

一、问题描述 问题描述 给定一个多线段的坐标列表,每个坐标由行号和列号表示。多线段的走向只能是水平、竖直或斜向45度。输入数据包含冗余的坐标点,要求输出最简化的坐标列表,仅保留起点、拐点和终点。 输入描述 输入数据为多线段的坐标…

状态模式——C++实现

目录 1. 状态模式简介 2. 代码示例 3. 单例状态对象 4. 状态模式与策略模式的辨析 1. 状态模式简介 状态模式是一种行为型模式。 状态模式的定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。 通俗的说就是一个对象…

数据库SQLite和SCADA DIAView应用教程

课程简介 此系列课程大纲主要包含七个课时。主要使用到的开发工具有:SQLite studio 和 SCADA DIAView。详细的可成内容大概如下: 1、SQLite 可视化管理工具SQLite Studio :打开数据库和查询数据;查看视频 2、创建6个变量&#x…

java开发,IDEA转战VSCODE配置(mac)

一、基本java开发环境配置 前提:已经安装了jdk、maven、vscode,且配置了环境变量 1、安装java相关的插件 2、安装spring相关的插件 3、vscode配置maven环境 打开 VsCode -> 首选项 -> 设置,也可以在setting.json文件中直接编辑&…