【5.20】四、性能测试—性能测试工具
目录
4.5 性能测试工具
4.5.1 LoadRunner
4.5.2 JMeter
4.5 性能测试工具
性能测试是软件测试中一个很重要的分支,人们为了提高性能测试的效率,开发出了很多性能测试工具。一款好的测试工具可以极大地提高测试效率,为发现软件缺陷提供重要依据。两个比较常用的性能测试工具:LoadRunner和JMeter。
4.5.1 LoadRunner
LoadRunner是一款适用于各种体系架构的性能测试工具,它能预测系统行为并优化系统性能,其工作原理是通过模拟一个多用户(虚拟用户)并行工作的环境来对应用程序进行负载测试。测试完成,LoadRunner可以自动生成分析报告,给用户提供软件产品所需要的性能信息。
相比于其他性能测试工具,LoadRunner主要有以下特点:
- (1)广泛支持业界标准协议。
- (2)支持多种平台开发的脚本。
- (3)可创建真实的系统负载。
- (4)具有强大的实时监控与数据采集功能。
- (5)可以精确分析结果,定位软件问题。
LoadRunner好用且功能强大,唯一美中不足的是它不是开源产品,使用LoadRunner的用户需要向HP公司付费。
LoadRunner工具主要由3部分组成:
1. VuGen(Virtual User Generator)
LoadRunner是通过多个虚拟用户在系统中同时工作或访问系统的环境来进行性能测试的,虚拟用户进行的操作通常被记录在虚拟用户脚本中,而VuGen就是用于创建虚拟用户脚本的工具,因此它也被称为虚拟用户脚本生成器。
2. Controller
Controller用于创建和控制LoadRunner场景,场景负责定义每次测试中发生的事件,包括模拟的用户数、用户执行的操作以及测试要监控的性能指标等。
3. Analysis
Analysis是LoadRunner的数据分析工具,它可以收集性能测试中的各种数据,对其进行分析并生成图表和报告供测试人员查看。
4.5.2 JMeter
JMeter的工作原理与LoadRunner类似,它也是通过模拟出多个虚拟用户向服务器发送请求,检测响应返回情况,如并发用户数、响应时间、资源占用情况等,以此检测系统的性能。
与LoadRunner不同的是,JMeter工具通过线程组创建虚拟用户,一个线程组可以设置多个线程,每个线程就是一个虚拟用户,这些线程相互独立,互不影响。虚拟用户向服务器发送一个请求,JMeter称之为一次采样,这个操作由采样器来完成。
JMeter工具主要由以下几个核心组件构成:
- (1)逻辑控制器(Logic Controller):逻辑控制器确定采样器的执行顺序。
- (2)配置元件(Config Element):配置元件可用于设置默认属性和变量等数据,供采样器获取所需要的各种配置信息。
- (3)前置处理器(Per Processors):在实际的请求发出之前,对即将发出的请求进行特殊的处理。
- (4)定时器(Timer):用于在操作之间设置等待时间。
- (5)采样器(Sampler):采样器是JMeter的主要执行组件,它用于向服务器发送一个请求,并记录响应信息,包括成功/失败、响应时间、数据大小等。
- (6)后置处理器(Post Processors):后置处理器一般放在采样器之后,用来处理服务器的返回结果。
- (7)断言(Assertions):断言用于检查测试得到的数据是否符合预期结果。
- (8)监听器(Listener):用于监听测试结果。此外,监听器还具备查看、保存和读取测试结果的功能。
使用JMeter进行性能测试时,在线程组中设置好相关参数,并通过配置元件、前置处理器、定时器、断言等组件设置其他的参数信息,然后使用采样器发送请求,通过后置处理器、断言、监听器等组件分析查看测试结果。
与LoadRunner相比,JMeter是一款开源免费的轻量级工具,安装简单,并且支持二次开发,但是在性能测试过程中,JMeter的录制功能、环境调试功能与LoadRunner都存在一定差距,而且JMeter的报表较少,结果分析也没有LoadRunner详细。
相关文章:
【5.20】四、性能测试—性能测试工具
目录 4.5 性能测试工具 4.5.1 LoadRunner 4.5.2 JMeter 4.5 性能测试工具 性能测试是软件测试中一个很重要的分支,人们为了提高性能测试的效率,开发出了很多性能测试工具。一款好的测试工具可以极大地提高测试效率,为发现软件缺陷提供重要…...
朗诵素材-《少年正是读书时》(两角色主持朗诵)
少年正是读书时 1、少年正是读书时 男:我们生活在/古老的土地上 男:我们拥有/共同的梦想 女:那朗朗的书声/那浓浓的墨香 女:都在告诉我们 合:少年正是/读书时 2、为何要读书 男:养心&am…...
凭借这个笔记,拿下8家大厂offer....
如何拿到多家大厂的offer,没有过硬的实力,就需要不断的学习。 我是如何拿到,阿里,腾讯,百度等八家大厂的offer的,今天我就给大家来分享我的秘密武器,阿里大神整理的包括,测试基础&am…...
介绍一下全链路压测平台的相关内容
随着互联网技术的不断发展,越来越多的企业开始依赖互联网来实现业务的发展和增长。而对于这些企业而言,如何保证他们的业务在高并发、高负载的情况下依然能够正常运行,是非常重要的一个问题。为了解决这个问题,企业可以使用全链路…...
对于无效的数据,该如何处理
一、无效数据的来源: 在进行数据管理时,无效数据是非常常见的问题。 无效数据可能来自于数据采集、输入错误、数据处理或存储错误等方面。 这些无效数据会对结果造成严重的影响,因此需要及时发现和处理。 二、处理无效数据: …...
港联证券:机器人行业有望迎来整体性机会 六氟磷酸锂翻倍上涨
表示,当前AI调整的时间空间已接近13年水位,且调整的促发因素有望缓和,后续可积极一些。一方面,13年三次调整时间在40日以内、幅度在15%以内。当前AI调整已持续1个月、幅度在10%以上,时空已接近历史。另一方面ÿ…...
css 伪类选择器 结构伪类
css 伪类选择器 结构伪类 常用的: :first-child 所有兄弟元素中的第一个 :last-child 所有兄弟元素中的最后一个 :nth-child(n) 所有兄弟元素中的第n个 :first-of-type 所有同类型兄弟元素中的第一个 :last-of-type 所有同类型兄弟元素中的最后一个 :nth-of-type(…...
常用的表格检测识别方法-表格区域检测方法(上)
常用的表格检测识别方法 表格检测识别一般分为三个子任务:表格区域检测、表格结构识别和表格内容识别。本章将围绕这三个表格识别子任务,从传统方法、深度学习方法等方面,综述该领域国内国外的发展历史和最新进展,并提供几个先进…...
【运维知识进阶篇】集群架构-Rewrite重定向
Rewrite主要实现url地址重写,以及重定向,就是把传入web的请求重定向到其他url的过程。 分以下几种场景使用 1、地址跳转,用户访问一个URL,将其定向到另一个URL 2、协议跳转,用户通过http协议请求网站时,…...
JavaScript如何使用while循环
JavaScript 中的 while 循环是一种常用的循环结构,用于在满足一定条件时重复执行一段代码块。while 循环会先检查条件是否为真,如果为真,则执行循环体中的代码,然后再次检查条件。当条件变为假时,循环会结束。 while(…...
『MySQL 实战 45 讲』16 - “order by” 是怎么工作的
“order by” 是怎么工作的 首先创建一个表 CREATE TABLE t ( id int(11) NOT NULL, city varchar(16) NOT NULL, name varchar(16) NOT NULL, age int(11) NOT NULL, addr varchar(128) DEFAULT NULL, PRIMARY KEY (id), KEY city (city) ) ENGINEInnoDB;全字段排序 在 cit…...
怎么给移动硬盘查错?移动硬盘查错能恢复数据吗
移动硬盘在长期使用或使用不当的情况下,可能会出现硬盘文件损坏或者出现坏道等问题,影响数据安全和文件操作。这时候,移动硬盘查错工具就派上用场了。它可以帮助用户发现移动硬盘中的问题,并且还可以对移动硬盘进行修复。 但是&a…...
javaIO流之缓冲流
目录 简介1、字节缓冲流1.1构造方法1.2缓冲流的高效1.3为什么字节缓冲流会这么快?1.4byte & 0xFF 2、字符缓冲流2.1构造方法2.2字符缓冲流特有方法 3、练习 简介 Java 的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高 I/O 操作…...
定义制造业操作(定义 MES/MOM 系统)
制造业操作包含众多工厂级活动,涉及设备(定义、使用、时间表和维护)、材料(识别、属性、位置和状态)、人员(资格、可用性和时间表),以及这些资源与包含其信息碎片的众多系统之间的互…...
人工智能专栏第二讲——人工智能的基础技术
目录 一、机器学习 二、深度学习 三、自然语言处理 四、计算机视觉 五、总结 在第一讲中,我们介绍了人工智能的概念和发展趋势&#...
注意!ChatGPT的Plus账号也会被封禁
文 / 高扬(微信公众号:量子论) 最近经常看到有人丢个截图,然后悲伤地说,ChatGPT账号被封了。 这不是账号被封,而是所用的代理节点被OpenAI封了,换个节点即可。 这个截图才是账号真正被封的提示&…...
理解:Public Key Cryptography的应用
Applications Encryption with public key, decryption with private key Confidentiality or secrecy Encryption with private key, decryption with public key Integrity/authentication 一些概念特征的明确: public key:所有人都知道(公…...
深度学习中的图像分类介绍
文章目录 深度学习中的图像分类介绍深度学习中的图像分类技术卷积神经网络 (Convolutional Neural Network, CNN)深度残差网络 (Deep Residual Network, ResNet)卷积神经网络的变种 图像分类的应用计算机视觉目标检测人脸识别自动驾驶图像搜索视频监控 医疗成像疾病分类病灶识别…...
自然语言处理基础
以下所有内容来自《自然语言处理 基于预训练模型的方法》 1. 文本的表示 利用计算机对自然语言进行处理,首先要解决语言在计算机内部的存储和计算问题。使用字符串表示计算文本的语义信息的时候,往往使用基于规则的方法。如:判断一个句子编…...
低代码与其拓荒,不如颠覆开发行业
目录 一、前言 二、低代码是一个值得信赖的“黑盒子” 粗略总结,开发者对低代码平台所见即所得设计器有两种反应: 三、人人都爱黑盒子 四、用“低代码平台”来开发是什么样的感受? 五、结论 一、前言 在科幻电影中,我们看到…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
一、前言说明 在2011版本的gb28181协议中,拉取视频流只要求udp方式,从2016开始要求新增支持tcp被动和tcp主动两种方式,udp理论上会丢包的,所以实际使用过程可能会出现画面花屏的情况,而tcp肯定不丢包,起码…...
【力扣数据库知识手册笔记】索引
索引 索引的优缺点 优点1. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。2. 可以加快数据的检索速度(创建索引的主要原因)。3. 可以加速表和表之间的连接,实现数据的参考完整性。4. 可以在查询过程中,…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
第25节 Node.js 断言测试
Node.js的assert模块主要用于编写程序的单元测试时使用,通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试,通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Typeerror: cannot read properties of undefined (reading ‘XXX‘)
最近需要在离线机器上运行软件,所以得把软件用docker打包起来,大部分功能都没问题,出了一个奇怪的事情。同样的代码,在本机上用vscode可以运行起来,但是打包之后在docker里出现了问题。使用的是dialog组件,…...
