秒杀抢购活动性能测试记录

 

本次测试的内容是一个半价秒杀购车活动

 

登陆后,如果之前预约活动有预约成功过,那么就有资格进行抢购活动,如果之前活动没参与预约,那么会提示:你未预约没有抢购资格。

之前预约活动有12W人预约成功,那么秒杀活动开始的时候规则是:第一个请求响应的人能中这个名额,其它的全部都会提示:抢购失败

中间还有个规则是:在点击抢购按扭后,会弹出验证码,验证码输入正确验证OK后,才真正提交抢购post

那么问题来了:并发存在2处:

1、验证码

2、抢购接口post接口

分析压力大小:

因为之前没有积累线上数据,所以并不知道真实的压力会有多大,所有各方给不出一个目标,只能朝单位机器下应用的极限来并发压测

因为有12W人已预约成功,届时秒杀活动优惠达5W之高,活动力度之大,可谓为压测增加了困难,预估抢购活动那10分钟,可能会有12W请求,且活动并发达到一个未知比较大的值,为啥说未知呢,因为所有人都给不出这个数据,光追着我要极限值,我也是无语了。极限值 只存在特定情况下。

 

我的分析:

1、使用LR,最大的用户数10000,集合点设置10000,算是极限值了。这个极限值并不是我的应用的极限值,是我并发工具的极限值,LR允许的最大用户数就是10000

2、机器绝不会只有1台,即使1台测试了也没意义,线上至少要2台以上。因为验证码前期测试的时候性能较差,所以我索性用了7台后端

 

脚本分析:

1、验证码

(1) 验证码,只用在脚本中检查是否有出来验证码图片,就行了。出不来图,证明加载不出来。也是有问题的。要统计这个错误率。

2、抢购post接口

(1) 大并发下,验证业务逻辑,确认接口返回的信息,不存在“活动未开始”“没有预约”,只能是1个成功,其它全是抢购失败提示

(2) 大并发下,抢购成功的uid与实际入库UID一致,且数据量对等。

(3) 大并发下,单位时间内看错误率

解决的一些LR工具配置错误:

1、captcha_info.c(6): Continuing after Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "t-captcha.pcauto.com.cn" failed: [10054] Connection reset by peer

captcha_info.c(6): Continuing after Error -27776: Server "t-captcha.pcauto.com.cn" shut connection during attempt to negotiate SSL session

 

原因是LR不支持SSL,在脚本中打开录制选项-options-network-port Mapping-add entry

证书pem,一般情况下存在于Tengines读取的SSL证书目录下,导出在本地,然后在LR配置中上传即可。

 

注意:

去掉

 

去掉

 

2、The load generator is currently running the maximum number of Vusers of this type

 

 

 

以抢购脚本为例分析:

这个接口返回的数据是json内容,然后app弹出提示

 

因为我要检查活动进行中,大并发量下的,各类返回结果对不对,和确认结果正确性。

脚本:

 

 

集合点设置:

 

 

 

场景中跑hello这个action即可

 

 

 

策略设置:

 

 

 

压力结果:

 

 

 

压力结果分析:

工具并发1W,请求可以确认1W/s同时去发,但是因为受网速、响应速度、resin允许最大线程数配置限制(resin配置256,超过256个请求同时过来的时候,就会等待,所以会不是完全的并发,虽然工具发了请求,但实际请求没有到应用层),那么为了核对真正的并发。我对accesslog分析每秒具体是有多少条日志过来。经分析,

 

实际每秒并发处理只有最高5200+

所以可以得出,每秒1W请求/s,实际只响应得了最高5K/s

 

posted @ 2019-11-20 15:49  sincoolvip  阅读(1400)  评论(0编辑  收藏  举报