性能测试的基本概念
性能测试:是指在特定情况下测试系统如何执行的。资源的使用、可扩展性和可靠性也是性能测试的范畴。性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题。
性能测试的目标:主要目标是测出系统运行的性能指标基线,我们在测试中也可能测试一些业界定义的性能指标基线。性能测试的目的不是寻找应用程序的缺陷,它更加重要的目的是测试基线以及程序的标准性能。性能测试特征就是关注测试性能测试的结果 以及持续的监控。
性能测试工具分类
性能测试工具主要包括服务端性能测试工具和客户端性能测试工具。本次培训侧重于服务端性能测试的讲座
服务端性能测试工具工作原理
服务端性能测试工具仿真度
协议模拟:是性能测试工具直接模拟客户端向服务端下发的请求协议。
客户模拟 :是性能测试工具间接的模拟客户向服务端下发的请求协议,它是通过驱动客户端界面操作,由客户端程序向服务端下发请求协议。
性能测试工具工作原理:协议模拟
对于消费者用户,经常使用浏览器上网,然后在地填栏中输入网址,然后回车,即可看到想要看的网站页信息。但是就这样一个小小的回车操作,浏览器为了把网页展现在用户面前,需要调用大量的HTTP请求。这些请求之间是并发的(HTTP1协议,浏览最高支持6个并发。HTT2协议,浏览器可以并发到100-200)。通过这些HTTP请求来获得页面上的各种显示元素(图片、按钮、表格等)。大家可以在打开浏览器按F12按钮并切换到network 页面,可以查看到浏览器下发HTTP请求的瀑布图。
每一个终端用户的操作都是一个瀑布图,下图是三个终端用户坐标图,用以说明服务端与客户端之间的关系,以及客户端的瀑布图对服务端产生压力的原理性说明。
性能测试工具对服务端进行性能测试,首先要做的就是先仿真单个用户,再通过单个用户延伸出多个用户。多个用户模拟,性能测试工具大部分采用多线程实现,一个线程通过执行HTTP脚本仿真一个用户,用户的并发请求,线程通过并发执行HTTP请求实现。
性能测试工具协议模拟仿真能力对比
目前业界的性能测试基本都以协议协议模拟为主,只有kylinTOP测试与监控平台同时支持协议模拟和客户模拟两种方式。这两种方式的优缺点上面也介绍了。下面我们重点看一下协议模型仿真度对比情况。从下图看只有“kylinTOP测试与监控平台”提供的协议的精准度最高。
kylinTOP测试与监控平台能力
性能测试工具的架构图
一款好的性能测试工具的应当是分布式系统。目前业界大部分性能测试工具都是C/S架构(如:loadRunner ,Jmeter),kylinTOP测试与监控平台架构是采用B/S架构。
但是它们都有一个共同的特征,执行器(用于性能执行脚本)可以分布在多台机器上,用于支撑高并发的场景。下图是以kylinTOP测试与监控平台为原型的系统架构图,以供大家学习和加深理解性能测试工具的体系结构。
性能测试工具基本操作步骤
下图以"kylinTOP测试与监控平台"性能测试的基本操作为原型画出的一张性能测试的基本流程。其它性能工具的操作流程基本相似。它们之间的差异点主要体现在对每个操作小步骤的能力支撑的程度的高低。