性能测试工具架构

背景

性能测试工具(LoadRunner为例)
性能测试工具通常是指那些用来支持压力、负载测试,能够录制和生成脚本、设置和部署场景、产生并发用户和向系统施加持续压力的工具。
性能测试工具录制的是服务端与应用之间的通信数据,而不是应用的GUI操作。选取什么协议,取决于应用和客户端之间的通信协议,了解性能测试工具的架构有助于帮助我们理解性能测试工具的原理。(一起了解下吧,go!go!go!)

性能测试工具架构

  • 背景
  • 一、虚拟用户脚本生成器
  • 二、压力产生器
  • 三、用户代理
  • 四、压力调度和监控工具
  • 五、压力结果分析工具

一、虚拟用户脚本生成器

功能
(1)通过Proxy作为客户端和服务器之间的中间人,接收从客户端发送的数据包,记录并将其转发给服务端;接收从服务端返回的数据流,记录并返回给客户端
(2)对数据流进行分析,用脚本函数将客户端和服务端的交互过程体现为脚本语句。
(3)虚拟用户脚本生成器一般自带IDE环境,用户可以通过该IDE环节对脚本进行修改和调试,例如进行参数化、关联和Log输出
简单画一下就如下图所示
在这里插入图片描述

二、压力产生器

根据脚本内容产生实际的负载(进程或者线程)。例如一个场景需要产生100个虚拟用户,则压力产生器就会在调度下生成100个线程或者进程,每个线程都对指定的脚本进行解释执行。

三、用户代理

使用背景:要实现大量用户并发时,一台机器的系统资源有限,唯一的解决办法是通过多台机器进行协作,通过“用户代理”产生步调一致的虚拟用户。
用户代理是运行在负载机上的进程,与产生负载压力的进程或者线程协作,接收调度系统的命令,调度产生负载压力的进程或线程,一般以后台方式在负载机上运行,此处提供一个词条链接: 分布式压测,感兴趣可以了解下。

四、压力调度和监控工具

(1)压力调度工具可以根据用户的场景要求,设置各种不同脚本的虚拟用户数量,设置同步点等。
例如线程1设置100个用户执行脚本,线程2设置120个用户执行脚本,用户数按照每分钟增加10个的方式增长,不同的线程可以设置不同的调度策略。
(2)监控系统:
可以对各种数据库、应用服务器、各种服务器的主要性能计数器进行监控。不同的性能测试工具可以提供不同类型的服务器性能计数器监控的能力,是否具有强大的监控能力也是衡量性能测试工具是否完备的指标之一。
相关性能指标可以参考鄙人性能测试基础知识(三)性能指标这一篇文章

五、压力结果分析工具

压力结果分析工具用来辅助进行测试结果的分析。
性能测试工具附带的分析工具一般都能将监控系统获取的性能计数器值生成曲线图、折线图等图表,还能根据用户的需求建立不同曲线之间的叠加、关联操作,从而提供从各方面揭示压力测试结果的能力。
压力结果分析工具不能替代分析者进行性能结果分析,只是一种协助的手段,毕竟测试是总会遇到各种见鬼的情况,得依靠测试工程师的知识积累和经验去分析。

wuu~
又是学到知识的一天~
看到这了,也给你点个赞吧~
在这里插入图片描述

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

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

相关文章

【Spring】自定义注解 + AOP 记录用户的使用日志

目录 ​编辑 自定义注解 AOP 记录用户的使用日志 使用背景 落地实践 一:自定义注解 二:切面配置 三:Api层使用 使用效果 自定义注解 AOP 记录用户的使用日志 使用背景 (1)在学校项目中,安防平台…

【RT-DETR有效改进】 DySample一种超级轻量的动态上采样算子(上采样中的No.1)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、 本文介绍 本文给大家带来的改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具…

整理:汉诺塔简析

大体上,要解决一个汉诺塔问题,就需要解决两个更简单的汉诺塔问题 以盘子数量 3 的汉诺塔问题为例 要将 3 个盘子从 A 移动到 C,就要: 将两个盘子从 A 移动到 B(子问题 1) 为了解决子问题 1,就…

clickhouse在MES中的应用-跟踪扫描

开发的MES,往往都要做生产执行跟踪扫描,这样会产生大量的扫描数据,用关系型数据库,很容易造成查询冲突的问题。 生产跟踪扫描就发生的密度是非常高的,每个零部件的加工过程,都要被记录下来,特别…

Opencv(C++)学习 TBB与OPENMP的加速效果实验与ARM上的实践(三)

接上文,本章尝试在RV1106上使用TBB。依然是一言难尽,此文依然只是记录实践过程。 源码下载,编译TBB 下载地址: https://github.com/oneapi-src/oneTBB 版本使用 oneTBB-2021.11.0,这个版本可以使用cmake编译。 cmake配置完后&am…

动手学深度学习v2-线性回归-笔记

简化核心模型 假设1: 影响房价的关键因素是卧室个数,卫生间个数和居住面积,记为 x 1 x_{1} x1​, x 2 x_{2} x2​, x 3 x_{3} x3​假设2: 成交价是关键因素的加权和 y w 1 x 1 w 2 x 2 w 3 x 3 b yw_{1}x_{1}w_{2}x_{2}w_{3…

鲲鹏--垂直生态领导者

这是ren_dong的第24篇原创 1、概述 华为鲲鹏920:性能最高的ARM架构服务器芯片 鲲鹏是华为在芯片领域布局的重要一环 ,是垂直生态的领导者,鲲鹏芯片诞生于2020年 ,已获得ARMv8架构的永久授权,主要聚焦通用计算领域华为针…

typecho 在文章中添加 bilibili 视频

一、获取视频来源: 可以有2种方式来定位一个 bilibili 视频: 第一种是使用 bvid 参数定位第二种是使用 aid 参数定位 如何获取这两个参数? 首先我们可以看看 bilibili 网站中的视频页面链接其实可以分为两种: 第一种是类似&a…

建材智能工厂数字孪生可视化管控平台,推进建材行业数字化转型

建材智能工厂数字孪生可视化管控平台,推进建材行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的重要趋势。在建材行业中,智能工厂和数字孪生技术的应用正在改变传统的生产模式和管理方式,为行业的数字化转型…

C语言常见面试题:C语言中如何进行加密解密编程?

在C语言中进行加密和解密编程通常涉及到使用加密算法和相关的库。下面是一些常用的加密和解密算法以及如何使用它们的基本说明: AES加密算法: AES(Advanced Encryption Standard)是一种常用的对称加密算法。在C语言中,…

clr的执行模型-笔记

学习来源:《CLR via C by Jeffrey Richter 》第四版,第1章 clr的执行模型 1.C#编译生成执行程序集文件 编译文件的组成:pe32/pe32头,clr头,元数据,IL pe32/pe32头:windows标准执行文件头 cl…

mac 12.7.3 Unity 2021.3.14 XCode 14.2 成功将unity游戏编译到IPhone中,并上架appstore

上一篇文章 mac 10.15.7 & Unity 2021.3.14 & XCode 12.4 -> Unity IOS 自动安装 Cocoapods 失败解决方法 从上一篇文章完成后,unity 已经可以导出 xcode 工程,但是,app是没法上架到appstore上的,原因如下&am…

C++函数对象-运算符函数对象 - 比较 - 实现 x == y 的函数对象(std::equal_to)

任何定义了函数调用操作符的对象都是函数对象。C 支持创建、操作新的函数对象&#xff0c;同时也提供了许多内置的函数对象。 运算符函数对象 C 针对常用的算术和逻辑运算定义了很多函数对象&#xff1a; 比较 实现 x y 的函数对象 std::equal_to template< class T >…

DelayQueue的使用

具体思路&#xff1a; 在容器初始化的时候就创建出一个 延迟队列 然后项目启动后随即启动一个线程一直监听这个队列 手动调用接口往队列中添加任务 依赖 一个最简单的web的应用即可项目文件结构 第一步&#xff1a;在项目启动的时候就创建出一个延迟队列 Configuration publ…

小程序定制开发前,应该考虑些什么?

引言 在移动互联网时代&#xff0c;小程序已经成为许多企业和个人推广业务、提供服务的理想平台。然而&#xff0c;在进行小程序定制开发之前&#xff0c;开发者和业务方需要细致入微地考虑一系列关键因素&#xff0c;以确保最终的小程序既能满足用户需求&#xff0c;又能够顺…

PHP入门指南:起步篇

PHP入门指南&#xff1a;起步篇 PHP入门指南&#xff1a;起步篇什么是PHP&#xff1f;PHP 的优点PHP 开发环境搭建选择本地服务器软件包安装PHP环境配置Web服务器和PHP测试PHP安装 第一个PHP脚本PHP基础语法标记注释变量数据类型常量条件语句循环函数 PHP入门指南&#xff1a;起…

Oracle Server一台价值百万的服务器内存更换过程

数据库代码敲多了&#xff0c;看乏了吧&#xff01; 带各位DBA看看你们的数据库运行在什么样的硬件上。 1、故障现象 事发时2号位置报警 登录ILO发现内存报警 查看详细信息 查看详细报警 2、关于ORACLE 服务器DIMM 备用 默认情况下在 Oracle ILOM 中启用 DIMM 备用。由 DIMM 提…

[linux] kolla-ansible 部署的openstack 修改mariadb默认端口号

kolla-ansible 部署前修改global.yml #freezer_database_backend: "mariadb" database_port: 9306 mariadb_port: 9306如果已经部署成功&#xff0c;直接修改配置文件里的端口号重启是没有用的&#xff0c;怀疑内部做了缓存&#xff0c;查看openstack 使用的memcach…

yarn/npm certificate has expired

目录 报错 原因&#xff1a;HTTPS 证书验证失败 方法 a.检查网络安全软件&#xff1a;可能会拦截或修改 HTTPS 流量 b.strict-ssl:false关闭验证【临时方法】 报错 info No lockfile found. [1/4] Resolving packages... error Error: certificate has expired at TLS…

Java类的继承

XHTMLMapper继承 XWPFDocumentVisitor&#xff1a; 由于endVisitTableCell是抽象方法&#xff0c;XHTMLMapper中必须要实现&#xff1b; existErr()子类是否重写都是自由的&#xff1b; public abstract class XWPFDocumentVisitor<T, O extends Options, E extends IXWPFM…