栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

并发性能测试(接口并发测试用例)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

并发性能测试(接口并发测试用例)

        这段时间一直在走流程测试,今天大哥过来,让他看了下我的代码还有点问题,回头还要修改下以前购买商品的帖子,今天先说下接口的并发测试吧,以前都是用Jmeter来做并发测试,今天本来也打算用来着,大哥说那个太麻烦了直接用JUnit提供的ContiPerf,就有了今天的帖子嘿嘿!

需要先导入一个pom文件


            org.databene
            contiperf
            2.3.4
        

然后直接在springboot的Test类里 contextLoads 方法上添加 @PerfTest 注解,想这样

    @Test
    @PerfTest(threads = 50, duration = 30000)
    void contextLoads() {
        
    }

@PerfTest后面的参数是50个线程,30秒执行完,更多参数如下

@documented
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface PerfTest {
    int invocations() default 1;

    int duration() default -1;

    int threads() default 1;

    int rampUp() default 0;

    int warmUp() default 0;

    boolean cancelonViolation() default false;

    Class timer() default None.class;

    double[] timerParams() default {};

    Class[] clocks() default {};
}

完整代码

    private static String url = "http://localhost:8080/order/";

    @Rule
    public ContiPerfRule i = new ContiPerfRule();
    static int succss = 0;
    static int fail = 0;

    
    @Test
    @PerfTest(threads = 50, duration = 30000)
    void contextLoads() {
        try {
            Snowflake sf = new Snowflake(2, 5, true);
            String userId = sf.nextIdStr().substring(11, 19);
            String planNo = "954410189564411904";
            JSonObject msg = new JSonObject();
            msg.put("userId", userId);
            msg.put("planNo", planNo);
            sendParam(msg, "接口地址");

            succss++;
            System.out.println("================================");
        } catch (Exception e) {
            fail++;
        } finally {
            System.err.println(Thread.currentThread().getId() + "===success=" + succss + "   fail=" + fail);
        }

    }

    protected void sendParam(JSonObject msg, String addr) {
        String request = JSON.toJSonString(msg);
        log.info("request=={}", request);

        String response = HttpUtil.post(url + addr, request);
        log.info("response=={}", response);
    }

HttpUtil.post(),用的是hutool的,可以自己去导入。

这里需要注意下,我用的spring-boot-starter-test是2.3.6.RELEASE 版本的,版本太高了可以能不能使用@Rule注解。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/776261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号