一、JMeter入门压测

1、打开JMeter工具,选中测试计划->右键添加->线程(用户)->线程组,页面中的线程数就是并发数,页面中的Ramp-Up时间(秒)表示通过多长时间启动起来这些线程,如果值为0,表示这些线程一起启动起来。

2、选中线程组->右键添加->配置元件->HTTP请求默认值,来配置一个默认请求。页面中的协议填http,服务器名称或IP填localhost,端口号填8080。

3、选中线程组->右键添加->Sampler(取样器)->HTTP请求,页面中的名称填商品列表,协议、服务器名称或IP、端口号就不需要填了,因为上一步中添加了默认的。路径填/goods/to_list,这是我们之前的商品列表代码的接口。

4、选中线程组->右键添加->监听器->聚合报告,显示压测的总结结果。选中线程组->右键添加->监听器->图形结果,显示压测的图形结果。选中线程组->右键添加->监听器->用表格查看结果,显示压测的表格形式结果。点击绿色三角启动按钮开始压测。可以选择保存,后缀默认为.jmx,也可不保存。

5、聚合报告也页面中的Throughput表示吞吐量,可以简单的理解为QPS。

6、终端使用top命令监控cup,Load Avg表示负载。增大线程数再运行可以看到负载增大。

二、自定义变量模拟多用户

1、选中商品列表->右键禁用,可以禁用该请求

2、选中线程组->右键添加->取样器->HTTP请求,名称填获取用户信息,路径填/user/info

3、点击下方添加按钮添加参数,键为token,值为浏览器Network中do_miaosha请求响应中Set-Cookie的token。运行测试

4、本地新建config.txt,填入18912341234,2db1f35954a245e99bf7a3feb903e97c代表一个用户,可以添加多个,测试不同的用户。

5、选中线程组->右键添加->配置元件->CSV数据文件设置,文件名选config.txt,变量名填userId,userToken,分隔符填英文逗号

6、修改获取用户信息请求,参数键token的值为${userToken},运行测试。

三、Redis压测工具redis-benchmark

1、redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000

其中-c 100表示100个并发连接,-n 100000表示100000个请求

2、redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100

其中-q表示简短地输出,-d 100表示存取大小为100字节的数据包

3、redis-benchmark -t set,lpush -q -n 100000

其中-t set,lpush表示只测试set和lpush命令的性能

4、redis-benchmark -n 100000 -q script load “redis.call(‘set’, ‘foo’, ‘bar’)”

只测试某些数值存取的性能,其中script load “redis.call(‘set’, ‘foo’, ‘bar’)”表示只测试“redis.call(‘set’, ‘foo’, ‘bar’)”这条命令的性能,注意是英文引号

四、Spring Boot打war包

1、添加spring-boot-starter-tomcat的provided依赖,provided依赖就是编译时的依赖,运行时不需要。

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

2、添加maven-war-plugin依赖,默认情况下是打jar包。

<build>
<finalName>${project.artifactId}</finalName> <!-- 打出来的war包的名字与artifactId相同,即mymiaosha4 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>

3、改为打war包<packaging>war</packaging>

4、修改Mymiaosha4Application类继承SpringBootServletInitializer,并重写configure方法。

Spring Boot打war包这一小节,github没有同步代码测试。

(四)Java秒杀项目之JMeter压测的更多相关文章

  1. JMeter压测“java.net.BindException: Address already in use: connect”解决方法

    之前在windows机上用JMeter压测,50并发下出现大量接口报“java.net.BindException: Address already in use: connect”错误. 从字面的意 ...

  2. 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测

    前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...

  3. jmeter压测过程中报java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider

    由于在java中添加了第三方安全策略文件,具体请看https://www.cnblogs.com/mrjade/p/10886378.html,导致在用jmeter压测过程中会遇到以下错误 解决办法: ...

  4. jmeter压测、操作数据库、分布式linux下运行、webservice接口测试、charles抓包

    一.jmeter压测 在线程组中设置好,然后添加http请求,t添加聚合报告查看压力测试结果,如图: 一般压测时间10-15分钟,如果是稳定性测试,一般n*12小时,这些并发用户一直在请求. tps: ...

  5. windows下Jmeter压测端口占用问题

    https://blog.csdn.net/weixin_43757847/article/details/88188091 1 前情提要人脸识别项目中,云平台新增了人脸识别的校验接口.考虑到存在大量 ...

  6. 一文揭秘测试平台中是如何将测试用例一键转化Jmeter压测脚本

    ​    ​接上篇,一键转化将接口测试平台测试用例转化成Jmeter压测脚本思路,这里我首先在java 上面做了一个简单的实验,看看 转化的中间遇到的问题,这里呢,我只是给了一个简单的demo 版本, ...

  7. 在Linux CentOS上搭建Jmeter压测环境

    本文的主要内容是介绍如何在Linux CentOS 服务器上面搭建Jmeter的压测环境整个详细的流程,来满足我们日常工作中对于压力测试环境搭建.压力测试执行过程的需求. 一.首先我们要准备四个东西, ...

  8. 性能工具之Jmeter压测Hprose RPC服务

    概述 Hprose(High Performance Remote Object Service Engine),国人开发的一个远程方法调用的开源框架.它是一个先进的轻量级的跨语言跨平台面向对象的高性 ...

  9. jmeter 压测duobbo接口,施压客户端自己把自己压死了

    jmeter 压测duobbo接口,jmeter代码不合理,导致每执行一次请求,会调用一次消耗内存的实例化.导致越压越慢,请求发不出去.这个时候需要考虑修改代码了. 截图中,tps越来越少. 原来初始 ...

随机推荐

  1. CSS 中蒙版相关设置二三事

    写 蒙版 时会使用透明度,第一反应会使用 opacity 但这个会使子元素继承,蒙版内还有内容会被影响,从而会设置 background 属性的 rgba 值. 需要注意的是 rgba 和 gba 颜 ...

  2. HDU 5795 A Simple Nim ——(Nim博弈 + 打表)

    题意:在nim游戏的规则上再增加了一条,即可以将任意一堆分为三堆都不为0的子堆也视为一次操作. 分析:打表找sg值的规律即可. 感想:又学会了一种新的方法,以后看到sg值找不出规律的,就打表即可~ 打 ...

  3. MySQL中获取天、周、月等数据

    MySQL中获取天.周.月等数据 1.今天 select * from 表名 where to_days(时间字段名) = to_days(now()); 2.昨天 SELECT * FROM 表名 ...

  4. 【黑马Javaweb】1.1Junit单元测试

    黑马第一天学习 今日内容 Junit单元测试: 测试分类: Junit使用:白盒测试 今日内容 1.1Junit单元测试 1.2.反射 1.3.注解 Junit单元测试: 测试分类: 1.黑盒测试:不 ...

  5. koa 路由模块化(一)

    1.项目目录 2.入口文件 根目录/app.js /** * koa 路由模块化 */ const Koa = require('koa'); const router = require('koa- ...

  6. koa 基础(十四)cookie 的基本使用

    1.app.js /** * cookie的简介: * 1.cookie保存在浏览器客户端 * 2.可以让我们用同一个浏览器访问同一个域名的时候共享数据 * * cookie的作用: * 1.保存用户 ...

  7. MVC模式入门案例

    import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widg ...

  8. Breadcrumb 面包屑

    显示当前页面的路径,快速返回之前的任意页面. 基础用法 适用广泛的基础用法. 在el-breadcrumb中使用el-breadcrumb-item标签表示从首页开始的每一级.Element 提供了一 ...

  9. java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:list

    package DisplayAuthors; import  java.sql.*; public class DisplayAuthors  { private static final  Str ...

  10. 前端Ajax跨域解决方案

    业务场景: 前后端分离需要对接数据接口. 接口测试是在postman做的,今天才开始和前端对接,由于这是我第一次做后端接口开发(第一次嘛,问题比较多)所以在此记录分享我的踩坑之旅,以便能更好的理解,应 ...