Jmeter压测测试

目录

1.Jmeter压测入门

  1.1 什么是Jmeter

  1.2 jmeter下载与安装

  1.3 添加测试计划

2.Jmeter压测案例演示

3.使用UserUtils工具类生成用户

4.秒杀接口压测

5.秒杀接口优化


1.Jmeter压测入门

  1.1 什么是Jmeter

        Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试客户端/服务端结构的软件(例如web应用程序)。

        它可以用来测试静态和动态资源的性能,例如:静态文件,Java Servlet,CGI Scripts,Java Object,数据库和FTP服务器等等。JMeter可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析不同负载下的整体性能。

  1.2 jmeter下载与安装

        官方网址:http://jmeter.apache.org/download_jmeter.cgi 

        将下载得到的压缩包解压即可,这里我解压到自己电脑的路径为C:\software\apache-jmeter-5.2.1。

  1.3 添加测试计划

        -- 线程组

        -- 线程数:每次执行多少个线程

        -- Ramp-Up时间(秒):在几秒之内启动线程,设置为0表示同时启动

        -- 循环次数:每次执行多少个线程,循环多少次,
                例如:线程数为10,循环次数为2;则表示每次执行10个线程,循环2次

         -- HTTP请求默认值

        -- HTTP请求

        -- 察看结果树 

        -- 用表格察看结果

        -- 聚合报告

2.Jmeter压测案例演示


 

1)入门案例测试

2)配置同一个用户测试

  -- jmeter添加Http Cookie管理器;
  -- 如果多个测试案例在一个测试技术中,请禁用调其他测试案例;

3)配置不同用户测试

  -- 通过MD5Utils生成一个新用户的密码并配置到数据库中
  -- 使用两个不同的用户登录并通过浏览器得到用户登录后的Cookie(即userTicket)
  -- 创建config.txt文件,设置多用户账号
  -- jmeter添加CSV 数据文件设置

  注:创建UserController,提供info方法

3.使用UserUtils工具类生成用户

4.秒杀接口压测

5.秒杀接口优化

        5.1 优化第一步:解决超卖

                1)更新sql语句,只有当库存大于0才能更新库存。

                2)在秒杀订单表中对用户id和商品id建立一个唯一索引,通过这种约束避免同一用户发同时两个请求秒杀到两件相同商品。        

        5.2 优化第二步:Redis重复抢购

                1)将用于对应的秒杀订单保存到redis中。
                redisTemplate.opsForValue().set("order:"+userId+":"+goodsId,seckillOrder);

                2)修改秒杀商品重复验证方法。
注:这里可进行秒杀商品压测。

        5.3 优化第三步:Redis预减库存,减少数据库的访问        

                1)秒杀商品预加载,实现InitializingBean

                2)Redis预减库存

Long stock = redisService.decrement(seckillOrder.getGoodsId());
if(stock<0){
    //注:在这里由于库存会被减为负数,所以重新设置秒杀商品的库存为0
    redisService.increment(seckillOrder.getGoodsId());
    throw new BusinessException(JsonResponseStatus.EMPTY_STOCK);
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值