上海软件测试培训
达内上海市场营销中心

15026646813

热门课程

软件测试实例分析:饿了么全链路压测

  • 时间:2017-11-07 14:38
  • 发布:上海软件测试培训
  • 来源:企业笔试题

全链路压测在实际生活中的应用也非常多,上海达内软件测试小编就以饿了么在线外卖平台举例说明吧。这个我国帮上有名的在线外卖平台,用户量达2.6亿,覆盖全国2000多个城市(数据截止至2017年9月)。

为了能让大家理解全链路压测,今天【上海软件测试培训】达内小编首先大家共同分析下饿了么业务本身特点:

时效性: 从用户下单到商家接单再到物流配送到家,整个流程要控制在一定时间范围之内,对时效性的要求非常高;

高并发: 大量用户产生的千万订单集中分布在中午和傍晚两个时间段内,对整个系统的冲击可想而知;

秒杀活动: 为了充分利用闲时的机器资源,会在几个整点进行秒杀活动,整点活动产生的瞬时流量甚至能超过午高峰的最高值;

常规化: 这种大流量的冲击不是偶发的,而是一个常态化的过程,这对系统的稳定性提出了极高的要求;

基于以上因素,再加上线上不断有容量引发的问题发生,对整体系统进行全链路压测势在必行。

基于用户量达2亿的平台,饿了么的全链路压测工作都是在线上环境进行,为何不在测试环境进行呢?原来饿了么也是有苦衷的【上海软件测试培训班

1. 测试环境硬件资源以及压测数据与线上差别太大,压测出来的数据指标参考价值不大;

2. 服务间依赖关系错综复杂,测试环境很难模拟且不够稳定;

整个全链路的压测也不是一蹴而就的,中间主要经历了三个阶段。

1. 缩减服务器

在低峰时间段,通过一台台缩减集群内服务器的数量,使得单台服务器的请求量不断加大,从而评估当前集群容量及预估后续随着单量的增长所需服务器的数量。

优点:真实流量,评估出的容量最真实;不用编写压测用例和准备压测数据,节省大量压测准备的时间;无脏数据产生;

缺点:风险性比较高,一旦发现达到瓶颈必须立马恢复;由于请求量恒定,通过缩减服务器数量的方式并不能评估出底层基础组件的容量,如DB,MQ等基础组件,从而会导致容量评估不准确;对于访问流量有一定要求,流量太小的话达不到瓶颈。

2. 单独业务压测

针对单个业务在低峰期进行压测,这就需要压测人员对业务有一定的敏感度,对业务和系统架构有比较深的了解。

基于以上种种情况,最终饿了么企业决定在线上进行全链路压测。

3. 线上全链路压测

模拟外卖平台下单,开放平台下单(如手淘),商户接单和物流配送,模拟大量的用户查询操作,覆盖所有关键路径的接口,通过不断从各个入口加压,既能做到对各个服务的容量做到评估,也能观测底层服务(包括各个中间件)的性能指标,对整个业务系统的容量评估也相对精准;

当然,这样做也会带来一些问题,最典型的就是写请求产生的脏数据怎么处理。最开始我们想把涉及到写数据的地方把压测流量通过识别写到隔离的位 置,但是后来发现要改造的地方(包括各个业务,中间件等)太多,而我们又急需解决线上容量问题,最后决定对压测数据做逻辑隔离,即对压测数据做特殊的标识 与真实数据区分开来,后面做大数据统计分析,清结算等也会通过特殊标记把压测数据过滤掉。

那么在实施全链路压测,具体应该怎么做呢?上海软件测试培训简要说明:

1. 业务模型的梳理

业务模型梳理需要结合业务本身和业务系统的架构,这一步至关重要,梳理的是否完善直接关系到最终压测结果是否具有参考价值。

2. 数据模型的构建

数据模型的构建总的原则:紧贴业务场景,最大可能地模拟真实用户的请求。

3. 压测工具的选型

目前饿了么压测工具以Jmeter为主,主要基于以下几点:开源轻量级,能够了解甚至修改其每个控件的实现;方便开发插件,可以支持如thrift等类型请求;支持丰富(如RemoteServer,设定集合点等);压测结果数据与公司监控指标吻合

4. 压测指标的监控与收集

用实例来说明,是不是更容易理解呢,当然这只是上海达内软件测试培训班用来给学员课堂举例的冰山一角,还有更多实践项目给到大家切身体验。

学习使我们处于不败之地,IT学习更能让我们适应互联网+大数据时代的高速发展,上海达内带你一同走进魔都的高薪阶层,做更有价值的事。【上海软件测试培训机构】达内


扫码获取免费学习机会


上一篇:QA科普:物联网测试地图
下一篇:毕业生学习软件测试去哪里好:上海达内QA毕业学员告诉你

软件测试面试题,不是经典但命中率极高

QA在软件测试中扮演什么角色?如何保障软件质量

软件测试工程师专用工具:Burpsuite测试移动应用程序

春运急?教你用Python自动刷新抢12306火车票

选择城市和中心
贵州省

广西省

海南省

免费学习5天VIP课程