io.micrometer.core 学习

package com.goods.stock.util;

import com.goods.stock.GoodsStockApplication;
import com.goods.stock.client.query.adapter.LockStockQueryDto;
import com.goods.stock.testtool.RestApiTool;
import com.google.common.collect.Lists;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.Timer;
import lombok.extern.slf4j.Slf4j;
import net.minidev.json.JSONValue;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.web.WebAppConfiguration;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.MvcResult;
import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import java.util.concurrent.TimeUnit;

@SpringBootTest(classes = GoodsStockApplication.class)
@Slf4j
@WebAppConfiguration
@AutoConfigureMockMvc
public class TimerTest {

    @Autowired private MeterRegistry meterRegistry;
    private final String APP_NAME = "bs-goods-stock";
    final private MockMvc mockMvc;

    @Autowired
    TimerTest(MockMvc mockMvc) {
        this.mockMvc = mockMvc;
    }

    @Test
    void testTimer(){
        Timer timer = meterRegistry.timer(APP_NAME);
        timer.record(this::querySupplier);
        timer.record(this::querySupplier);
        timer.record(this::querySupplier);
        timer.record(this::querySupplier);
        timer.record(this::querySupplier);
        timer.record(this::querySupplier);
        log.info(timer.count()+"");
        log.info(timer.max(TimeUnit.MILLISECONDS)+"");
        log.info(timer.mean(TimeUnit.MILLISECONDS)+"");
    }

    private void querySupplier() {
        try {
            query();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    public void query() throws Exception{
        final LockStockQueryDto arg = new LockStockQueryDto();
        arg.setWarehouseCodes(Lists.newArrayList("ck01"));
        arg.setMerchantCodes(Lists.newArrayList("1"));
        arg.setSkuCodes(Lists.newArrayList("sku01"));
        arg.setPageSize(1);
        arg.setPageNum(1);

        final MockHttpServletRequestBuilder restBlock = MockMvcRequestBuilders
                .post("/query/adapter/queryByCondition")
                .content(JSONValue.toJSONString(arg))
                .contentType("application/json")
                ;
        MvcResult result=mockMvc.perform(restBlock).andReturn();
        RestApiTool.printResult(result);
        RestApiTool.assertResponseSuccess(result);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值