51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2100|回复: 1
打印 上一主题 下一主题

如何压力测试电子商务网站

[复制链接]
  • TA的每日心情
    无聊
    2024-3-7 09:16
  • 签到天数: 43 天

    连续签到: 2 天

    [LV.5]测试团长

    跳转到指定楼层
    1#
    发表于 2018-3-27 13:14:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    第1页:背景与面临的挑战!
    如今,与百姓日常生活密切的电子商城、网络订票和网上银行等系统都是电子商务网站的典型案例。这些系
    统涵盖了产品宣传展示、商品选购、交易结算、服务与客户反馈等诸多功能。当需要同时向一个庞大的群
    体提供这些服务,性能考量往往是系统成功运营的关键。

    以国内某著名电子购物网站为例,该网站有3000万注册用户,日均访问量达8000万,日均订单处理超过30
    万单,日交易额过亿元。可以想象,系统性能对该网站拥有者的收益有着至关重要的影响。而且,网站的性
    能优化不仅可以提高用户的访问体验,还可以帮助商家节省网站的初始建站成本和维护费用。

    电子商务网站的性能优化,离不开仿真真实环境的压力测试。而思博伦通信则是这方面的专家。近几年,思
    博伦基于Avalanche的电子商务网站测试解决方案已经为诸多客户完成了这方面的测试,如:某电信运营商
    院线通系统,某著名大型视频门户网站产品预约/抢购系统,某权威电视媒体巴西世界杯直播节目“xx赢”手
    机版等。(相关测试服务需求可发送邮件至TSAsia@spirent.com

    面临的挑战

    (一)复杂的系统

    下图是一个典型的电子商务网站的结构示意图。



    其中,Web服务器、数据库服务器和应用服务器代表了网站的核心内容。具体说来,前端Web服务器负责
    接收并处理来自用户的HTTP请求,并生成Web页面反馈给用户;中间的应用服务器负责执行商务逻辑;
    后台数据库和文件服务器负责存储用户、产品信息及状态。有的系统在数据库服务器前还会部署数据缓存
    设备已提高访问性能。外围的防火墙/IPS是主要的网络安全组件。4~7层负载均衡器则充当了应用交换机
    的角色,负责在海量用户访问与多台服务器间进行负载分担。

    对这个复杂的系统来说,成百上千的服务器和其他设备捏合在一起,面对海量用户的访问,用户的行为也
    不一致,有的在注册,有的在修改购物车,有的在结帐,等等。仍能保证绝大多数用户顺畅地访问是一个
    挑战。与之相对应,创建一个可信的测试模型非常重要且也是一个挑战。评估系统中某个单一组件的性能
    并不复杂,但是,如果没有仿真海量用户且模拟真实用户行为的测试工具,想预知这个复杂购物网站系统
    的性能、瓶颈或故障点位于何处,更像是一项不可能完成的任务。

    (二)故障的代价

    对电子商务网站来说,系统故障往往意味着高昂的代价。一个大型购物网站、机票/酒店预订系统出现难
    以接受的页面影响延迟或拒绝服务,在一个小时之内,就会损失数百万元的订单。它对品牌信誉度的负面
    影响可能直接导致客户粘合度的降低,这种无形的损失影响更为深远。

    而且,系统出现故障的时机常常是商家最不愿意面对的。比如,某大型体育赛事网络购票系统刚刚上线;
    某购物网站五周年店庆限时抢;某商旅网出台暑期优惠套餐等。这些时刻对网站商家来说都是名利双收
    的黄金档。

    这些黄金档期的背后,往往意味着大量用户的突发访问,或者说并发用户多、单位时间用户上线快。

    (三)升级的困惑

    随着用户的增加、流量的增大,电子商务网站也要面对成长的烦恼。

    一方面,网站希望推出更为丰富的特性来保持竞争优势,同时保证越来越多的客户仍能得到顺畅的服务。
    另一方面,网站架构师不得不深思熟虑。因为,网站的升级不只是换个主频更高的CPU、增加几条内存那
    么简单。不能对症下药、盲目地尝试不仅会浪费投资,还浪费了宝贵的占领市场的时间。

    架构师需要做出判断,哪些组件需要升级?或者说,系统目前的瓶颈是什么:是CPU处理能力滞后,导致
    复杂的动态网页不能及时被处理而延迟呈现给用户浏览器?是网络带宽或磁盘I/O不足,导致页面传输延
    迟明显增大?还是与数据库的连接承受不了目前的并发用户数规模?可以预见,若后台数据库急需优化,
    但此时只是忙于给前台Web服务器更换更快的CPU是无济于事的。

    值得注意的是,面对用户、流量可预见地持续增加,系统升级就已经不是信手拈来。更何况面对那些突发
    的状况?比如:春运期间火车票预订系统异乎繁忙,购物网站店庆优惠及时抢,以及暑期度假潮商旅网站
    的业务量激增等。

    而且,这些突发情况往往在短时间内结束,现实环境中很难复制。使得网站没有足够的时间在“实战”中找
    到瓶颈所在,并检验升级的效果。若等到下一个爆发周期再去验证,潜在的商业损失很大。


    第2页:测试方法
    测试方法

    作为强有力的压力测试工具,思博伦Avalanche通过模拟真实的用户访问,可以帮助电子商务网站找到性能
    瓶颈及故障点。

    (一)仿真真实用户

    思博伦Avalanche仿真真实的用户行为。实现的过程如下:

    1)抓取真实浏览器用户在电子商务网站上交易过程的URL,URL中包含注册、登陆、产品代码、账户等信息;

    2)将抓取的URL导入到Avalanche模拟的客户段的Action List中,并根据需要进行修改,如:从Avalanche的数
    据库中顺序提取10000个不同的用户/密码用于登陆;

    3)Avalanche模拟的客户端可仿真不同的浏览器及不同的版本。支持Cookie,并可与SSL结合用于加密访问;

    4)Avalanche中的Action List被顺序执行,并支持条件判断等,用于网站返回值的验证。

    以某购物网站为例,用户访问首页并进行注册,之后自动或手工登陆,然后进行选购。在将选购商品
    加入购物车后,通过网上交易平台完成结帐(在性能测试中,结账部分一般可以由研发人员在Avalanche
    执行某个动作后返回特定值来模拟,而不会走真正的付款流程)。如下图所示。



    当然,除了以上主要业务流程外,网站还包含其他用户行为,如:用户浏览不同分类下的产品宣传、修
    改或取消订单、用户收到货物后对产品和服务进行评价等。

    Avalanche对上述行为进行仿真,如:登陆、浏览、选购、评价等。并且可以按照一定的比例对用户的行
    为进行混杂,如:90%的在线用户从浏览首页开始,30%的用户点击“即时抢”,10%的用户在下订单,
    等等。

    (二)测试拓扑

    Avalanche可模拟数百万的并发客户,通过Internet访问电子商务网站。测试拓扑如下图所示。



    在此拓扑中,可以将电子商务网站作为一个整体进行评估,即整个网站被看成一个“黑盒”。也可以在发
    现整体出现问题后,采用隔离法对网站中的某个或某几个组件进行单独排查测试。比如,测试系统中的
    缓存设备对某些页面是否有效;在面对海量、具有混杂行为的用户时,响应成功率的下降原因等。


    第3页:测试案例(一)
    测试案例

    案例一:测试某电信运营商大型在线影院订座/购票系统

    1.测试目的

    1)通过对在线影院订座/购票平台的性能测试,为营销推广提供有力支撑和可行性评估,为系统扩容工
    程提供量化依据;

    2)通过对平台各个子系统(接入、订购、支付)的处理能力进行测试,检测各子系统和端到端的网络
    服务质量。

    2.测试范围及需求

    本测试主要包括压力测试和过载测试。测试要求模拟真实的用户行为,并按照指定的行为比例进行混杂。
    测试涵盖查询、选座、订单提交和支付等业务流程,涉及接入子系统、订购子系统和支付平台。

    当用户行为确定后,Avalanche通过调整用户规模,如并发用户数或交易速率来提高或降低对被测系统的压力。


    运行过程中和测试结束后,Avalanche提供从网络流量、TCP到应用交易各个层面的状态统计和结果。如下
    图所示。



    在实际测试中,用户对整个系统进行了测试,如下表所示。

    除了端到端测试,还分别对各个子系统进行了评估,包含:接入子系统、订购子系统和支付子系统。例如,
    下表为接入子系统的结果统计。



    3.测试的价值

    在使用思博伦Avalanche进行测试后,来自用户的反馈如下:

    1)Avalanche配置简单,软、硬件结合,无需采用多台PC/服务器同时部署某用户行为仿真软件的方式,
    某仿真软件配置需花一周左右的调试周期,而Avalanche配置调试过程只需要半天时间;

    2)测试流程真实有效;通过对服务器端日志、用户数据库参数变更及返回结果值,反向验证了Avalanche
    测试仪发起请求的真实有效性;

    3)压力测试反映了现网真实的结果。用PC/服务器+某仿真软件的方式模拟大量并发用户做性能测试,均
    无发现服务器性能瓶颈。但在去年的圣诞节期间,我系统多次因大量用户的登录和付费而瘫痪宕机,采用
    Avalanche则轻松复现这一系列问题。

    4)测试结果丰富,帮助研发人员快速定位问题;通过对Error Code、客户端独立统计、TCP结果等综合分
    析,研发人员能快速在事件日志中找到问题原因。


    第4页:测试案例(二)、(三)
    案例二:某著名大型视频网站的产品预约/抢购系统压力测试

    1.测试目的

    在产品预约、抢购活动开始之前,对网站系统的性能进行测试;通过压力测试,找到系统瓶颈,进而帮助
    系统优化,确保预约/抢购活动的顺利进行。

    2.测试范围及需求

    本次测试为压力测试,设计到网站系统的登录模块、预约模块、抢购模块和支付模块。要对包括每个模块的
    性能和整个系统的性能进行测试,测出系统瓶颈和薄弱环节。

    需要模拟大量真实用户同时操作,查看交易成功率和页面响应时间。同时确保系统在压力测试的情况下响应
    及时,不会产生未知错误影响网站用户体验。

    3.测试的价值

    在压力测试时,网站系统登录模块、抢购模块和支付模块后台均出现报错信息。经定位发现诸多问题,举例如下:

    1)后台数据库系统存在瓶颈速度慢,影响了各模块的响应速度;

    2)在某模块压力测试情况下,需要查找缓存的处理而转去查数据库;

    3)登录模块存在瓶颈,大量用户上线时主从系统同步有问题,导致预约失败;

    在压力测试时,会产生相关的总体结果,同时也会统计网络系统中产生的二层到七层的详细结果,对于系统
    问题分析和定位有很大帮助。如下图:




    在思博伦Avalanche的帮助下,不仅帮助用户很快定位出系统瓶颈和问题,而且,在用户解决了问题后又再
    次进行了验证和调优,很好的保障了预约/抢购活动的进行,保证了系统最终上线时,用户的良好访问体验。

    案例三:某权威电视媒体巴西世界杯直播节目“xx赢”手机版

    1.测试目的

    面对潜在的海量手机球迷用户,巴西世界杯“xx赢”节目上线前进行系统瓶颈查找及性能优化。

    2.测试内容




    使用思博伦Avalanche仿真大量手机用户访问“xx赢”网站。针对《xx赢》各个手机访问接口,如注册、验证、
    登陆、答题,模拟大量世界杯球迷注册、验证、登陆及答题行为,对系统进行了不同规模的压力测试。既仿
    真节目外的平缓海选时段,又仿真每晚《xx赢》与电视直播同步的答题节目开始后的高峰突发时段;既模
    拟出不同的手机号段与验证码,又对网站的返回结果进行关键字搜索和判断。

    3.测试的价值

    网站的注册接口和答题接口,在指定的用户规模仿真下,研发人员本来认为可以顺畅访问的情形,均发现
    了明显的性能障碍。在思博伦Avalanche的反复测试配合下,研发人员解决了存在的代码问题和数据缓存服
    务的设计问题。为系统在世界杯直播期间的顺畅访问作出突出贡献。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    该用户从未签到

    2#
    发表于 2018-5-4 14:52:40 | 只看该作者
    做电商网站压测,最重要的要明确目标和目的
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-20 08:17 , Processed in 0.068283 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表