测试: 网上常说性能测试是什么
性能测试是一种特殊的软件测试,它的目的是确保软件在一定的负载流量下运行良好。性能测试是性能分析和性能优化的基础,它的目标是发现和性能相关的各种问题和性能瓶颈,从而进一步去消除错误和性能瓶颈
性能测试的分类方式
性能测试如何分类呢?我们需要从几个方面来看,包括测试目的、测试环境、负载流量、测试对象、负载数据、黑盒白盒等。
测试目的
测试目的是最重要的方面。大体上有几种目的:
- 测试服务速度:
- 确定程序是否能够快速的响应用户的请求,这个服务速度一般包括延迟和吞吐量这两个指标。
- 速度通常是应用程序最重要的属性之一,因为运行缓慢的应用程序容易丢失用户。
- 测试可扩展性: 确定应用程序是否可以在用户负载和客户流量增大的情况下还能正常的运行
- 测试稳定性:确定在各种极端和恶劣环境下,应用程序是否能稳定运行
- 测试性能瓶颈:性能瓶颈是应用程序和系统中的最影响整体性能的因素。瓶颈是指某个资源不足而导致某些负载下的性能降低。一些常见的性能瓶颈是CPU、内存、存储、网络等
测试环境
性能测试的环境也有几种,主要是开发环境还是生产环境。
- 开发环境里面更多的是简单的测试来发现一些明显问题
- 生产环境测试一般是开发环境测试通过后才进行的。
负载流量
根据测试的负载大小分为:小流量、正常流量、超大流量(这里的流量高低是相对于生产环境中的流量而言的。当然,它们的实际界限其实很模糊。)
除了大小,负载变化的速度也需要考虑
测试对象
测试的对象可以是只针对一个代码功能,或者是整个代码模块,或者是整个系统。
负载数据
测试的负载数据可以是真正的生产环境中的请求和数据,也可以是人工模拟出来的请求及数据。
黑盒白盒
如果把被测试的对象当作一个整体,不关心它的内部工作机理,也就是把它当作一个黑盒子,那么这种测试就是黑盒测试。
反之,如果你也关心它的内部构件和内部设计,就是把它当作白盒子来测试。
性能测试的种类
冒烟测试(Smoke Testing)
- 冒烟测试是开发人员在开发环境中执行的简单测试,以确认新的程序代码不出故障。
- 冒烟测试目的是确认系统和程序基本功能正常
- 冒烟测试的执行者往往就是开发人员,但有时也让运维人员参与。
耐力测试(Endurance Testing)和浸泡测试(Soak Testing)
耐力测试(也叫做耐久测试、浸泡测试)
上面说的性能测试不是很正确,建议参考性能:到底什么是性能测试