搭建私有PTS性能测试服务(一)

经验分享·性能测试 · 2020-05-23

什么是PTS

概述

性能测试服务(Performance Test Service,简称PTS)是全球领先SAAS化性能测试平台,具有强大的分布式压测能力,可模拟海量用户真实的业务操作场景,让应用的性能问题无所遁形。PTS是集测试机管理、测试脚本管理、测试场景管理、测试任务管理、测试结果管理为一体的性能云测试平台。PTS基于阿里云计算平台研发,可提供超大规模并发压力,满足任意规模系统的性能测试需求。PTS在工作时会通过施压机产生压测流量,用户如果对施压的流量、地域等有更多要求,PTS施压机可动态扩展在全球范围进行部署。PTS平台提供压测机,无须安装压测软件,海量并发即可唾手可得。模板化的脚本编写轻轻松松跑性能测试,可视化的脚本调试回放让应用协议层的每个细节都清晰无比,脚本录制插件极大地提高脚本创作效率,手工脚本解决复杂业务测试,实现性能测试的无限潜能。丰富的性能指标,准确的测试结果,让PTS成为性能调优的利器。可以使用PTS对自身系统性能状况进行整体评估,一方面可以找到系统性能瓶颈从而优化系统,另一方面可以充分了解系统性能指标便于未来扩容。PTS保障企业应用性能和稳定性,提升用户体验,促进业务发展,最大程度实现企业的商业价值。PTS还拥有强大的性能支撑体系和权威的性能专家服务,可迅速提升性能测试人员技能,实现企业和员工双赢。

优势

专业:分布式并发压测,施压能力无上限;模拟业务场景,性能缺陷暴露无疑;阿里性能专家在线服务,测试无忧。易用: 平台提供压测机,无需安装软件;脚本场景监控简单化,省时、省力;1分钟上手,轻轻松松做性能测试。经济: 提供企业版免费额度,零成本使用;提前容量评估,促进业务快速发展;提升用户体验,快速扩大市场份额。可靠: 服务高质量容灾,可用性高达99.99\%; 测试结果真实准确无误; 多种安全防护措施,保障数据安全。PTS包含两个版本:【1】PTS Lite版适合于业务流程和业务场景简单、快速获取测试结果的系统,免费使用;【2】PTS企业版适合于承受大规模压力的系统,同时每月提供免费额度,可以满足大部分企业客户;

为什么需要搭建私有PTS服务

阿里云的PTS性能测试服务操作简单,略懂性能测试的人都很容易上手,最近推出的Lite版,更是将操作体验做到了极致,可以通过拖拽的方式来配置测试项及测试步骤,有很强的步骤引导,让新手都很容易上手,真是颠覆了对以往性能测试工具的定义。用过LoadRunner的人都知道,越来越臃肿的安装包,繁琐的配置过程,以及复杂的报表,都是需要很大的学习成本,而PTS真的做到了即开即用。但可惜的是,阿里云的PTS服务测试对象,只针对阿里云平台的云服务器,也就是说,你的服务器是托管在机房的,是不能用PTS来进行性能测试的。PTS的Lite版,支持公网上的服务器,但是性能测试是对测试环境是有一定要求的,如果用公网网络来进行测试,受网络带宽的影响,很可能一部分测试因为网络超时而导致测试失败,不能真正的测试出服务器的瓶颈,那么这样测试是没有任何意义的。如果你本身就是阿里云服务器的用户,那么我推荐你可以直接使用PTS进行性能测试,当然,这是收费的,看似每个月有10000VUM(每分钟每并发用户数)的额度,但是性能测试是需要多次反复进行的,这点额度真心不够用啊。通常情况是,即使我们使用阿里云服务器,一般都是部署的生产环境,我们要进行性能压测时,不可能直接对生产环境进行测试。如果公司土豪,可以再买一套阿里云服务器,搭建一套跟生产环境一样的环境用来测试。但对大多数企业来说,这也是一笔不小的开销啊。更多时候,我们是希望在内网搭建环境完成测试验证后再上生产,而且内网带宽可以自由控制,可以模拟不同的网络情况,既能测试服务器方面的瓶颈,也能测试不同网络情况下的性能,没有束缚,一切尽在掌握。当然,我们也可以在阿里云服务器上部署自己的PTS,省掉一笔不小的PTS服务使用费。

性能测试常用指标

呐,做性能测试,我们肯定需要知道测什么,以及通过测试我们需要得到什么,PTS常用的性能指标有:

事务

事务是性能测试脚本的一个重要特性,要度量服务器的性能需要定义事务;在PTS中是通过方法来实现事务的,即将业务操作或者代码放在方法里面,通过框架将函数置为事务。

TPS

TPS(Transaction Per Second)每秒系统能够处理的交易或事务的数量,它是衡量系统处理能力的重要指标。

并发

并发分为狭义和广义两类。狭义并发即所有的用户在同一时刻做同一件事情或操作,这种操作一般针对同一类型的业务,或者所有用户进行完全一样的操作,目的是测试数据库和程序对并发操作的处理。广义并发即多个用户对系统发出了请求或者进行了操作,但是这些请求或操作可以是不同的,但对整个系统而言,仍然是有很多用户在同时进行操作。狭义并发强调对系统的请求操作是完全相同的,多适用于负载测试、压力测试;广义并发不限制对系统的请求操作,多适用于混合场景、稳定性测试。

场景

性能测试过程中为了模拟真实用户的业务处理过程,在系统中构建的基于事务、脚本、虚拟用户、运行设置等一系列动作的集合称之为性能测试场景。PTS中场景包含了脚本、施压模式、用户数、日志级别、步调时间等。

响应时间

响应时间指用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间。响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。在性能检测中一般以测试环境中压力发起端至服务器返回处理结果的时间为计量,单位一般为秒或毫秒,该时间不同于模拟真实环境的用户体验时间。平均响应时间:指系统稳定运行时间段内,同一交易的平均响应时间。一般而言,交易响应时间均指平均响应时间。平均响应时间指标值应根据不同的交易分别设定,一般情况下,分为复杂交易响应时间、简单交易响应时间、特殊交易响应时间。其中,特殊交易响应时间的设定必须明确该交易在响应时间方面的特殊性。不同行业不同业务可接受的响应时间是不同的,一般情况,对于在线实时交易:

  • 互联网企业:500毫秒以下,例如淘宝业务10毫秒左右。
  • 金融企业:1秒以下为佳,部分复杂业务3秒以下。
  • 保险企业:3秒以下为佳。
  • 制造业:5秒以下为佳。

对于批量交易:

  • 时间窗口:不同数据量结果是不一样的,大数据量的情况下,2小时内完成。

并发用户数

并发用户数指在同一时刻内,登录系统并进行业务操作的用户数量。并发用户数对于长连接系统来说最大并发用户数即是系统的并发接入能力。对于短连接系统而言最大并发用户数并不等于系统的并发接入能力,而是与系统架构、系统处理能力等各种情况相关。在测试中,采用虚拟用户来模拟现实中用户进行业务操作。一般情况下,性能测试是将系统处理能力容量测出来,而不是测试并发用户数,除了服务器长连接可能影响并发用户数外,系统处理能力不受并发用户数影响,可以用最小的用户数将系统处理能力容量测试出来,也可以用更多的用户将系统处理能力容量测试出来。

请求状态

请求状态反映了HTTP压测结果的HTTP状态码,状态码含义如下:成功200:服务器已成功处理了请求并提供了请求的网页。成功204:服务器成功处理了请求,但没有返回任何内容。重定向3xx:需要客户端采取进一步的操作才能完成请求。客户端错误4xx:表示请求可能出错,妨碍了服务器的处理。服务器错误5xx:表示服务器在处理请求时发生内部错误,这些错误可能是服务器本身的错误而不是请求出错。

CPU

中央处理器是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit)。它的功能主要是解释计算机指令以及处理计算机软件中的数据。CPU资源是指性能测试场景运行的时间段内应用服务系统的CPU资源占用率,CPU资源是判断系统处理能力及应用运行是否稳定的重要参数。CPU指标主要指的CPU利用率,包括用户态(user)、系统态(sys)、等待态(wait)、空闲态(idle)。CPU 利用率要低于业界警戒值范围之内,即小于或者等于75\%;CPU sys\%小于或者等于30\%, CPU wait\%小于或者等于5\%。单核CPU也需遵循上述指标要求。

Load

CPU Load: 系统正在干活的多少的度量,队列长度。系统平均负载。系统平均负载指在特定时间间隔内运行队列中的平均进程数。如果一个进程满足以下条件就会位于运行队列中:

  • 它没有在等待I/O操作的结果。
  • 它没有主动进入等待状态,也就是没有调用“wait”。
  • 没有被停止,例如等待终止。

CPU Load要小于CPU 核数。

Memory

内存是计算机中重要的部件之一,它是与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大。现代的操作系统为了最大利用内存,在内存中存放了缓存,因此内存利用率100\%并不代表内存有瓶颈,衡量系统内有有瓶颈主要靠SWAP(与虚拟内存交换)交换空间利用率,一般情况下,SWAP交换空间利用率要低于70\%,太多的交换将会引起系统性能低下。

磁盘吞吐量

磁盘吞吐量是指在无磁盘故障的情况下单位时间内通过磁盘的数据量。磁盘指标主要有每秒读写多少兆,磁盘繁忙率,磁盘队列数,平均服务时间,平均等待时间,空间利用率。其中磁盘繁忙率是直接反映磁盘是否有瓶颈的的重要依据,一般情况下,磁盘繁忙率要低于70\%。

网络吞吐量

网络吞吐量是指在无网络故障的情况下单位时间内通过的网络的数据数量。单位为Byte/s。网络吞吐量指标用于衡量系统对于网络设备或链路传输能力的需求。当网络吞吐量指标接近网络设备或链路最大传输能力时,则需要考虑升级网络设备。网络吞吐量指标主要有每秒有多少兆流量进出,一般情况下不能超过设备或链路最大传输能力的70\%。

错误率

错误率指系统在负载情况下,失败交易的概率。错误率=(失败交易数/交易总数)*100\%。稳定性较好的系统,其错误率应该由超时引起,即为超时率。不同系统对错误率的要求不同,但一般不超出千分之六,即成功率不低于99.4\%


未完待续 下一篇讲解怎么在内网搭建PTS服务 — nGrinder的安装与配置

测试进阶
Theme Jasmine by Kent Liao