性能测试工具原理与架构

 

在性能测试的学习过程中,坚持思想与工具(分开)并行,当前面世面上的性能测试书籍大多把理论与loadrunner融为一体讲解,这样做是正确的,因为有一些性能名词概念也源于工具。但是,性能测试不是loadrunner,所有的作者也是这么认为的。但他们在讲性能测试的时候讲的就是loadrunner有,只是讲的多少不同罢啦。

你是否觉得我对loadrunner有仇?我之所以将其分开来学,只是希望自己在学习性能测试的时候不要被loadrunner局限了而已。只是觉得在做性能测试时不要带loadrunner的思维,这样更容易把握性能测试的本质。

性能测试工具,从广义上讲,在性能测试过程中使用到的所有工具都可以称其为性能测试工具。从狭义上来讲,我们可以把性能测试工具分为服务器端性能测试工具与前段性能测试工具。

服务器端性能测试工具也我们测试人员通常所认为的性能测试工具。LoadRunner、JMeter、SilkPerformance、服务器端压力性能工具需要支持产生压力和负载,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力。

前端性能测试工具应用比较广泛,开发人员,前端开发人员、测试人员都会经常用到。Firebug 、fildder2、Yslow 、前端性能测试工具只需要关于心浏览器等客户端工具对具体需要展现的页面的处理过程。

服务器性能测试工具原理

性能测试工具的主要作用是通过模拟生产环境中的真实业务操作,对被测试系统实行压力负载测试,监视被 测试系统在不同业务、不同压力性能下的性能表现,找出潜在的性能瓶颈进行分析、优化。

客户端与服务器相当于两个人,通过信息来进行交流。由于初次见面不好意思直接交流,与是找来了中间传话人,客户端把信息告诉给传话人,由传话人来转达给服务器。那么服务器反馈的信息也由传话人转达给客户端。一般性能测试工具都需要录制或编写客户端行为脚本。

这样传达人就有了客户端的行为能力,从而假扮客户端来欺骗服务器,与之进行通信。有了客户端行为了传达人可以进行自我复制。从而变出N多个传达人对服务器进通信。---这个传达人的行为和能力也就是性能测试工具的基本特质。(突然觉得性能工具像第三者插足,而且是可以自我复制疯狂变态的第三者,哈哈!)

对于目前流行的性能测试工具,他们的基本工作原理都是一致的。在客户端通过多线程或多进程模拟虚拟用户访问,对服务器端施加压力,然后在过程中监控和收集性能数据。

性能测试工具应该具备什么的特质呢?

  1、工具本身占用系统资源少,可扩展性好,可用性强。

  2、能模拟真实业务事务操作,在并发时能真正产生业务压力。(这一点是核心)

  3、对压力测试结果能很好地进行性能分析,快速找出被测试系统的瓶颈。

  4、测试脚本的重复性强。

服务器性能测试工具的架构

  ·用户行为生成部分

我为什么说的这么朦胧,对于熟悉loadrunner的朋友,我说成虚拟用户脚本生成器,你更容易理解,这个脚本,我们可以录制,也可以手工编写。你不要以为这是生成用户行为的唯一方式。因为在JMeter成中是添加各种组件,通过对组件的配置来完成用户行为的,当然也可以通过录制。而在相对简陋的性能测试工具curl_loader(linux环境下的运行的),他是通过编写配置文件的形式来描述用户形为的。

我前面也有提了,虽然性能测试工具由不同的形式来描述,但他们的原理是一样的,都是通过Proxy方式来实现,具体来说,Proxy作为客户端和服务器之间的中间人,接收客户端的数据包。

  ·压力产生器

压力产生器用于根据脚本内容产生实际的负载,在性能测试工具中,压力产生器扮演着“产生负载”的角色。也就根用户的设置,进行自我复制来生成多个客户端向服务器发送请求。对于工具来说,每复制出来的一份就是一个进程或线程,进程和线程的运行是要占用系统资源的。所以,对一台压力测试机来说能运行的虚拟用户数也是有限的。根基测试机的配置而定。那么这个时候就要通过多台测试机合作,来模拟更多的虚拟用户向服务器发请求。

那么,对于性能测试来说,很重要的一点就是产生“并发”的请求,不然就不会对服务器产生压力。那多台机子如何产生“步调一致”的虚拟用户呢?使用“用户代理”

  ·用户代理

用户代理是运行在负载机上的进程,该进程与产生负载压力的进程或线程协作,接收调度系统的命令,调度产生负载压力的进程或线程,从这个意义上看,用户代理也是压力产生器的一部分。

  ·调度能力

我们在做复杂的性能测试时,常常会设计各种场景,不同的虚拟用户数,不同事务的用户比例,运行时间,设置同步点等,这个时候也需要我们的测试工具有压力调度能力。从而才能更真实的模拟我们所设计的运行场景。

  ·监控系统

监控系统是性能测试工具直接与用户进行交互的主要部分,监控系统,主要用户在压力测试过程中对各种软硬件进行监控,如对数据库、应用服务器,服务器的主要性能表现情况进行监控。用于判断系统当前处于什么状态。

当然,监控系统不是性能工具必须的部分,可以通过软硬件系统自身的监控工具或者第三方监控工具进行监控。但是否有强大的性能计数器监控系统是衡量性能测试工具是否强大的指标之一。

  ·压力结果分析

压力结果分析工具可以用来辅助进行测试结果的分析,性能测试工具一般都能将监控系统获取的性能技术数器值生成曲线图,折线图等各种图表。通过展现性能测试过程中的各种参数指标,来供测试人员进行分析。

但这里需要强调的是,压力结果分析工具本身不能代替分析者进行性能结果分析,而只是提供多种不同的数据揭示和呈现方法而已。对于这些数据进行分析必然要依靠测试工程师对系统性能分析的知识和经验。

对上面介绍的性能测试工具架构的组成部分,不是第一个性能测试工具都具备,而所具备的强大程度也不相同。比如,有些性能测试工具不具备用户代理能,有些监控系统能监控的资源很有限或简陋,有些结果分析数据的呈现不够详尽等。

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

生物安全柜验证:气流流型、粒子、浮游菌等参考标准

生物安全柜也是制药行业常见设备,根据GMP的要求,需对生物安全柜定期进行验证确认,确保生物安全柜的性能满足GMP洁净厂房的相关要求。 生物安全柜是实验室的基本设备,也是生物安全实验室的一级安全隔离屏障。其最重要的作用就是气流…

简过网:公务员面试考什么?抓紧时间收藏!

你知道吗?在公务员考试中,其实笔试不是最难的,难的是面试,那么,公务员的面试都考什么呢?这篇文章告诉你答案! ​ 对于公务员的面试一般可分为三种形式: 一、无领导: 什…

Unity | Shader基础知识(第十八集:Stencil应用-透视立方盒子)

目录 一、前言 二、场景布置 三、 shader部分 1.图片的部分 2.图片部分纯净代码 3.遮罩部分复习 4.深度写入 ZWrite 5.颜色遮罩ColorMask 6.遮罩纯净代码 四、场景中shader使用 五、作者的碎碎念 一、前言 因为这个内容稍微有点多,我尽力讲清楚了&#x…

Windows安装Nacos【超详细图解】

目录 一、下载 Nacos 二、解压 Nacos 三、编辑配置文件 四、创建数据库 五、启动 Nacos 六、进入控制台 一、下载 Nacos Nacos v2.3.2 官方网址 二、解压 Nacos 三、编辑配置文件 主要修改数据库用户名、密码、鉴权是否开启、key value和token # # Copyright 1999-2021 …

Fiddler抓包过滤host及js、css等地址

1、如上图所示 在Filter页面中勾选Hide if URL contains;输入框输入 REGEX:\.(js|css|png|google|favicon\?.*) 隐藏掉包含js、css、png、google等的地址: Hide if URL contains: REGEX:\.(js|css|png|google|favicon\?.*) 2、使Filters设置生效 A…

用Python实现学生信息管理系统

用Python来实现学生信息管理系统 学生信息管理系统(Python) 简介:基本信息管理和学生成绩管理。基本信息管理模块的主要功能有学生信息的添加、删除、修改、显示和学生数据的导入导出,学生成绩管理模块的主要功能有统计课程最高分…

面向 AI 而生的香橙派 AIpro 开发板开箱实测

前几天搞到一块很牛掰的开发板,是香橙派联合华为精心打造的高性能 AI 开发板 – OrangePi AIpro 开发板。 其搭载了昇腾 AI 处理器,可提供 8TOPS INT8 的计算能力,作为单板硬件设备来说,算力杠杠的了,至于跑 AI 模型性…

liunx面试题目

如何看当前Linux系统有几颗物理CPU和每颗CPU的核数? 查看物理cup: cat /proc/cpuinfo|grep -c ‘physical id’ 查看每颗cup核数 cat /proc/cpuinfo|grep -c ‘processor’ 若希望自动实现软件包的更新,可以使用yum-cron并启动该服务 yum -y …

C++ :友元函数

什么是友元函数 外部函数访问类内成员 (1)写一个Person类,内部有private、protected、public的三类访问权限的成员 (2)写一个外部函数disp_info来打印这三类成员 (3)代码实战 (4)总结:可以访问public的,但是protected和private的无法访问 (5…

8.FreeRTOS_队列集

队列集使用在系统需要支持多个输入设备的情况,这是每个输入设备的数据都存放在一个队列中,队列集将他们管理起来,可以实现实时识别哪一个队列中有数据并将数据读取出来。 相关配置 使用队列集的函数,需要先开启宏开关。具体操作…

Office动态水印终于来了

在信息安全日益重要的今天,保护敏感信息变得尤为关键。目前,动态水印甚至是盲水印技术已经在各种企业软件中广泛应用,常见的钉钉和企业微信等都已经支持此类技术,用户查看消息时画面会显示对应用户的姓名和工号等,而作…

服务器清除BIOS之后引导不了,如何解决??

🏆本文收录于《CSDN问答解答》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&…

多模态中的高分辨率如何处理?

https://zhuanlan.zhihu.com/p/702811733https://zhuanlan.zhihu.com/p/702811733 切块 1.MiniCPM-llama3-v 2.5 LLaVA-UHD:an LMM perceiving any aspect ratio and high-resolution images-CSDN

微信支付商家转账到零钱各场景怎么开通

微信支付商家转账到零钱在不少企业的项目运营者起着至关重要的作用,目前因为增加了人工审核,给企业申请该接口增加了较高的门槛。为了便利商户顺利开通零钱功能,下面就结合我们过去6年开通此类产品的经验,以2024年最新的商家转账到…

【前端6*】表格-表单2(弹窗在父组件)父子组件调用 vue element-ui

vue element-ui 中表单弹框的使用 写在最前面一、完整代码1、(子组件)E:\ui\参考代码\demo-new\src\components\detail.vue2、(父组件)E:\ui\参考代码\demo-new\src\views\Home.vue 二、小结 🌈你好呀!我是…

【Python基础教程】制作一个宿舍管理系统,数据库宿舍管理系统代码!(完整版,附源码)

今天我们一起学习一个新的小案例——宿舍管理系统。主要涉及列表、字典的初始化、增加、删除、修改和查询操作,以及函数的定义和调用。 一、需求: 有操作指引界面,显示操作号 能添加一个新的入住学生信息,包括学生姓名、宿舍号床…

ctfshow~菜狗杯 杂项签到

题目给了一个附件是png格式 用010editor打开看一下,直接Ctrlf搜索ctfshow得到flag ctfshow{a62b0b55682d81f7f652b26147c49040}

基于若依的ruoyi-nbcio流程管理系统修正自定义业务表单的回写bug

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

vscode篇---添加头部信息和debug查看explore expression

vscode篇—添加头部信息和debug看explore expression 1. 添加头部信息 具体步骤看下图 然后找到python.json 在这个文件中修改具体的头部信息 {// Place your snippets for python here. Each snippet is defined under a snippet name and has a prefix, body and // desc…

剖析 AI 对音乐的影响:创造还是毁灭之路

文章目录 📒一、引言 📒二、AI 降低音乐创作门槛 🚀(一)技术进步带来的便捷 🚀(二)对音乐普及的推动作用 📒三、AI 重塑音乐创作流程 🚀(一…