性能测试知多少---性能测试工具原理与架构

性能测试学习过程中,坚持思想与工具(分开)并行,当前面世面上的性能测试书籍大多把理论与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://www.51testing.com/html/84/n-818884.html

时间: 2024-10-05 03:01:16

性能测试知多少---性能测试工具原理与架构的相关文章

性能测试工具原理

性能测试工具原理 广义的讲,可以把性能测试过程中使用到的所有工具都称为性能测试工具,性能测试工具分为两大类,服务端性能测试工具和前端性能测试工具:服务端性能测试工具需要支持产生压力和负载,录制和生成测试脚本,设置和部署场景,产生并发用户和向系统施加持续的压力:而前端性能测试工具则不需要关系系统的压力和负载,只需要关心浏览器等客户端工具(目前的前端性能测试工具主要是Web前端性能测试工具). 服务端性能测试工具架构 1.虚拟用户脚本产生器 虚拟用户脚本生成器通过Proxy方式实现,具体来说,就是由

性能测试知多少---性能分析与调优的原理

最近一直纠结性能分析与调优如何下手,先从硬件开始,还是先从代码或数据库.从操作系统(CPU调度,内存管理,进程调度,磁盘I/O).网络.协议(HTTP, TCP/IP ),还是从应用程序代码,数据库调优,中间件配置等方面入手. 单一个中间件又分web中间件(apache .IIS),应用中间件(tomcat .weblogic .webSphere )等,虽然都是中间件,每一样拎出来往深了学都不是一朝一夕之功.但调优对于每一项的要求又不仅仅是"知道"或"会使用"这么

性能测试知多少---并发用户

虫师 大人不华,君子务实. 独立博客:http://www.testpub.cn 性能测试知多少---并发用户 2012-06-25 23:49 by 虫师, 24863 阅读, 10 评论, 收藏, 编辑 在做性能测试的时候,我们常常听到并发用户.响应时间.吞吐量专业术语,也许大家都理解,这里有一个理解的层次与深度概 念.最近有看断念<软件性能详解与案例分析>一书,看了他的讲解,原来我对这些术语的理解还是比较肤浅,其实,这里也主要受制于自己的知识面.所以,再拿 出来与大家重温一下. ps:按

转:性能测试中的性能测试指标与用户体验分析

转自:http://www.ltesting.net/ceshi/ceshijishu/xncs/2012/0223/204182_2.html 性能测试中的性能测试指标与用户体验分析 网络应用性能分析的目的是准确展示网络带宽.延迟.负载和TCP端口的变化是如何影响用户的响应时间的.利用网络应用性能分析工具,例如 Application Expert,能够发现应用的瓶颈,我们可知应用在网络上运行时在每个阶 网络应用性能分析的目的是准确展示网络带宽.延迟.负载和TCP端口的变化是如何影响用户的响应

paip.性能跟踪profile原理与架构与本质-- python扫带java php

##背景 弄个个输入法音标转换atiEnPH工具,老是python性能不的上K,7k记录浏览过k要30分钟了. ##目标 分析一个程序的性能,最终都归结为回答4个基本的问题: 程序运行速度有多快? 运行速度瓶颈在哪儿? 程序使用了多少内存? 内存泄露发生在哪里? 谁引用着泄漏的对象? 作者 老哇的爪子 Attilax 艾龙,  EMAIL:[email protected] 转载请注明来源: http://blog.csdn.net/attilax #工具cProfile,objgraph 谁引

网易视频云:流媒体服务器原理和架构解析

网易视频云是网易公司旗下的视频云服务产品,以Paas服务模式,向开发者提供音视频编解码SDK和开放API,助力APP接入音视频功能.今天,网易视频云的技术专家给大家分享一篇流媒体技术性文章:流媒体服务器原理和架构解析. 一个完整的多媒体文件是由音频和视频两部分组成的,H264.Xvid等就是视频编码格式,MP3.AAC等就是音频编码格式,字幕文件只是附加文件.目前大部分的播放器产品对于H.264 + AAC的MP4编码格式支持最好,但是MP4也有很多的缺点,比如视频header很大,影响在线视频

Linux服务篇之七:MySQL主从原理及架构配置

Linux服务篇之七:MySQL引擎了解.主从原理及架构配置 一.MySQL引擎了解 MyISAM引擎 默认表类型,它是基于传统的ISAM类型,ISAM是IndexedSequential Access Method (有索引的顺序访问方法) 的缩写,它是存储记录和文件的标准方法.不是事务安全的,而且不支持外键,如果执行大量的select, MyISAM比较适合. InnoDB引擎 支持事务安全的引擎,支持外键.行锁.事务是他的最大特点.Innodb最初是由innobase Oy公司开发,200

性能测试知多少---吞吐量

我们每天的生活中都在用水用电,我只会关心自己的水管是否有水,水压是否稳定,如果我们把水龙头拧到最大,还是一滴一滴的流水.那我们就要愤怒了,直接找房东问明情况.我们从来没想过去找自来水公司.我们每天都会上网,网速很慢,看个电影很卡,需要等很久才缓冲一个画面,我们打开网页很慢,IE状态条一直50%,那我们就要愤怒了,直接找电信.网通公司问明情况. 我想说以上的情况是正常的,如果你在优酷上看视频,需要缓冲很久.然后,你跟优酷客服打电话:访问博客园网站半天打不开,就跟dudu打电话,那我们如果不是对网络

APP性能测试,网易Emmagee工具

APK地址:https://github.com/NetEase/Emmagee/releases/download/V1.2.1/Emmagee-1.2.1.apk 开源代码github地址:https://github.com/NetEase/Emmagee 原文地址:https://www.cnblogs.com/cindy-cindy/p/8266849.html