如何测试分析电商网站的性能瓶颈(二)

7. 测试执行

步骤一:创建资源组和测试工程

  • 工程名称:自定义名称,例如Web-test。

  • 描述:应用测试Demo。

步骤二:添加事务信息

根据上面的测试模型进行事务的定义,抢购活动的实际情况来看,用户抢购到商品,大概需要经历一下几个阶段:登陆>首页访问 > 搜索 > 商品浏览>加入购物车>下单>付款。期间还有网站对应的活动页面。

因此需要定义7个事务:登陆>首页访问 > 搜索 > 商品浏览>加入购物车>下单>付款。

 

也可以根据需要构建串联场景,验证用户操作链的性能

 

步骤三:创建测试任务

华为云性能测试服务测试针对测试任务关联多个事务,并为事务分配不同的压力比例,以我当前测试的电商网站为例,单场景测试采用阶梯式压测模型(可以是递增的,也可以无规律的)快速找到压力瓶颈点:

 

而对于混合测试模型,则在混合测试任务下关联所有事务,并分配不同的比例:

 

步骤四:查看实时报告

任务启动后查看实时报告

首页访问,100并发用户数持续时间100s,可以看到在100并发时,都是正常返回。

当300并发用户数持续时间100s,已经出现了部分响应超时的现象。说明网站当前还无法支持300个并发访问用户的正常请求。当用户数达到500并发用户数持续时间100s,响应超时的数量高于正常返回的数量,出现异常。

查看对应的资源占用情况,CPU使用率,在性能测试的过程中,CPU的使用率长期超过90%,与业界标准比较,CPU的使用率超过了85%。内存使用率在12%以下,比较稳定。查看后端其中一个数据库节点的资源,资源的使用率较低,相较于前端,可得出性能瓶颈主要在前端的业务代码中。

   

然后根据定位情况进行优化后反复测试调优就行了。

步骤五:查看离线报告

也可以在无人值守的情况下完成测试后查看离线报告,内容与实时报告一致

8. 测试结果分析

统计维度:报告的TPS,时延、并发等统计维度均为事务,如事务中有请求多个报文,只有在多个请求报文均正常返回会认为成功,时延也是多个请求报文的求和值

响应超时:出现该情况下是在设置的响应超时时间内(默认5S),对应的TCP连接中没有响应数据返回,会将本次事务请求统计为响应超时,出现原因一般是被测服务器繁忙、崩溃、网络带宽被占满等

比对失败:从服务器返回的响应报文不符合预期(针对HTTP/HTTPS默认的预期响应码为200),比如服务器返回404,502等。出现原因一般为高并发情况下被测服务无法正常处理导致的,如果分布式系统中数据库出现瓶颈、后端应用返回错误等

解析失败:响应报文已全部接收完成,但是部分报文丢失导致整个事务响应不完整,这种情况一般需要考虑网络丢包

带宽统计:报告统计的是性能测试服务执行端的业务数据包带宽,上行表示从性能测试服务发出的流量,下线表示接受到的流量。如果是外网压测场景,您需要关注执行机的EIP带宽是否可以满足上行带宽的要求。而下行带宽需要关注单台执行机是否超过1GB

TPS与并发用户及时延的关系:TPS是指云性能测试服务在统计周期内每秒从被测服务器获取到的响应事务实时统计,TPS=并发用户/平均响应时延。因此在测试过程中往往会发现并发用户增加了但是TPS没有增加,其原因是由于时延上升了

如何判断被测应用优劣:根据应用本身定义的服务质量定义,最佳状态是没有任何响应失败、比对失败的情况,如果有,需要在服务质量定义范围之内,通常情况下不超过1%,同时响应时延越低越好(2S内体验较好,5S内可以接受,超过5S则需要考虑优化),TP90,TP99指标可以客观反映出90%,99%用户的体验时延



留言