JMeter命令模式下动态设置线程组和持续时间等动态传参

背景:

1.当通过JMeter的图像化界面运行性能压测或者场景时候,JMeter界面很容易导致界面卡死或者无响应的情况(20个线程数就会卡死)

现象如下:

解决方案:

jmeter -n -t D:\apache-jmeter-3.0\bin\log.jmx -l D:\apache-jmeter-3.0\bin\log.jtl

此时线程数设置大一点,也不会卡死

2.当调试脚本或者运行场景时候,需要不断的调整线程数或者持续运行时间时候,需要先打开GUI界面,修改如下参数并保存

解决方案:

1.指定运行多少线程

我们知道JMeter测试计划在运行Sampler之前先加载运行属性(jmeter.properties,system.properties等),那么我们可以借助属性来完成。

当然了,我们也不会傻到去修改这些配置文件,这多麻烦。JMeter提供了方法可以动态修改属性,在命令行使用 -J 来指定JMeter Properties

使用__P() 函数来获取命令中指定的属性值。

实例如下:

jmeter -JthreadNum=20 -Jtime=300 -n -t D:\apache-jmeter-3.0\bin\log.jmx -l D:\apache-jmeter-3.0\bin\log.jtl

jmeter.bat -JthreadCount=2 -Jcycle=2 -n -t log.jmx -l log.jtl

 threadNum=2为log.jmx测试计划要指定的线程数

-Jcycle=2为log.jmx测试计划要指定的每个线程的迭代次数

-Jtime=10为log.jmx测试计划要指定的持续运行时间

在log.jmx测试计划中用${__P(threadNum,)}来获取threadNum的值;${__P(cycle,)}来获取cycle的值,${__P(time,)}来获取time的值

运行效果如下:

拓展知识:

如果访问的目标地址变化了,端口也变化了,重新指定:

JMeter 命令行通过-D来指定System Properties,类似于Jdk中我们用-D来指定一些系统属性,比如开启JMX远程监控。

在JMeter脚本中我们用__property()函数来获取,比如-Durl=www.baidu.com在测试计划中用${__property(url,,)}来获取

运行命令如下:

jmeter.bat -JthreadCount=2 -Jcycle=2 -Durl=www.baidu.com -Dport=80 -n -t baidu.jmx -l baidu.jtl

 脚本如下:

如上使用-J -D在运行前动态设置属性,可以用来控制测试计划的执行,在非GUI方式运行时还是比较方便的。

自然性能测试自动化时我们可以利用这些命令行参数来动态指定属性,不用再修改脚本了。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

如何在Ubuntu 14.04上安装和配置OrientDB

OrientDB是一个多模型NoSQL数据库,支持图形和文档数据库。它是一个Java应用程序,可以在任何操作系统上运行。它也完全支持ACID,支持多主复制。

20000
来自专栏用户2442861的专栏

MyBatis学习总结(三)——优化MyBatis配置文件中的配置

  之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下:

11710
来自专栏猿天地

Spring Boot中整合Sharding-JDBC读写分离示例

在我《Spring Cloud微服务-全栈技术与案例解析》书中,第18章节分库分表解决方案里有对Sharding-JDBC的使用进行详细的讲解。

42430
来自专栏JavaEdge

Hystrix 自动降级与依赖隔离1.背景2.Hystrix说明

目前对于一些非核心操作,如增减库存后保存操作日志 发送异步消息时(具体业务流程),一旦出现MQ服务异常时,会导致接口响应超时,因此可以考虑对非核心操作引入服务降...

23620
来自专栏java沉淀

build.xml: 33: Class not found: javac1.8的解决办法

19330
来自专栏电光石火

PHP在Apache下500错误

原来的PHP 默认关闭了错误的显示。 下面讲解如何开启错误提示步骤: 1. 打开php.ini文件。 以我的ubuntu10.10为例,这个文...

35090
来自专栏SpringBoot 核心技术

SpringCloud组件:将微服务提供者注册到Eureka服务中心

Eureka提供了Server当然也提供了Client,如果你对Eureka Server不了解,点击SpringCloud组件:搭建Eureka服务注册中心阅...

43840
来自专栏软件工程师成长笔记

SSM框架——使用MyBatis Generator自动创建代码

MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google c...

9820
来自专栏张善友的专栏

Windows Server 2008密码重设盘

   Windows server 2008提供了一个密码重设盘的功能,可以通过创建一个软盘来作为忘记密码后重设用户密码的作用。      在系统安装完成后,...

24770
来自专栏乐沙弥的世界

CentOS 7下配置本地yum源及yum客户端

Linux下对于软件包的管理使用rpm管理方式。直接使用rpm包管理工具来进行rpm包的安装,升级,卸载时,对于最让人头疼的莫过与包之间的依赖关系。yum作为一...

45540

扫码关注云+社区

领取腾讯云代金券