Jmeter抗压测试
发布日期:2023-03-25 18:20:27
浏览次数:6
分类:技术文章
本文共 1577 字,大约阅读时间需要 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 配置jmeter(编码格式及汉化处理) 参考资料《03.Jmeter工具设置中文版_Tetsuya-CSDN博客_jmeter中文》1.4 添加测试计划
-- 线程组 -- 线程数:每次执行多少个线程 -- 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.秒杀接口压测 可参看测试案例《04.秒杀接口压测.jmx》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); }初次使用可以通过 Options > Choose Language > Chinese(Simplified) 进行切换中文
翻译过后的样子
添加线程参数
写入你要访问的服务器名称和端口名
你要测试的数据路径
保存,运行,出结果
转载地址:https://blog.csdn.net/Rjenny/article/details/124725105 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2024年04月22日 02时38分22秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux0.01内核根目录Makefile注释
2019-04-27
【CSDN2012年度博客之星】需要您的一票,感谢大家的支持
2019-04-27
PHP对于浮点型的数据需要用不同的方法去解决
2019-04-27
Tokyo Cabinet 安装
2019-04-27
Flink在美团的应用与实践听课笔记
2019-04-27
Java多线程的11种创建方式以及纠正网上流传很久的一个谬误
2019-04-27
JDK源码研究Jstack,JMap,threaddump,dumpheap的原理
2019-04-27
Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现
2019-04-27
javac编译原理和javac命令行的使用
2019-04-27
Unity使用UnityWebRequest实现本地日志上传到web服务器
2019-04-27
Unity使用RenderTexture实现裁切3D模型
2019-04-27
美术和程序吵架,原来是资源序列化格式设置不统一
2019-04-27
Unity iOS接SDK,定制UnityAppController
2019-04-27
Unity iOS接SDK前先要了解的知识(Objective-C)
2019-04-27
记一次iOS闪退问题的定位:NSLog闪退
2019-04-27
Unity打开照相机与打开本地相册然后在Unity中显示照片(Android与iOS)
2019-04-27
无需接入SDK即可在Unity中获取经纬度(Android/iOS),告诉我你的坐标
2019-04-27
Unity获取系统信息SystemInfo(CPU、显卡、操作系统等信息)
2019-04-27
Unity中获取物体的尺寸(size)的三种方法
2019-04-27