这一、阶梯压力测试 阶梯压力测试的场景是为了验证在系统运行期间,用户不断的登录系统并使用一段时间,通过阶梯的场景,模拟实际应用期间系统的稳定性、承载性。
阶梯压力测试的场景是为了验证在系统运行期间,用户不断的登录系统并使用一段时间,通过阶梯的场景,模拟实际应用期间系统的稳定性、承载性。
二、常用的阶梯压力测试线程组
stepping Thread Group 步长插件
Concurrency Thread Group 步长并发插件
两者区别 stg不提供设置启动延迟时间,阶梯增压过渡时间、阶梯释放过渡时间,但是ctg提供,ctg可以瞬间释放stg只能阶梯释放线程
通俗的来说,stg是手动的场景,测试的过程需要按照设定好的步骤去执行,
ctg是目标场景,也可以说是自动场景,只需要设置目标,程序会自动执行到目标的运行场景,但是测试过程是不可控制的

字段详解:
1、This group will start 线程的最大数量
2、First wait for 开始启动的等待时间
3、Then start 启动时的线程数
4、Next add 每次增加的线程组数
5、threads every 每次增加线程组后的持续运行时间
6、using ramp-up 每次线程组增加需要的时间
7、The hold load for 达到最大线程组后的持续运行时间
8、Finally stop 每次减少的线程组数
9、threads every 每次减少线程组后的持续运行时间
实例:

直接启动容器,运行程序
ENTRYPOINT [“jmeter-server”, “-Dserver.rmi.ssl.disable=true”]

两个文件创建完毕后,就可以启动容器了
首先启动主机容器
docker run -v yourjmx:/tmp -dit --name yourjmetername imagename
其次启动助攻机容器(这里需要注意,助攻机可以启动多个,一直启动到满足场景需求的情况下,举个例子,项目最大的压力负责是5000用户,也就是5000线程,一个jmeter的瓶颈大约是500 所以我们需要 5000/500=10个容器)
docker run -v yourjmx:/tmp -dit --name yourjmetername imagename
docker run -v yourjmx:/tmp -dit --name yourjmetername imagename
docker run -v yourjmx:/tmp -dit --name yourjmetername imagename
命令输入完成,容器启动成功
容器运行完成后,需要找到助攻机的ip地址:
sudo docker inspect --format ‘{{ .Name }} => {{ .NetworkSettings.IPAddress }}’ $(sudo docker ps -a -q)
容器创建完成后,就需要执行jmeter命令了,但是由于docker的容器在linux系统中是隔离的,所以jmeter命令需要进入主机容器中执行
docker exec -it name bash 进入对应容器命令
进入后需要找到jmeter/bin目录
进入bin目录,运行命令:
jmeter -n -t /yourjmx -l /yourreport -R yourslaveip(助攻机的ip)
运行后如果能看到进程和执行详情,此时分布式压力测试成功运行
运行结果查看:
- summary
:这是一个标记,表示这是一个摘要行。 -
或 =:+ 表示这是一个间隔的摘要,= 表示这是从测试开始到现在的总摘要。
- 数字(例如
7543 或 2587):这是在该间隔内完成的请求数。 - in
后面的时间(例如 00:00:47 或 00:00:29):这是该间隔的长度。 - /s
后面的数字(例如 161.3 或 90.0):这是在该间隔内的平均请求数(每秒请求数)。 - Avg
:这是在该间隔内的平均响应时间(毫秒)。 - Min
:这是在该间隔内的最小响应时间(毫秒)。 - Max
:这是在该间隔内的最大响应时间(毫秒)。 - Err
:这是在该间隔内的错误数和错误率。 - Active
:当前活动的线程数。 - Started
:已经启动的线程数。 - Finished
:已经完成的线程数。
本文介绍了如何在Java环境中使用JMeter进行阶梯压力测试,包括配置JMeter、安装插件、设置线程组(StepingThreadGroup和ConcurrencyThreadGroup的区别),以及通过Docker构建镜像实现分布式压力测试,涉及Linux下内存扩展和dockerrun命令的使用。
849

被折叠的 条评论
为什么被折叠?



