雷畅
腾讯云高级工程师。拥有多年云原生/可观测/性能压测领域的研发经验,目前主要负责腾讯云可观测-云压测(PTS)产品研发。
导语 | 作为应用服务的提供者,在面对产品或新功能上线、活动大促(618、双十一)等重大变更时,明明一切看似无懈可击,到了关键时刻,却不知哪个“系统刺客”在偷偷地 kill 您的系统?我们如何才能“底气十足”地保证系统稳定,在这竞争激烈的时代留住“日益挑剔”的用户?正所谓 Testing is believing,这需要测试、测试、再测试!
前言
近日,**腾讯云可观测平台-云压测 (PTS )**横空出世,旨在打造一款便捷易用、真实灵活的 SaaS 化性能测试平台。借助其 SaaS 化、多地域、开箱即用、百万并发、多协议支持、兼容原生 JMeter 等特性,您可以无缝迁移 JMeter 压测、轻松调度压力机,PTS 具备大规模、分布式、可扩展的压测能力,使您在达成业务性能目标、提升用户体验的同时,免去开发和运维压测工具的烦恼!
**性能测试是变更前验证的关键一环,是对系统进行全方位的性能“体检”。**它一般通过模拟用户操作,使系统处在高强度压力之下,检验系统是否稳定、哪里会出问题。
在分布式、微服务、云原生的日益复杂背景下,要进行全方位的性能“体检”,正变得越来越困难:
- 微服务架构错综复杂,增加了测试时编排和调试的难度。
- 测试端要能发起分布式、多地域、多协议的海量请求,拉高了系统建设及维护的成本。
- 业务即使具备弹性扩容能力,但瓶颈仍可能存在,如何预估大促等突发流量下的性能,是个大难题。
- DevOps 使测试左移且常态化,需要一种开发/测试/运维人员都能轻易上手的性能测试机制。
在困境下,腾讯云可观测平台-云压测(PTS)应运而生,可模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行应用系统,验证应用系统的性能、可靠性、稳定性等。
PTS 功能特性
一、便捷、易用
1. 支持百万并发
PTS 基于腾讯云算力资源,可一键发起百万并发的压测流量。
2. 多种测试场景编排
为了方便、快速上手,PTS 提供多种测试场景编排模式:
- 简单模式:最直观,可通过控制台的图形界面,可视化、零代码实现请求链路编排。
- 脚本模式:逻辑编排灵活、协议支持灵活、有脚本模板可供参考。在控制台的在线代码编辑器里,编写 JavaScript 脚本,以 as code 模式实现对请求链路的编排。
- JMeter 模式:100% 支持 JMeter 压测,可无缝迁移 JMeter 压测体验。
3. 快速暴露问题
支持正式压测前的场景调试,fail fast,提前、快速暴露问题。
4. 全方位压测报告
提供多维度、图形化的测试报告,包括执行中的实时报告,和执行后的总结报告。
5. 支持多个监控产品数据联动
基于腾讯云平台优势,便于与云监控生态集成,拉通多个监控产品之间的数据及联动,完善压测的整个生命周期。
二、真实用户模拟:
1. 模拟常见真实用户行为
在场景编排时,PTS 支持对各种常见用户行为的模拟,如串行请求、基于断言设置检查点、设置思考时间等,尽可能贴近真实用户操作。
2. 支持多地域发压。
模拟真实场景中,来自不同地域的用户同时进行操作。
3. 支持从网络或 VPC 发压
支持通用网络或 VPC 发压,模拟不同网络来源的用户流量。
三、灵活配置:
1. 多引擎支持
三方引擎可灵活插拔,以满足业务不同的压测场景。
2. 多协议兼容
除最常用的 HTTP 协议外,还支持 WebSocket、gRPC 等多种协议,扩大了压测适用情形。
3. 灵活的测试数据准备
在脚本模式压测中,您可轻松模拟各种测试数据,满足您的不同需求:
- 支持生成随机数、生成 UUID、数据清洗等。
- 支持对录制流量的回放。目前可将所录制流量生成 har 文件,再在压测脚本中回放该用例。
4. 持续性测试
提供腾讯云开放 API,支持您在 CI/CD 流程中使用 PTS 进行自动化、常态化压测。
标杆案例
在实践中,云压测一般用于以下情形:
- 为新系统上线或技术升级提供性能验证。
- 为业务峰值提供容量评估。
- 为精细化系统资源规划提供依据。
- 为系统性能优化提供瓶颈探测。
接下来,我们将借助两个典型的客户案例,来展示 PTS 的使用实践。
标杆案例一:腾讯文档
客户背景
服务架构升级,微服务模块多且服务方式多样。
在线高并发操作文档,专项优化服务性能。
疫情期间业务量经常波动,需常态压测和演练。
客户痛点
- 场景不全:客户对 HTTP 请求、WebSocket、HTTP 下载、POST 等做测试,但测试团队仅能支持HTTP请求与接口,急需更全面的场景覆盖。
- 资源不足:疫情期间业务量经常波动,间歇性准备大量资源压测难,需多地域按需充分测试。
- 流程重:每次性能测试需要发起流程、准备资源、定义编排任务、数据分析统计等,严重影响业务发布效率。灵活自定义任务编排成为关键。
解决方案
- 场景丰富:支持了 HTTP 请求、WebSocket、HTTP 下载、POST 和自建开源等场景。
- 压测性能加问题定位:可联合服务全链监控帮分析性能情况和问题原因。
- 云上云下一体化:部分模块未上云接入性能测试,上云后方案不变持续使用。
客户收益
- 腾讯文档的所有性能测场景全覆盖,且地域资源充足达到预期测试效果。
- 基于测试性能分析,有效降低了延迟10%,部分服务成功率上升3%。
- 疫情期间在线操作需求经常变化,性能测试使资源利用率提升8%。
标杆案例二:某视频软件
客户背景
- 某视频软件需要对活动晚会进行全程直播,以及抢红包、抽奖等活动,必须保障业务稳定性。
- 压测峰值吞吐量达到百万级并发、千万级 QPS。
- 需在10天之内,完成资源扩容、全流程压测、优化/降级验证。
客户痛点
- 资源不足:客户所需施压量级较大,需借助腾讯云计算及网络资源的弹性能力,快速、多地域、灵活扩容。
- 时间紧迫:50+ 业务场景,需快速输出整体压测方案,并结合腾讯视频业务方案,快速编排压测脚本。
解决方案
- 场景构建选用脚本模式,将待压请求编排在 JavaScript 脚本里。
- 施压模式选择多地域模式,从广州、上海、北京、南京,按照业务所需的流量比例发压。
- 多协议:通信协议支持 HTTP,HTTPS,JCE。
客户收益
- 业务压测共有三轮,涵盖 50+ 业务场景,每次均主要在发现问题、解决问题,以及应急动作验证。
- 压测过程中,发现风险项15项,涉及 NAT、WAF、云联网、专线通道、CVM、Redis 等多产品风险暴露。
- 最终经过全流程压测、瓶颈修复、降级策略验证,活动晚会直播顺利完成。
总结
腾讯云可观测平台-云压测(PTS)秉承着帮助企业解决微服务架构治理及性能测试问题的初心,为您提供便捷、易用的性能测试工具。PTS 可真实还原应用大规模业务访问场景,100%兼容 Jmeter,您可以无缝迁移 JMeter 压测、轻松调度压力机。还能与腾讯云应用性能监控(APM)联动,可满足大型企业对服务实现高级监控,实现微服务调用全流程调用链跟踪分析,帮助企业提前识别应用性能问题。
目前云压测限时免费一个月!您可以点击文末 [阅读原文]立即体验云压测!
若限免额度无法满足您的需求,您还可以扫下列海报二维码领取优惠券后再购买云压测套餐包!最低可享受5折优惠~
联系我们
如有任何疑问,欢迎扫码进入官方交流群~
欢迎关注腾讯云监控,了解最新动态
👇点击阅读原文立即体验云压测(PTS)