1. 背景
在电商及互联网应用时代,用户和流量已成为应用核心竞争力,而随着数字化营销逐渐走进各个领域,线上的秒杀抢购、热点营销等活动也成为企业的必备营销手段,营销带来的大规模流量浪涌对系统来说是个巨大的考验,如何应对用户和流量激增的同时又能保障应用的稳定运行已成为各厂家必须解决的问题。本文将分享如何测试和分析电商类网站的性能瓶颈
2. 测试工具选型
本次选择测试工具是华为云的云性能测试服务(https://www.huaweicloud.com/product/cpts.html)
不采用开源和传统测试工具的原因是:
l 测试周期:压测环境搭建维护复杂,耗费的时间长。
l 使用门槛:Jmeter的学习成本还比较高,当企业出现人员交接的时候需要无法快速找到替代人员。
l 经济成本:专业性能测试工具license采购成本在上百万人民币,而当前华为云性能测试服务还属于免费阶段
l 弹性按需:根据服务器吞吐量,资源按需扩容,提升资源利用率。
3. 了解监控指标
l 并发用户数:在性能测试工具中,并发用户数一般被称为虚拟用户数。
l TPS:每秒成功完成的业务请求数量,是衡量系统性能的一个非常重要的指标,反映系统处理能力,越大越好。
不同行业不同业务可接受的TPS也是不一样的。一般互联网电子商务为10000TPS-100000TPS;互联网小型网站50TPS-100TPS;互联网中型网站100TPS-1000TPS。
l 平均响应时间:用户从客户端发起一个请求开始,到客户端接收到从服务器端返回的响应结束,整个过程所耗费的时间,反映系统处理能力。
不同行业不同业务可接受的响应时间是不同的。一般情况下,互联网企业在500毫秒以下;金融企业1秒以下为佳;保险企业3秒以下为佳。
l CPU:查看性能测试的过程中CPU资源的占用率,反映系统处理能力以及应用是否稳定。
l I/O: 磁盘的使用情况,度量磁盘读写性能
l 内存:查看内存使用情况
4. 前提条件
l 压测资源需提前准备好:已在云容器引擎服务中创建两台节点,一台2核4G,一台4核8G,两台节点的功能如下:
− 其中一台作为压测资源组的管理机(即管理执行机的节点),另一台用于压测资源组的执行机(即在压测过程中能够提供自身性能数据的施压目标机器)。这两台节点需要绑定弹性IP,以确保和被压测的应用网络互通。
− 性能测试服务需要独占节点,节点没有部署其他应用
5. 测试目的
本次性能测试主要检测服务端处理能力,通过测试,将达到以下目的:
1. 为上线提供指标参考:验证在现有软硬件环境情况下,获取网站性能指标,为系统上线提供指标参考。
2. 系统的最大处理能力:在现有的软硬件环境情况下,网站能够支撑的最大处理能力。
6. 测试建模
根据顾客的使用电商应用的行为数据分析,为找出现有网站能够支撑的最大处理能力。构建出3种测试模型,分别是单场景基准测试模型、单场景容量测试模型和混合场景容量测试模型。
单场景基准测试模型:测试环境确认之后,对测试模型中涉及的每个功能做基准测试。目的是检查网站本身是否存在功能缺陷。
单场景容量测试模型:针对本次网站性能测试涉及到的网站内容和用户行为轨迹,利用一定量的并发进行测试,获取其性能表现,并验证是否存在并发性问题。
混合场景容量测试模型:针对本次平台性能测试涉及到的“内容/行为轨迹/搜索”利用一定量的并发递增进行测试,验证实际可能的高压力场景,较全面的检测系统的性能表现。获取其最大并发数、平均响应时间、系统资源作为衡量指标
单场景基准测试模型:
单场景容量测试模型:
根据现网的监控数据,按照访问量的比例,构建混合场景容量测试模型:
性能标准参考: