性能测试是指在特定情况下测试系统如何执行的。资源的使用、可扩展性和可靠性也是性能测试的范畴。性能测试是性能工程的一个子集,主要发现软件架构以及设计导致的性能问题。
性能测试的主要目标是测出系统运行的性能指标基线,我们在测试中也可能测试一些业界定义的性能指标基线。性能测试的目的不是寻找应用程序的缺陷,它更加重要的目的是测试基线以及程序的标准性能。性能测试特征就是关注测试性能测试的结果,以及持续的监控。
性能测试工具主要包括服务端性能测试工具和客户端性能测试工具。
服务端性能测试工具主要支持产生压力测试和负载测试,录制和生成脚本,设置和部署场景,产生并发用户和向系统施加持续的压力;
而客户端性能测试工具,不关心系统的压力和负载,只需要关心浏览器等客户端工具对具体需要展现的页面处理过程;
在说性能测试工具基本工作原理之前,先来说说协议模拟和客户端模拟。
协议模拟:
是性能测试工具直接模拟客户端向服务端下发的请求协议。客户端访问服务端的本质就是通信协议的交互过程。协议模拟就是通过模拟客户端与服务端的通信协议的交互行为。
客户端模拟:
通过启动多个客户端程序模拟多用户,并模拟终端用户点击客户端程序,驱动客户程序向服务端发送通信协议。这是性能测试工具间接的模拟客户向服务端下发的请求协议,它是通过驱动客户端界面操作,由客户端程序向服务端下发请求协议。
所以,这就好理解服务端性能测试工具工作的原理了:
通过模拟终端用户访问服务端的行为,并发海量的虚拟终端用户。终端用户与服务端交互的本质就是通信协议的交互。所以性能测试工具工作原理就是协议模拟。
对于消费者用户,经常使用浏览器上网,然后在地填栏中输入网址,然后回车,即可看到想要看的网站页信息。但是就这样一个小小的回车操作,浏览器为了把网页展现在用户面前,需要调用大量的HTTP请求。这些请求之间是并发的(HTTP1协议,浏览最高支持6个并发。HTT2协议,浏览器可以并发到100-200)。通过这些HTTP请求来获得页面上的各种显示元素(图片、按钮、表格等)。大家可以在打开浏览器按F12按钮并切换到network页面,可以查看到浏览器下发HTTP请求的瀑布图。
性能测试工具对服务端进行性能测试,首先要做的就是先仿真单个用户,再通过单个用户延伸出多个用户。多个用户模拟,性能测试工具大部分采用多线程实现,一个线程通过执行HTTP脚本仿真一个用户,用户的并发请求,线程通过并发执行HTTP请求实现。
推荐阅读: