1.背景

在电商及互联网应用时代,用户和流量已成为应用核心竞争力,而随着数字化营销逐渐走进各个领域,线上的秒杀抢购、热点营销等活动也成为企业的必备营销手段,营销带来的大规模流量浪涌对系统来说是个巨大的考验,如何应对用户和流量激增的同时又能保障应用的稳定运行已成为各厂家必须解决的问题。本文将分享如何测试和分析电商类网站的性能瓶颈

2.测试工具选型

本次选择测试工具是华为云的云性能测试服务
不采用开源和传统测试工具的原因是:

3.了解监控指标

4.前提条件

压测资源需提前准备好:已在云容器引擎服务中创建两台节点,一台2核4G,一台4核8G,这两台节点需要绑定弹性IP,以确保和被压测的应用网络互通。

5.测试目的

本次性能测试主要检测服务端处理能力,通过测试,将达到以下目的:

6.测试建模

根据顾客的使用电商应用的行为数据分析,为找出现有网站能够支撑的最大处理能力。构建出3种测试模型,分别是单场景基准测试模型、单场景容量测试模型和混合场景容量测试模型。

单场景基准测试模型:测试环境确认之后,对测试模型中涉及的每个功能做基准测试。目的是检查网站本身是否存在功能缺陷。
单场景容量测试模型:针对本次网站性能测试涉及到的网站内容和用户行为轨迹,利用一定量的并发进行测试,获取其性能表现,并验证是否存在并发性问题。
混合场景容量测试模型:针对本次平台性能测试涉及到的“内容/行为轨迹/搜索”利用一定量的并发递增进行测试,验证实际可能的高压力场景,较全面的检测系统的性能表现。获取其最大并发数、平均响应时间、系统资源作为衡量指标

单场景基准测试模型:

单场景容量测试模型:

根据现网的监控数据,按照访问量的比例,构建混合场景容量测试模型:

性能标准参考:

7.测试执行

步骤一:创建资源组和测试工程
工程名称:自定义名称,例如Web-test。
描述:应用测试Demo。

步骤二:添加事务信息
根据上面的测试模型进行事务的定义,抢购活动的实际情况来看,用户抢购到商品,大概需要经历一下几个阶段:登陆>首页访问 > 搜索 > 商品浏览>加入购物车>下单>付款。期间还有网站对应的活动页面。
因此需要定义7个事务:登陆>首页访问 > 搜索 > 商品浏览>加入购物车>下单>付款。

也可以根据需要构建串联场景,验证用户操作链的性能

步骤三:创建测试任务
华为云性能测试服务测试针对测试任务关联多个事务,并为事务分配不同的压力比例,以我当前测试的电商网站为例,单场景测试采用阶梯式压测模型(可以是递增的,也可以无规律的)快速找到压力瓶颈点:

而对于混合测试模型,则在混合测试任务下关联所有事务,并分配不同的比例:

步骤四:查看实时报告
任务启动后查看实时报告
首页访问,100并发用户数持续时间100s,可以看到在100并发时,都是正常返回。

当300并发用户数持续时间100s,已经出现了部分响应超时的现象。说明网站当前还无法支持300个并发访问用户的正常请求。当用户数达到500并发用户数持续时间100s,响应超时的数量高于正常返回的数量,出现异常。
查看对应的资源占用情况,CPU使用率,在性能测试的过程中,CPU的使用率长期超过90%,与业界标准比较,CPU的使用率超过了85%。内存使用率在12%以下,比较稳定。查看后端其中一个数据库节点的资源,资源的使用率较低,相较于前端,可得出性能瓶颈主要在前端的业务代码中。

然后根据定位情况进行优化后反复测试调优就行了。

步骤五:查看离线报告
也可以在无人值守的情况下完成测试后查看离线报告,内容与实时报告一致。

8.结果测试分析

  1. 统计维度:报告的TPS,时延、并发等统计维度均为事务,如事务中有请求多个报文,只有在多个请求报文均正常返回会认为成功,时延也是多个请求报文的求和值
  2. 响应超时:出现该情况下是在设置的响应超时时间内(默认5S),对应的TCP连接中没有响应数据返回,会将本次事务请求统计为响应超时,出现原因一般是被测服务器繁忙、崩溃、网络带宽被占满等
  3. 比对失败:从服务器返回的响应报文不符合预期(针对HTTP/HTTPS默认的预期响应码为200),比如服务器返回404,502等。出现原因一般为高并发情况下被测服务无法正常处理导致的,如果分布式系统中数据库出现瓶颈、后端应用返回错误等
  4. 解析失败:响应报文已全部接收完成,但是部分报文丢失导致整个事务响应不完整,这种情况一般需要考虑网络丢包
  5. 带宽统计:报告统计的是性能测试服务执行端的业务数据包带宽,上行表示从性能测试服务发出的流量,下线表示接受到的流量。如果是外网压测场景,您需要关注执行机的EIP带宽是否可以满足上行带宽的要求。而下行带宽需要关注单台执行机是否超过1GB
  6. TPS与并发用户及时延的关系:TPS是指云性能测试服务在统计周期内每秒从被测服务器获取到的响应事务实时统计,TPS=并发用户/平均响应时延。因此在测试过程中往往会发现并发用户增加了但是TPS没有增加,其原因是由于时延上升了
  7. 如何判断被测应用优劣:根据应用本身定义的服务质量定义,最佳状态是没有任何响应失败、比对失败的情况,如果有,需要在服务质量定义范围之内,通常情况下不超过1%,同时响应时延越低越好(2S内体验较好,5S内可以接受,超过5S则需要考虑优化),TP90,TP99指标可以客观反映出90%,99%用户的体验时延

电商网站全链路压测实战相关推荐

  1. 听说全链路压测已经杀疯了?劝你别盲目!

    不知道大家发现没,阿里.京东.字节.美团.饿了么.滴滴.陌陌等大厂的技术文章里,最近频繁提到全链路压测在企业内部的落地.本想抱着拜读一二的心理去看,结果一旦涉及到具体的落地细节,他们却都跟约好了一样三 ...

  2. 如何让全链路压测落地?

    不知道大家发现没,阿里.京东.字节.美团.饿了么.滴滴.陌陌等大厂的技术文章里,最近频繁提到全链路压测在企业内部的落地.本想抱着拜读一二的心理去看,结果一旦涉及到具体的落地细节,他们却都跟约好了一样三 ...

  3. 性能测试的价值、全链路压测了解

    一.有价值的性能测试需要满足什么 1. 性能测试与性能分析要有明确的数据证明调优的效果. 性能测试人员/团队要有能力给运维一份性能测试报告+配置文档+风险说明. 2. 性能测试与性能分析的价值要体现在 ...

  4. 阿里10年分布式技术沉淀:阿里高可用体系核心缔造者、全链路压测创始人告诉你!...

    原文链接 7月27日,云栖社区.阿里中间件将举办首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术干货.目前活动官网已上线:https://yq.aliyun.com/promotion/262,  ...

  5. 阿里10年分布式技术沉淀:阿里高可用体系核心缔造者、全链路压测创始人告诉你!

    原文链接 7月27日,云栖社区.阿里中间件将举办首届阿里巴巴中间件技术峰会,揭秘阿里10年分布式技术干货.目前活动官网已上线:https://yq.aliyun.com/promotion/262,  ...

  6. 推荐一款国内首个开源线上全链路压测平台

    关注上方"测试开发技术",选择星标, 干货技术,第一时间送达! 开课通知:重磅消息 | 2021年最新全栈测试开发技能实战指南(第2期) 前不久国内知名的系统高可用专家数列科技宣布 ...

  7. 你“被”全链路了么?全链路压测实践之理论

    要说当下研发领域最热门的几个词,全链路压测 肯定跑不了.最近的几次大会上,也有不少关于全链路的议题.之前有朋友在面试过程中也有被问到了什么是全链路压测,如何有效的开展全链路压测.今天我们就来聊聊全链路 ...

  8. 有赞11·11:全链路压测方案设计与实施详解

    2017年双十一即将来临,对于买家来说是一年一度的购物狂欢,可是对于电商公司的技术人员来说,却是一年一次的大考.如何用更少的预算完成指定当前业务规模的流量高峰,是技术的永恒主题. \\ 由InfoQ举 ...

  9. “敏捷版”全链路压测

    作者:子矜 审核&校对:风云.雨芙 编辑&排版:雯燕 客户的故事 全链路压测被誉为大促备战的 "核武器" ,如果之前有关注过阿里双 11 相关的技术总结,对 &qu ...

最新文章

  1. Java Web开发API Boy如何进阶?
  2. 百度超级链XChain(5)XuperBridge 智能合约接口
  3. 精简 opencv python_基于Python的OpenCV人脸检测!简直不要太简单!
  4. 不要666升级版(数位DP,三次方和)
  5. 百度编辑器图片上传 java_百度编辑器粘贴图片自动上传到服务器(Java版)
  6. c#怎么拟合函数得到参数_吴恩达老师课程笔记系列第32节 -正则化之代价函数(2)...
  7. 电脑扫描文件怎么弄_彻底清除手机垃圾文件,释放内存的方法
  8. MVC4 下DropDownList使用方法
  9. 【学习OpenCV4】图像通道的分离、合并与混合方法(C++)
  10. Android:JNI与NDK(二)交叉编译与动态库,静态库
  11. Java环境安装及环境变量的配置
  12. 关于未来IOT和移动APP集成的五个预言
  13. snagit 9注册码
  14. MySQL存储过程、函数、视图、触发器、索引和锁的基本知识
  15. Oracle中如何添加date类型的数据
  16. 用 RPM 打包软件,第 2 部分
  17. zookeepr 简介
  18. stripe支付集成
  19. 微信小程序之使用vant-3组件Uploader文件上传
  20. AutoCAD2009下载AutoCAD2009中文版安装教程附软件下载

热门文章

  1. 象棋中常用的最小值最大值算法及剪枝算法
  2. 《Windows Phone 8 Development Internals》读书笔记-1-2-1-连载
  3. 分布式版本控制系统Mercurial(一):Mercurial基本功能介绍
  4. Android改变字体方法——Typeface
  5. Weex学习资料整合
  6. 15.5.2 【Task实现细节】骨架方法的结构
  7. 中国人民公安大学网络对抗技术作业一
  8. const在c中的用法
  9. 搭建sql注入实验环境(基于windows)
  10. WCF面向服务应用程序系列之十:绑定-标准绑定(HTTP/TCP)