做性能测试先要懂性能,响应时间(response time)作为性能测试过程中重要指标之一,是测试工程师重点关注的。
响应时间有两种理解,一是应用系统从请求发出开始到客户端收到响应所消耗的时间,二是应用系统从请求发出开始到客户端接收到最后一个字节数据所消耗的时间。从用户角度看,响应时间是用户感受系统性能的主要体现,既有客观成分又有主观成分。
响应时间构成
页面的服务端响应时间可以切分为呈现时间、网络传输时间、系统处理时间。
呈现时间是流量器对接收到数据的一个处理展现所消耗的时间,主要差别在浏览器、用户自身电脑配置的差异上;网络传输时间,如果涉及广域网,大多情况都会有5ms-50ms的延时;如果是局域网普遍延时都在1ms以内,几乎可以忽略不计。为了避免网络延时,建议应用系统的服务器部署在同一局域网中。
呈现时间和网络传输时间都是不可控制的,用户使用的电脑及浏览器、网络情况千差万别,唯一能控制的就是将系统的处理请求的时间缩到最短。
系统处理时间
系统得到请求后对请求进行处理并将结果返回,如果要分析系统的处理能力涉及语言、语言框架、中间件、数据库、系统架构及服务器系统等内容。通常情况,系统处理的时间消耗主要是在数据库的读取上,可以重点分析SQL语句,分析数据库的表、索引设计是否合理,以及SQL实现算法是否可优化、复杂业务逻辑是否合理、日志打印等。
合理的响应时间
在进行性能测试时,“合理的响应时间”取决于用户的需求,而不能依据测试人员自己设想来决定。对于响应时间范围,有一个普遍的标准:早期是2/5/10秒原则,如今随着技术的发展,用户的要求也提高了,逐渐朝1/3/5秒原则演变。
1/3/5秒原则:
在1s以内得到响应,用户会觉得系统响应很快,体验非常好;1-3秒得到响应,用户可以接收,体验还不错;3-5秒才响应,用户就感觉慢了,体验有点糟糕;一旦响应超过5秒,用户就会认为是个失败的体验,选择离开或重新发起请求。
但是对于不同的业务系统,用户可接受的响应时间是不一样,需要针对自己的业务场景来做统计量化的工作。
- 确定系统功能和使用路径;
- 收集性能目标;(调查客户对响应时间的满意值)
- 量化性能目标(包括分解性能目标、量化各部分性能目标);
- 满足性能目标。
在经过了这些步骤之后,才能让我们明确响应时间这个指标。