接口性能测试自测场景方向

1、关于性能测试

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试压力测试都属于性能测试,两者可以结合进行。通过负载测试,确定在各种工作负载下系统的性能,目标是测试当负载逐渐增加时,系统各项性能指标的变化情况。压力测试是通过确定一个系统的瓶颈或者不能接受的性能点,来获得系统能提供的最大服务级别的测试。

1、ConcurrencyThreadGroup

阶梯加压

2、ThreadGroup

直线指线性加压

2、性能测试指标

1、Vus 并发数

从50,100,200 并发数进行性能测试分析

2、TPS 每秒钟request/事务 数量

目标在80~400之间,具体看实际业务场景,业务复杂度、服务器CPU,mysql业务库表数据量,是否使用Redis,cache等。

3、响应时间

Response Time 响应时间

Average Response Time 平均响应时间

一个系统吞吐量通常由QPS(TPS)、并发数两个因素决定,每套系统这两个值都有一个相对极限值,在应用场景访问压力下,只要某一项达到系统最高值,系统的吞吐量就上不去了,如果压力继续增大,系统的吞吐量反而会下降,原因是系统超负荷工作,上下文切换、内存等等其它消耗导致系统性能下降。

3、动手实践

1、优化业务方法层次拆分

首选需要拆分业务方法,针对各个节点的处理进行整合拆分。

1、如对前置的查询:

mysql查询

redis查询

内部feign查询

2、如对数据进行业务封装:

        各自业务分析得出

3、如对业务数据进行对应场景校验:

        各自业务分析得出

2、本地StopWatch分析

工具可以使用org.springframework.util.StopWatch

1、整体单元测试分析:

        loading....       

2、方法内层次分析:

        loading....       

3、通过不同的检测时间分析

整个接口的响应:

        loading....       

层次处理响应:

        loading....       

异步查询线程响应:

        loading....       

整个接口的优化点:

        loading....       

3、准备Jmemter脚本

创建Http访问脚本

使用SVC访问(注册的服务名称)

添加Http响应消息类型

添加成功断言数据

查看请求结果,保证接口正常

3、请求参数分析

        由一到多

        由浅到深

4、分析优化

1、性能测试报告

        由梯度变化来检测分析

2、TPS优化方向

        优化数据计算,提前业务异常退出

        整合stream流处理,减少重复List,Map处理

3、Response Time优化方向

异步查询mysql,redis,feign采用redis查询,减少IO响应时间

5、总结

内部异步线程存在最大查询时间609ms,可以着手优化

1、拆分单一职责的接口方法,如查询、校验、封装,以及数据的处理,尽可能将颗粒度细化。

2、采用CompletableFuture,如果涉及到高级参数传递,需要对异步任务进行编排,使用上下流处理。

3、整合List,Map的转换,使用参数上下文传递,减少内存重复处理。

4、对数据使用Redis缓存,如菜品活动等信息,管理服务优先处理各种业务使用的缓存数据,减少业务服务再校验封装。

5、对非核心业务处理,如数据的封装进行并行处理(需要考虑实际使用场景,如果数据量小于100以下,不推荐使用并行流)。目前业务校验任需串行处理,暂不使用异步流。

6、对前置数据的查询使用门店级+ID主键,存在上下外键关联查询,优先采用内存处理,提高数据库查询命中,特别是对表数量过大查询,新增组合索引。

7、目前去下单、提交订单不存在mysql事务,暂不需要考虑,如果涉及到mysql事务,需要进行整合,预计算处理,如果业务场景容许的情况下考虑使用补偿性事务。

8、减少JVM的开销,对ListmMap的使用,可以从扩容因子、明确的Size大小进行指定创建,或最大创建,如菜品10个,进行过滤的List最大值设置10,即使过滤后只有2。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值