经实测利用POSTMAN根本无法进行并发测试,大家不要再被一些搬运工给误导了

关于利用postman进行并发测试,是错误的。postman发送的请求是串行发送的

以下为我的实测记录

一、先上我测试的接口代码,就是一个redis的tryLock分布式锁的获取,接口在获取到锁后,线程sleep了5秒,此时线程是不释放锁的,那按道理第二个请求在这个时间进来,是获取不到锁的,但结果却不是这样的

 @RequestMapping("/tryLock2")
    public String tryLock2() throws InterruptedException {
        String resStr;
        System.out.println(Thread.currentThread().getName()  + "开始获取锁--" + new Date().toString());
        RLock rLock = redissonClient.getLock("lll");
        long start = System.currentTimeMillis();
        boolean res = false;
        try {
            res = rLock.tryLock(0, 10, TimeUnit.SECONDS);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }

        if (res) {
            System.out.println(Thread.currentThread().getName() + "---成功获取锁" + new Date().toString());
            try {
                Thread.sleep(5000);
                rLock.unlock();
                resStr = Thread.currentThread().getName() + "****释放锁成功"+ new Date().toString();
                System.out.println(resStr);
                long end = System.currentTimeMillis();
                System.out.println(Thread.currentThread().getName() + ",从开始获取锁到释放锁用时: " + (end - start));
                return resStr;
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        } else {
            resStr = Thread.currentThread().getName() + "****未获取锁"+ new Date().toString();
            System.out.println(resStr);
            return resStr;
        }
        return "失败了";
    }

二、按照网上的那些博文,postman操作步骤如下
1、将接口save到一个包下,然后点击run
在这里插入图片描述
2、配置请求次数
在这里插入图片描述
3、点击run
在这里插入图片描述
4、后台接口打印如下
在这里插入图片描述
从后台打印可以看出,第个接口其实是间隔5秒-6秒的,这是因为接口sleep了5秒,即第一个请求到达后,接口运行好5秒,然后将结果响应回去,postman接收到响应后才发送第二请求的。

所以最后的结论是,postman只能进行串行发送请求测试,无法进行并发测试


版权声明:本文为weixin_43171019原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。