原创

如何进行大数据报文的订单推送性能测试

业务背景:

现在很多企业都有自己的全渠道数字平台,并且对接了很多不同的线上电商渠道,实现多元化营销,提高企业经营。比如京东、淘宝、拼多多等等。

那么这些电商渠道的订单会定时推送到中台,并且是大批量的推送订单到订单业务中台进行管理。所以就有了这方面的一个性能测试,那么应该如何做呢。

一、数据准备

一次请求会有大量的订单数据,也就是说,请求的报文可能会很大,比如500个订单一次推送过来,可能一个报文的数据会超过2M。

首先我们会利用一个HTTP请求(该请求只用来生成数据),请求体中只包含订单的字段数据,订单ID等数据需要做参数化。

下面的beanshell是用来在HTTP请求之前进行的数据的保存,也是最核心的,主要是用来把上面截图的请求参数进行不断追加并保存到本地目录。

这样做的目的,主要是每个订单都有不同的订单ID,我们这一步可以生成不同订单ID的报文数据拼接在一起

我们这次请求1000次,看看生成的数据结果

二、读取本地数据

可以通过CSV数据文件设置配置读取本地txt数据,并设置变量data


然后进行接口请求前的数据预处理,得到完整的数据格式。

并且设置变量:requests

三、设置请求数据参数化

通过上面设置的变量requests,放在我们的请求体中并参数化,如下


四、查看测试结果

因为报文有点大,像这次有1M多的报文,等到响应会有点慢。这个时候我们就要通过监控工具来看MQ等

下面是其中一次的测试结果分析

    
  订单推送-接口中心业务:执行时间(2022-04-01 16:19:02)10个线程循环一次,500单的数据量大概1.45MB,成功率100%。

TPS10个线程同时推送订单,每个线程一个报文推送500单,总计推送5000单,总计3048毫秒完成推送,计算每秒可以推送1640单。

AvgRT:平均响应时间趋势,整个场景的平均响应时间在3048毫秒。

服务器资源K8S集群各node节点资源使用正常,各服务pod容器没有超过K8S的资源limit最大预设值

Mysql数据库:数据链接和线程数等状态数据正常,没有大于1秒的慢sql。

正文到此结束
本文目录