性能测试(Performance Testing)是卓越的SaaS性能测试平台,具备强大的分布式压测能力,可模拟海量用户的真实业务场景。目前分为铂金版、基础版两个完全不同的版本。其中铂金版是2016年8月正式发布的全新版本,由阿里巴巴高可用团队倾心打造,核心能力基于服务阿里全生态多达4年以上的单链路/全链路压测平台。铂金版倡导0编码的业务场景式高仿真压测,目前也在快速迭代中,是PTS最重要和主要的版本。通过PTS铂金版我们希望将性能压测本身的工作持续简化,将更多的精力回归到关注业务和性能问题本身,同时成本、稳定性、用户体验的优化和提升最大程度地帮助企业提升商业价值。
https://help.aliyun.com/document_detail/29262.html?spm=a2c4g.11174283.3.1.9NmhrY 这里就不赘述了。
PTS 可以应用但不局限于以下场景:
新系统上线,准确探知站点能力,防止系统一上线即被用户流量打垮;
峰值业务稳定性,大促活动等峰值业务稳定性考验,保障峰值业务不受损;
站点容量规划,对站点进行精细化的容量规划,分布式系统机器资源分配;
性能瓶颈探测,探测系统中的性能瓶颈点,进行针对性优化;
技术升级验证,大的技术架构升级后进行性能评估,验证新技术场景的站点性能状态。
场景
(压测)场景是若干个基于 HTTP/HTTPS 的 URL/API 的组合。URL/API 可能关联了数据文件表示不同用户。不同的 URL/API 表示不同的业务含义(比如登录、添加购物车),最终组合成一个接近用户各种真实行为同时具备一定用户量级的压测模型。
串联链路
指一组含有某种业务含义的压测 API 的有序集合(类似事务)。压测 API 之间只有在同一个串联链路中才能进行入参和出参关联(运行时数据传递)。两个不同的串联链路之间相互独立,不会存在参数的传递依赖。
压测 API
指一条由用户行为触发的端上请求。以电商中登录、查询商品详情、提交订单等为例,分别对应用户一次行为中的多个请求 API。API 是一次场景压测中必不可少的元素,用来定义一个串联链路中每个阶段 URL 的具体信息。
从一个压测 API 的应答中截取需要的内容作为出参,供后续的压测 API 作为参数使用。
断言
一般用于标记业务成功与否,从而验证压测请求的响应是否符合预期。有时候响应码是 200 并不代表业务处理成功,有可能需要判断响应体内的内容。在 PTS 的串联链路中如果断言失败,当前请求就不会继续传递到下一个压测 API。另外,在压测实时报表和压测报告中都会相应展现业务成功或者失败的信息。
指令
指令是一种可以改变、控制串联链路中行为和流程的功能组件,可以更真实地模拟业务压测流量。
思考时间
模拟用户在前后两个节点间思考、反应花费的时间,支持多种模式。
集合点
使虚拟用户在集合点处等待,满足条件后一次性释放所有等待的用户,继续后续业务,例如整点秒杀场景。
并发用户数
同时发送压测请求的用户数量。一个用户在压测过程中可能是一个进程或者一个线程。
TPS
每秒发出的压测请求数量。
并发模式
即虚拟用户模式,如果想要摸底业务系统能同时承载的在线用户数,可以通过该模式。
TPS 模式
即吞吐量模式,指每秒固定发出设置的请求数量(TPS)。
响应时间 RT
指从客户端发送一个请求开始,到客户端接收到服务端返回的响应所经历的时间。响应时间由请求发送时间、网络传输时间和服务器处理时间三部分组成。
75% 响应时间
指在整个压测周期内(压测启动到停止的时间内),某个串联链路或者压测 API 的所有采样到的响应时间(固定采样周期)中 75% 的时间在这个值以内。
3xx
这类状态码表示客户端需要采取进一步的操作才能完成请求。通常,这些状态码用来重定向,后续的请求地址(重定向目标)在本次响应的 Location 域中指明。
4xx
这类状态码表示客户端发生了错误,妨碍了服务器的处理。
5xx
这类状态码表示服务器无法完成明显有效的请求。一般代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
https://help.aliyun.com/document_detail/55787.html?spm=a2c4g.11186623.6.547.AJwZAb
https://help.aliyun.com/document_detail/70290.html?spm=a2c4g.11186623.6.548.yLiQuy
配置完成后就可以向服务器进行压力测试了
最后可以查看测试报告
可以在Tomcat查看访问日志,以观测测试的数据。