你对性能测试了解多少?-性能测试工具的原理和架构
但是,性能测试不是loadrunner,所有作者都这么认为。但当他们谈到性能测试时,他们说loadrunner有,但只是有一点不同。你觉得我会对loadrunner怀恨在心吗?之所以单独研究,只是希望在研究性能测试的时候不要被loadrunner所限制。我只是觉得做性能测试不要拿loadrunner的思维,这样更容易把握性能测试的本质。-狭义上,我们可以把性能测试工具分为服务器端性能测试工具和前端性能测试工具。服务器端性能测试工具通常也被我们的测试人员认为是性能测试工具。LoadRunner、JMeter、SilkPerformance、服务器端压力性能工具需要支持生成压力和负载、记录和生成脚本、设置和部署场景、生成并发用户和对系统施加持续压力。前端性能测试工具被开发人员、前端开发人员和测试人员广泛使用。Firebug、Fieldder 2、Yslow、前端性能测试工具只需要心浏览器等客户端工具需要显示的页面的处理过程。服务器性能测试工具原理性能测试工具的主要功能是通过模拟生产环境中的真实业务运行,测试被测系统的压力负载,监测被测系统在不同业务和压力性能下的性能,找出潜在的性能瓶颈进行分析和优化。客户端和服务器相当于两个人,通过信息进行交流。因为第一次见面不好意思直接交流,所以找了一个中间信使,客户端把信息告诉信使,由信使传达给服务器。那么服务器反馈回来的信息也由调用者传达给客户端。一般的性能测试工具需要记录或编写客户端行为脚本。这样通信者就拥有了客户端的行为能力,从而伪装成客户端欺骗服务器并与之通信。通过客户端行为,通信器可以复制自身。使得n个通信器中的多个可以与服务器通信。-这传达了人的行为和能力,这是性能测试工具的基本特征。突然感觉性能工具像个第三者,而且是个疯狂变态的可以自我复制的第三者,哈哈!对于目前流行的性能测试工具,它们的基本工作原理都是一样的。在客户端,通过多线程或多进程模拟虚拟用户访问,给服务器造成压力,然后在进程中监控和收集性能数据。一个性能测试工具应该具备什么特征?1,工具本身占用系统资源少,具有良好的扩展性和可用性。2.可以模拟真实的业务事务操作,在并发时可以真实产生业务压力。(这是核心)3。可以很好的分析压力测试结果的性能,快速发现被测系统的瓶颈。4.测试脚本具有很强的可重复性。为什么我对服务器性能测试工具的架构用户行为的生成部分如此含糊?对于熟悉loadrunner的人来说,我称之为虚拟用户脚本生成器,这样你更容易理解。这个剧本可以录音,也可以手写。不要以为这是产生用户行为的唯一途径。因为在JMeter中,添加了各种组件,通过组件的配置来完成用户行为,当然也可以记录。在相对简单的性能测试工具curl _ loader(运行在Linux环境下)中,他通过编写配置文件来描述用户行为。前面提到过,虽然性能测试工具的描述形式不同,但是原理是一样的,都是通过代理来实现的。具体来说,代理充当客户端和服务器之间的中间人,从客户端接收数据包。压力生成器用于根据脚本内容生成实际负载。在性能测试工具中,压力发生器起着“产生负载”的作用。即根据root用户的设置,进行自复制,生成多个客户端向服务器发送请求。对于工具来说,每个副本就是一个进程或线程,进程和线程的运行占用系统资源。因此,压力测试人员可以运行的虚拟用户数量也是有限的。这取决于地基测试仪的配置。那么这个时候就需要通过多台测试机的配合,模拟更多的虚拟用户向服务器发送请求。然后,对于性能测试来说,生成“并发”请求是非常重要的,否则不会给服务器带来压力。多台计算机如何产生“同步”的虚拟用户?使用用户代理的用户代理是运行在负载机上的进程,它与产生负载压力的进程或线程协作,接收调度系统的命令,调度产生负载压力的进程或线程。在这个意义上,用户代理也是压力生成器的一部分。调度能力我们在做复杂的性能测试时,往往会设计各种场景,不同的虚拟用户,不同的事务用户比例,运行时间,设置同步点等。这时候也需要我们的测试工具具备压力调度能力。以便更真实地模拟我们设计的跑步场景。监控系统监控系统是直接与用户交互的性能测试工具的主要部分。监控系统,主要用户在压力测试过程中对各种软硬件进行监控,比如监控数据库、应用服务器以及服务器的主要性能。用于确定系统当前处于什么状态。当然,监控系统并不是性能工具的必备部分,可以通过软硬件系统本身的监控工具或者第三方监控工具进行监控。但是是否有一个强大的性能计数器监控系统是衡量性能测试工具是否强大的指标之一。压力结果分析压力结果分析工具可用于帮助分析测试结果。一般来说,性能测试工具可以根据监控系统获得的性能技术计数器值生成图形、折线图和其他图表。通过显示性能测试过程中的各种参数和指标,供测试人员分析。但这里需要强调的是,压力结果分析工具本身并不能代替分析师对业绩结果进行分析,只是提供了多种不同的数据披露和呈现方式。这些数据的分析必须依赖于测试工程师在系统性能分析方面的知识和经验。???????????????????????????????????????比如有些性能测试工具不具备用户代理的功能,有些监控系统可以监控的资源有限或简陋,有些结果分析数据不够详细。