从川普胜选、双十一购物来看服务器性能的测试思路

导读

没有流量,产品烦恼;流量太大,开发人员困扰。川普胜选瘫痪了加拿大移民局网站,双十一的购物热潮也影响了众多网站服务的速度,每一次大事件都给服务器带来了无上的压力。在流量高峰的日子里,购物,狂欢,是其他人的事情;定位风险,预防风险,才是测试人员的使命。

北京时间2016年11月9日,周三,美国共和党参选人川普(Donald Trump)赢得了美国大选,成为了新的一届美国总统。然后,发生了一件有趣的事,加拿大移民局官网瘫痪了! 
这里写图片描述

网站上写着:“使用该网站可能面临延迟现象,我们正尽力排除问题,感谢您耐心等候” 
原因是有相当一部分美国人表示如果川普当选,他们就要移民加拿大,而此时一位加拿大议员就将自家移民局的网站链接发了出去,然后悲剧就产生了……

从美国东部时间星期二8点至半夜,谷歌上“如何搬去加拿大”点击量暴增1500%。到了周三凌晨,加拿大移民局官网彻底瘫痪……不过,福克斯新闻网也表示,这很正常,每次大选加拿大移民局网站都会迎来一场移民申请高峰。

每四年的十一月都有一次访问高峰给服务器带来了巨大的压力。这熟悉的场景好像我们每年都有? 
在美国,这现象叫做“美国大选”,在中国,我们叫“双十一”……

2009年,当时还叫“淘宝商城”的天猫在11月11日举办了促销活动,活动的初衷很简单,天猫想要营造一个属于自己的节日,选在这一天的原因也很简单,因为光棍节正好处在十一黄金周和圣诞促销中间,而这时候天气变化正是人们添置冬装的时候。双十一的活动戳中的用户的心理,也掀起了电商圈的一股惊涛骇浪。 
这里写图片描述

从2009到2015年,天猫的双十一活动交易额从0.5亿上升到了900亿,近两年都能够近乎翻倍的增长,从2012年支付宝交易额达到191亿元打破了全球网购单日销售记录;到2013年55秒交易额突破1亿;再到2014年13小时打破2013年的交易额,天猫每年都在创造记录。

然而,双十一的活动也不从来都是一帆风顺的,往往在双十一开始的最高峰时期,支付宝也不止一次的出现过故障的情况,同加拿大移民局的网站面对申请高峰出现故障一样,订单的瞬间暴增会造成多家网银无法通过支付宝支付的现象。

这里写图片描述

在使用了云计算的情况下,支付宝这类业内一流的架构在高峰期仍然遇到巨大的挑战。 为了保证企业业务在访问高峰时期依然能够正常运行,不影响用户体验和企业收入,在”用户暴涨“的时间节点之前对产品服务器进行预先的测试是非常必须的,那么,应该如何进行测试呢?

在一般的电商系统中,功能上有搜索,聊天,下单,付费,收货,评价等诸多功能,对系统都会产生不一样的压力,要对自身的业务进行剖析,权重最高的是哪个,风险最高的是哪个,从而进行设计相对应的测试策略。为了检验电商网站自身系统性能,就需要对服务器反复的测试与回归,力求实现最真实的用户访问场景。腾讯WeTest服务器性能测试(http://wetest.qq.com/gaps 的“全局参数化设置”与”上下文变量设置“功能帮助用户实现了模拟用户的访问场景。

“全局参数化“遍历电商网站所有商品

腾讯WeTest服务器性能测试的“全局参数化“实现的是通过自动更改”index“字段中的参数,实现遍历电商平台上所有商品页面,对电商平台上所有的商品页面模拟真实的用户压力。 
这里写图片描述

1、点击右上角的“全局参数化“的设置按钮,开始设置全局参数化 
这里写图片描述

2、点击“添加“,添加参数,将参数名修改为想要测试的字段,比如上面的”index“字段。另外参数化形式中有”自增“、”随机值“和”定长“三种配置方式。 
“自增“可以设置”最大值“和”最小值“,比如最小值设置1,最大值设置100,就可以自定义服务器压力,遍历电商平台上参数值为1-100的所有商品; 
“随机值“可以实现在自定义范围内随机对某商品页面进行压力测试; 
“定长“通过设置一定长度下的数值,在这个范围内的所有商品页面进行随机的压力测试,比如定长设置为3,则会在”000-999“”aaa-zzz“之间进行随机的压力测试。 
这里写图片描述

“全局参数化“可以设置”自增“、”随机值“和”定长“三种形式

这里写图片描述

“全局参数化“下的”定长“参数设置

具体操作可见如下动图: 
这里写图片描述

“上下文变量设置“模拟用户传输登录信息

“上下文变量设置“实现的是将用户登录的所包括的用户信息传输到下一个页面中,对于电商平台来说,通常代表的是用户在登录之后,点击了”购买“,带着用户的登录信息,进入了购买页面。

1、通过腾讯WeTest服务器性能测试,在“客户端请求“点击”上下文变量“,开始配置 
这里写图片描述

2、“上下文变量设置“是为了实现URL之间参数信息的传递,因此需要点击右下角的”+一个URL请求“增加一个URL,然后保证第一个URL的”变量名“与第二个URL的字段保持一致 
这里写图片描述

3、“提取方式“通常选择”键值对“较多(具体使用可根据实际情况),选择想要传递信息的”header名称“,确定”提取规则“。”提取规则“中所填写的就是传递到下一个页面的信息,比如电商平台用户的会员信息。

这里写图片描述

那么”提取规则“应该填写什么呢?我们需要在URL页面中去寻找这个”键值“。 
首先在chrome浏览器中输入第一个URL,点击F12,点击Network,刷新一下页面之后点击最左侧的”setcookie_prep.php“,找到对应的header“Set-Cookie“,后面order_id后的值,就是我们将要传输给下一个URL的信息。 
这里写图片描述

4、完成了”上下文变量“的设置之后,在“测试模型“中的场景中选择”上下文“模式,分别输入两个URL。 
这里写图片描述

5、如果自有服务器,则可以在“服务器监控“的”添加监控“中设置服务器信息;如果没有,则可以点击”立即执行“开始测试 
这里写图片描述

具体操作可见如下动图: 
这里写图片描述

总结

对电商平台来说,要进行压测的部分不止是遍历所有商品页还有模拟真实用户购买那么简单,还会有搜索,聊天,收货,评价等更多的功能,本文希望通过以上两个简单的范例,让大家了解到如何剖析自身的业务特点,然后根据不同的特点去测试各自的场景,力求达到最真实的用户访问情况,也为可能出现的火爆情况做好准备,避免出现加拿大移民局网站的悲剧,也避免让电商平台的买家因为无法付款而流失。

做好这些,才能做出更好的电商网站。

在流量高峰的日子里,购物,狂欢,是其他人的事情;定位风险,预防风险,才是测试人员的使命。 
腾讯WeTest运用了沉淀十多年的内部实践经验总结,通过基于真实业务场景和用户行为进行压力测试,帮助游戏开发者发现服务器端的性能瓶颈,进行针对性的性能调优,降低服务器采购和维护成本,提高用户留存和转化率。

功能目前免费对外开放中,欢迎大家的体验 
体验地址:http://wetest.qq.com/gaps/ 
如果对使用当中有任何疑问,欢迎联系腾讯WeTest企业qq:800024531

参考文章: 
解密天猫双十一的发展历程 今年又有什么新鲜事儿? 
http://sz.winshang.com/news-544595.html 
逃不掉的双十一 可怕的分布式架构隐患, 
http://server.it168.com/a2014/1112/1681/000001681959.shtml 
加拿大移民局官网瘫痪!是因为这群“川普难民”… 
http://www.fr-cn.fr/china/news/18761.html 
加拿大移民官网瘫痪,美国“川普难民”也要来加拿大 
http://www.andyyimin.com/AU/news/588.html

原文地址:https://www.cnblogs.com/wetest/p/6052557.html