陈琳
(中国移动(深圳)有限公司,广东 深圳 518048)
瞬时高并发的电商营销活动性能测试策略研究
陈琳
(中国移动(深圳)有限公司,广东 深圳 518048)
本文首先介绍了蓬勃发展的电商营销活动及其风险,提出了现有常规性能测试策略的局限性;其次,介绍现有常规性能测试策略,主要针对系统整体性能,无法满足瞬时高并发电商营销“秒杀”活动性能的需求;最后针对瞬时高并发“秒杀”营销活动提出针对性新型性能测试策略。
营销活动;测试策略;性能指标
随着电子商务的飞速发展,毫无疑问,电商模式为企业创造了有利的营销渠道及获取更广消费受众的便捷平台,也为网民带来了快捷和价格实惠的购物体验。而为了吸引大众的眼球,各个电商平台也推出一系列各式各样的营销活动,其中目前最令人瞩目的是“秒杀”活动。
“秒杀”是指商家发布一些价格大大低于正常价格的商品,所有买家同一时刻在网上抢购的营销方式。往往因为价格低廉,所以在一秒甚至于更短的时间内,该类商品被买家抢购一空,从而形象的称为“秒杀”[1]。
正是如此之多的吸引用户的营销活动,给电商企业带来了巨大的收益,同时,相比日常的交易,在营销活动特殊的购物期间,IT系统往往会面临来自不可预测的海量用户因高并发访问带来的巨大考验。不可预知的、突发性的高并发访问往往容易导致服务器过载、在线交易系统反应迟滞甚至瘫痪。
一般来说,电子商务网站对于IT系统的依赖程度不亚于其他任何系统部门。电子商务网站的IT系统包括电子商务订单在线交易、后台管理、供应链管理、物流管理、产品数据库和客服系统等等,都需要有一个高可靠性、高性能并具有良好弹性扩展的IT系统的良好支撑。但是,现状表明,在电商运营的能力要素中,相比品牌宣传和物流推广,大多电商在网站程序开发、服务器稳定性等IT技术支撑力层面上做得还远远不够。
例如,在2012年的“双十一”淘宝“自造节”中,促销的交易额突破170亿元,在电商企业赚得瓢满盆溢之时,危机也随之而来,2012年淘宝“双十一”还未拉开序幕,支付宝则被“抢滩”,出现无法支付的故障。无独有偶,京东商城的服务器也未能承受住促销期间激增的用户访问量,因服务器瘫痪,导致短时间内网站无法打开。
又例如,2014年底,拉手网与深圳东部华侨城牵手推出0.01元秒杀华侨城门票活动,但因拉手网技术问题,导致活动库存未限制,大量用户秒杀门票成功,最后出现华侨城不承认该类0.01元秒杀门票的纠纷。
以上事实证明,IT系统的性能建设是不容忽视的。电商营销活动具备的高用户并发量、集中时间交易的特点要求其性能测试要不断适应电商市场规模及用户数量的增长。特别是对于“秒杀”营销活动的性能测试,关注点在于系统能承受的瞬时高用户并发数、系统瞬时高并发时稳定性、系统订单提交时库存锁定是否正常等性能指标,然而现有的常规性能测试策略主要针对系统的整体性能测试,重点在于系统交易处理能力及持续稳定性等,所以,现有的常规性性能测试存在局限性,不能有效的满足测试需求。
性能测试主要是在正常和大量使用的情况下评估系统的性能,以确保系统的正常运行,为维护系统性能找到有效可行的方法。性能测试通过模拟大量用户操作,对服务器发出请求,增加服务器负载,而靠手工测试是不实际的,所以性能测试的基本方式是利用测试软件模拟真实用户的操作行为,向服务器发起请求[2]。
目前能执行性能测试的软件工具很多,例如LoadRunner、JMeter、QALoad、E-test等。其中LoadRunner是性能测试的代表工具,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,能够对整个企业架构进行测试。
典型的性能测试过程主要分为以下八个阶段:
图1 性能测试流程图
常规性能测试策略强调系统的整体性能表现,以目前流行的另一种营销活动——“团购”活动为例来说明常规性能测试策略。
“团购”活动是指商家在某时间段展示有折扣的团购价商品,用户浏览后,在商品团购活动时间段内进行购买,此时间段购买的商品才是团购价,过期后则是原商品价格,往往因用户群大,价格低于商品原价,且库存量大,称为“团购”活动。如“聚划算”活动。
对“团购”活动进行业务逻辑梳理分析,在活动有效时间段内,有大量用户进行点击购买,提交订单,返回结果,流程图如下图:
图2 团购活动流程图
团购时间内,是系统访问高峰期,会持续有大量用户访问系统,点击立即购买,提交订单,对服务器造成压力,且对系统处理能力以及稳定性有较高要求,是性能风险点。对于此类活动,以常规性性能测试策略进行测试,性能测试策略如下:
(1)通过业务逻辑分析,点击立即购买与提交订单为大量用户访问操作点,在脚本中将两个操作设置为事务,且事务中设置检查点,通过检查点对事务的成功与否作出判断;
(2)在场景设置中,模拟真实用户访问情况,通过设置运行时间(一般为5min)来进行保持同时在线用户数,使得虚拟用户在5min中内不停迭代,模拟高峰期大量用户持续访问情景;
(3)测试过程中,设置一定的运行时长,通过观察系统TPS(每秒处理事务数)、响应时间等系统指标与CPU、内存服务器资源指标,逐步的增加并发用户数,直到达到系统性能极限;
(4)性能测试结果分析,通过对系统指标以及资源指标的数据分析,得出系统的性能表现。对于“团购”类营销活动,主要关注于TPS(每秒处理事务数)、响应时间、事务成功率、错误数、资源利用率等指标。
通过以“团购”营销活动为例说明常规性性能测试策略,发现常规性性能测试策略从业务分析到场景设计以及性能指标结果分析都与实际的瞬时高并发的“秒杀”营销活动的真实情况不符,所以使用常规性能测试策略对“秒杀”营销系统进行测试是无法真正得出其性能表现的。
3.1 需求目标确认
在性能测试过程中,明确性能目标是一个关键步骤,针对不同的需求制定相应的性能目标,才能使性能测试达到最佳的效果。
性能测试的总体目标是找出系统可能存在的性能瓶颈或者软件缺陷,确认其是否可以达到使用需求;营销活动的具体目标是要对其业务逻辑进行梳理分析,找出性能风险点,确认其性能指标要求,而显然系统业务逻辑成百上千种,不可能做到对每种业务逻辑进行测试,所以需要选取核心业务操作作为关键目标进行测试。
“秒杀”营销活动是用户登录后,点击“立即秒杀”,进入提交订单页面,以提交订单成功,是否还有库存作为流程结束点,一般库存数量少,如一元手机秒杀。
(1)流程描述
买家在点击立即秒杀页面等待倒计时,待时间点到,所有买家一齐点击“立即秒杀”,进入订单页面,填写订单页后,点击提交订单,返回结果,秒杀流程结束,流程图如下图。
图3 秒杀活动流程图
(2)性能风险
a.用户登录进入立即秒杀页面后,在未开始秒杀前,会有不停刷新页面的用户行为,此时会对立即秒杀页面造成持续访问压力,但是一般该页面属于静态页面,对系统服务器影响不大。
b.用户聚集在立即秒杀页面,当时间点到,将会有大量用户同一时刻点击立即秒杀按钮,进入订单页,在短时间内,向服务器发起大量请求,对服务器造成巨大压力。
c.用户点击提交订单,秒杀成功,库存锁定+1,只有与库存数量一致的用户可以秒杀成功进入下一页面,其余用户会因库存不足,秒杀失败,此时,大量用户并发数,对库存锁定机制要求高。
3.2 脚本与场景设计
测试脚本是测试实施的依据,是业务内容贯彻到测试中的保证,脚本的好坏也直接关系到测试的效果与质量,所以要求脚本尽量模拟真实业务情况;同时,对于同个业务流程,用户的真实行为会对系统造成不同的压力,带来不同的性能风险,所以场景也要根据用户的真实行为进行设计,来符合真实场景。
“秒杀”营销活动脚本将立即秒杀与提交订单操作设为两个事务,在立即秒杀事务前设置集合点,确保并发用户在同一时刻同时进行操作;在每个事务中设置检查点,通过检查点对事务的成功与否作出判断。
“秒杀”的真实场景是用户在倒计时停止的一瞬间,所有等待的用户点击立即购买按钮,进入下一页面,当库存为0后,立即购买按钮已显示灰色,用户再无法点击,从而“秒杀”的场景应大并发用户设置一次负载的上升和下降,并且只循环压测一次。例如在LoadRunner中,选择Manual Scenario完全手动设置场景,Run Mode选择Basic Schedule经典模式,设置一次负载的上升和下降,并且在Runtime Setting中选择循环一次,从而达到完全模拟真实场景的效果。
“秒杀”营销活动测试过程中,通过观察响应时间等系统指标与CPU等服务器资源指标,逐步的增加并发用户数,直到达到系统性能极限,同时记录下各个负载压力下的输出性能值。
3.3 结果分析
通过测试工具运行测试脚本,采用一台或者多台服务器作为压力发起服务器,模拟大量虚拟用户向系统服务器发起业务请求,同时记录下各个负载压力下的输出性能值[3]。
瞬时高并发的“秒杀”营销活动性能测试与常规性“团购”营销活动性能测试对性能指标的关注略有差异(如图4)。
图4 性能指标对比图
(1)提交订单成功数
提交订单成功数应与库存预定值一致,如果不一致,则表示系统库存锁定失败,系统存在重大性能问题。“秒杀”活动以是否有库存作为活动结束点,从而库存锁定成功与否是关键指标,而“团购”活动以活动时间为结束点,从而库存的锁定不是性能关键指标,而属于功能测试的指标。
(2)并发用户数
系统能够支持的用户数是系统容量的重要标志,但服务器实际承受的压力不只取决于业务并发用户数,还取决于用户的业务场景。因“秒杀”活动为一次上升与下降的负载,所以每次负载的并发用户数是与服务器进行交互的用户数,是系统能承受的压力值,是系统处理的能力表现,所以并发用户数是“秒杀”活动的重点指标,而“团购”活动中,并发用户数是指测试过程中保持在线的并发数,并不是全部与服务器进行交互,不表示实际服务器承受的压力,所以,不能作为系统处理能力的表现。
(3)TPS
TPS(transaction per second)系统每秒处理事务数,是系统能够处理事务能力的体现,随着并发用户数增加,响应时间在合理范围内时,TPS增加到一定数值将不再增加,或者有下降的趋势,此时,称为TPS拐点,也就是系统的最大处理事务能力。“秒杀”活动中只有一次负载上升与下降,从而TPS不属于关注的指标,而“团购”活动中,用户在场景运行时间内会循环执行操作,保持并发用户数,从而TPS是重点关注指标。
(4)事务响应时间
对于用户来说,最直观的体验就是访问该页面快或者慢,即响应时间的长短。业界对于响应时间采取“2-5-8”原则:
a.当用户在2-5秒之间得到响应时,会感觉系统的响应速度还可以接受;
b.当用户在5-8秒以内得到响应时,会感觉系统的响应速度很慢,但是还可以接受;
c.而当用户在超过8秒后仍然无法得到响应时,会感觉系统糟透了,或者认为系统已经失去响应,而选择离开这个Web站点,或者发起第二次请求。
所以,当响应时间达到8秒时,则为用户最大可接受响应时间点;当然,针对不同的系统,对于最大可接受响应时间可根据实际的系统要求来确定。对于“秒杀”与“团购”两类营销活动,响应时间都是重要的性能指标,关系着用户的直观感受。
(5)事务成功率
事务成功率越高,则表明系统处理能力越大;而失败事务主要由于系统响应慢,导致访问业务功能超时,或者系统业务功能异常,不能正常访问等,需要根据事务错误提示信息,具体分析。
(6)错误数
系统出错数多,则表明系统不稳定,处理能力低,除因事务失败引起的错误具体分析外,一般要求系统无出错情况。
(7)资源利用率
判断CPU是否是瓶颈的方法:一般判断CPU为瓶颈,主要从两方面:一是CPU空闲持续为0,二是运行队列大于CPU核数(经验值3-4倍),即可判定存在瓶颈,对于CPU高消耗主要由什么引起的,需要具体问题具体分析。
判断内存是否是瓶颈的方法:一般至少有10%可用内存,内存使用率可接受上限为85%。当空闲内存变小时,系统开始频繁地调动磁盘页面文件,空闲内存过小可能是由内存不足或内存泄漏引起,需要根据系统实际情况监控分析。
判断磁盘I/O是否是瓶颈的方法:磁盘I/O对于数据库服务器、文件服务器、流媒体服务器系统来说,更容易成为瓶颈,一般从以下几个方面对磁盘I/O进行分析判断:
①计算每磁盘I/O数
每磁盘I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。
②监控磁盘读写
如果磁盘长时间进行大数据量读写操作,且cpu等待超过20%,则说明磁盘I/O存在问题,考虑提高磁盘I/O读写性能。
判断网络带宽是否是瓶颈的方法:判断网络带宽是否是系统运行性能瓶颈的首要条件是网络带宽是否会影响系统交易执行性能。在实际性能测试中,如果发现始终报连接超时,而实际手工访问可以正常访问,可以通过ping应用服务器IP或网关IP,如果出现网络严重延迟或丢包,则说明网络不稳定,需要检查网络。
通过对资源指标四个指标的分析,实际上各个方面都是互相依赖的,不能单从某个方面进行排查,所以,在分析性能问题时,需要从各个方面进行考虑。
以上为瞬时高并发“秒杀”营销活动的测试策略,根据性能测试典型流程对“秒杀”活动提出了针对性的测试策略,通过分析发现,与常规性能测试策略存在诸多不同之处,这也是提出新型测试策略的初衷。通过新型测试策略,打破常规性能测试的局限,对“秒杀”活动进行性能测试,确保系统无性能故障。
营销活动推动了电子商务的发展,是卖家与买家双赢的活动,对于卖家而言,营销活动吸引了用户的眼球,达到了聚集人气,宣传商品的效果,同时,对于买家而言,能通过低价格获取高质量商品。但是承载营销活动的系统性能能否支持如此高人气的营销活动,也是至关重要的,如果系统性能达不到要求,则营销活动双赢的局面将会打破,所以对营销活动的系统进行性能测试是势在必行的。而因越来越多的营销活动面世,对于不同的营销活动,性能测试应有不同的针对性测试策略,才能更加适应,达到预期的测试目的与效果。
[1]张小红.电子商务营销策略之秒杀[J].机械管理开发,2011(2):150-151.
[2]陈小辉.Web性能测试技术探讨[J].科技广场,2011,(1):28-31.
[3]伊文斌,郑剑.基于LoadRunner的Web负载测试[J].江西理工大学学报,2008,29(4).
Research on the Testing Strategy of the Instantaneous High Concurrency of Electricity Supplier Marketing Performance
Chen Lin
(China Mobile(ShenZhen)Limited,Shenzhen,518048,Guangdong)
In this paper,it first introduce the vigorous development of marketing activities of electronic business and the risks, and puts forward the limitations of the existing test methods.Secondly,it analyzed the limitations for routine performance testing method,which is unable to meet the performance requirements of the instantaneous high concurrency"miaosha"activity.Finally a new model performance testing strategy was proposed based on the analysis of instantaneous high concurrency"miaosha"marketing activity
marketing campaign;testing strategy;performance index
F713
A
:1008-6609(2015)12-0062-04
陈琳,女,湖南常德人,本科,工程师,研究方向:软件测试。