【学习笔记】seckill-秒杀项目--(7)压力测试

一、JMeter简单使用

添加线程组,在线程组里设置要测试的线程数等。在线程组里添加HTTP请求默认值(设置请求ip端口号等)、HTTP请求(测试哪个页面)、需要查看的结果等。
线程组参数设置
在聚合报告里可以看到设置1000个线程的情况下吞吐量大概为190.(windows环境)
聚合报告

二、虚拟机环境压力测试

首先在虚拟机服务器中安装JDK以及MySQL。
把项目打包,JMeter打包,发布到虚拟机中。
在linux中执行./jmeter.sh -n -t first.jmx -l result.jtl进行压力测试,把结果保存在result.jtl中。用xftp传到windows中查看结果。结果如下。由于虚拟机分配的内存较少,所以吞吐量也很低。
虚拟机压测

三、配置同一用户测试

3.1 无参数请求测试

请求商品信息页,10000个请求,吞吐量207。
请求商品列表

3.2 有参数请求测试

请求用户信息,10000个请求,吞吐量800+
请求用户信息

四、配置不同用户测试

4.1 两个用户

在数据库里添加两个用户
在这里插入图片描述
在网页中测试两个用户对应的 userCookie ,将这些信息写进config.txt中备用。
在这里插入图片描述
在JMeter中,添加CSV数据文件设置,引入config.txt文件,设置编码格式为UTF-8。添加HTTP Cookie管理器,配置如下。
在这里插入图片描述
在这里插入图片描述
测试结果,吞吐量400+
在这里插入图片描述

4.2 配置用户步骤

配置不同用户步骤:

  • 准备CSV文件
    导入文件,设置编码格式,变量名称,逗号分隔
  • 准备Cookie管理器
    名称是代码里设置的name, 值是CSV文件里定义的变量名称

五、正式压测

将线程数改为1000,循环10次,也就是总共10000个线程。
首先在windows环境下测试,两个接口:商品列表、秒杀。
linux环境下暂时还未测试。(有点嫌麻烦,linux配置较低,吞吐量会比windows更小)

5.1 windows

  • 商品列表
    在这里插入图片描述
    吞吐量225。
  • 秒杀
    添加一个秒杀接口。秒杀商品Id为1 的商品。
    在这里插入图片描述
    测试结果:
    在这里插入图片描述
    吞吐量120+。

5.2 小结

秒杀接口QPS比商品列表QPS小的多,因为秒杀接口要做数据更新,肯定要比查询效率低。
去数据库中查看数据,发现订单已经超卖,并且库存减为负数。
并且在代码中没有设置秒杀结束时间,商品恢复原价。后续进行修复。
在这里插入图片描述
在这里插入图片描述

六、使用工具类生成用户

为了进行秒杀接口的测试,准备工具类生成5000个不同的用户。
生成5000个用户后将用户写入数据库,并登录页面获取他们对应的的Cookie值,写入config.txt文件中。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值