性能测试指的是通过性能测试工具模拟多种正常、峰值以及异常负载条件,来对软件系统的各项性能指标进行测试。主要适用的场景有:性能考察、性能预测、性能评价、性能比对、性能优化、故障定位、最佳配置等。
性能测试问题主要有三大方面:系统慢,用户发起请求后,系统处理时间过长;系统报错,用户发起请求后,系统没有正确处理;硬件资源不足,处理器、内存、磁盘、网络等资源持续达到最大值。
我们在分析和诊断性能问题时可以从三个方面入手,一是通信过程,也就是网路通信的过程。再就是计算过程,像处理器计算,多线程并发控制和作业调度。最后一个方面是存储过程,内存、磁盘等存储设备输入输出。
首先我们先来看一下通信过程。在通信过程方面,首先我们可以从通过域名解析,查看DNS、端口映射等。通过连接建立,了解TCP、UDP等。通过数据传输查看HTTP、Telnet等。
接下来我们在看一下计算过程。在计算过程方面,我们可以从三个角度去切入。第一个是客户端层面,包括个人终端设备、浏览器、客户端程序。第二个是网络安全层面,包括负载均衡、路由器、交换机、防火墙、网闸这些方面。第三个是服务器层面,包括服务器设备、Web服务器、应用服务器等。
最后是存储过程,包括内存数据的读写、本地磁盘数据的读写、网络存储数据的读写等。
在通信过程方面容易对性能产生影响的有,网络设备硬件、安全设备硬件、操作系统配置、系统架构设计、系统数据传输和网络协议的设计等方面。
在计算过程方面容易对性能产生影响的有,网络设备硬件、服务器设备硬件、基础软件配置、系统构架设计、程序算法和系统接口。
在存储过程方面会对性能产生影响的有,网络设备硬件、服务器设备硬件、基础软件配置、系统构架设计、存储容量、系统接口。
下面我们再一起看一下性能测试问题的分类方法。性能问题有三个分类标准:质量特性、问题位置和问题级别。
根据质量特性我们可以将性能问题大致分为一下三类:
效率:处理时间、资源占用、吞吐量
可靠性:无故障率、自动回复、容错性
功能:正确性、可用性
根据性能问题发现的位置我们大致可以分为:
基础设施:网络设备、安全设备、服务器设备、存储设备
软件:操作系统、数据库、中间件、程序运行环境、应用程序
业务、业务架构、业务逻辑
根据发现的性能问题的级别我们可以分为:
非常严重:系统崩溃、数据丢失
严重:响应时间过长、处理失败率高、资源不足
轻微:响应时间较长、有部分失败率
更多性能测试、性能测试工具相关内容欢迎关注我的主页查看更多技术内容。