JMeter压测实战(2)

这篇主要做一些练手的压测,学习一下配置文件和变量的使用。

先看一下这次压测的内容,主要是从缓存中取用户,不多说,上代码。

Controller层:

@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    MiaoshaUserService userService;

    @Autowired
    RedisService redisService;

    @RequestMapping("/info")
    @ResponseBody
    public Result<MiaoshaUser> info(Model model, HttpServletResponse response,
                                    @CookieValue(value = MiaoshaUserService.COOKI_NAME_TOKEN,required = false) String cookieToken,
                                    @RequestParam(value = MiaoshaUserService.COOKI_NAME_TOKEN,required = false) String paramToken) {
        if (StringUtils.isEmpty(cookieToken) && StringUtils.isEmpty(paramToken)) {
            return Result.success(null);
        }
        String token = StringUtils.isEmpty(paramToken)?cookieToken:paramToken;
        MiaoshaUser user = userService.getByToken(response,token);//从token中读用户信息
        return Result.success(user);
    }
}

相关Service层:

@Service
public class MiaoshaUserService {

    public static final String COOKI_NAME_TOKEN = "token";

    @Autowired
    MiaoshaUserDao miaoshaUserDao;

    @Autowired
    RedisService redisService;

    public MiaoshaUser getByToken(HttpServletResponse response, String token) {
        if (StringUtils.isEmpty(token)) {
            return null;
        }
        MiaoshaUser user = redisService.get(MiaoshaUserKey.token, token, MiaoshaUser.class);
        //延长有效期
        if (user != null) {
            addCookie(response, token, user);
        }
        return user;
    }
    private void addCookie(HttpServletResponse response, String token, MiaoshaUser user) {
        redisService.set(MiaoshaUserKey.token, token, user);//把token信息写到缓存中,在redis中管理session
        Cookie cookie = new Cookie(COOKI_NAME_TOKEN, token);//在cookie中放入名为“token” 值为token的字段
        cookie.setMaxAge(MiaoshaUserKey.token.expireSeconds());//这里把cookie和token的Redis设为一致的有效期
        cookie.setPath("/");
        response.addCookie(cookie);
    }
}

RedisService和Result的相关代码不重要,就不放了。可以看到这段代码只是对redis的操作,没有涉及到数据库。

以下主要完成模拟不同用户访问网站,知识点涉及到在JMeter中设置变量。

1、在JMeter中新建一个http request,并如图中显示完成4步;

 2、建立一个文本文件,里面放了用户id和对应的token,如:

就先放了一条,应该有很多条,节约时间。。

3、建立CSV Data Set Config

CSV Data Set Config配置完成啦。

4、继续配置HTTP Request

5、然后就可以运行啦,线程数和循环次数自己设置。

这里throughput还是很高的,因为只是redis操作。

后面继续写如何生成测试用例。

猜你喜欢

转载自blog.csdn.net/Serena0814/article/details/89554560