51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 547|回复: 0

JMeter脚本之动态参数设置

[复制链接]
  • TA的每日心情
    无聊
    4 小时前
  • 签到天数: 919 天

    连续签到: 1 天

    [LV.10]测试总司令

    发表于 2023-1-30 09:55:02 | 显示全部楼层 |阅读模式
    背景
      最近看到在Linux上折腾JMeter的人越来越多,不过即使在windows上,JMeter的脚本我还是建议用命令行来执行(降低GUI模式带来的性能损耗,不过拿JMeter来做接口测试的无所谓)。
      做性能测试的时候,有时候可能需要不停的去设置“线程组”那个界面的参数(例如线程数、循环次数、持续时间等),而每次修改-->保存-->cmd中运行总感觉麻烦,那就找一种方法可以在命令行中直接指定参数的值。
      查看相关资料实操,可以发现JMeter的测试计划在运行Sampler之前会先加载运行属性(jmeter.properties,system.properties等)文件,而且JMeter还提供了方法可以动态修改属性,在命令行中使用【-J】 来指定JMeter Properties,脚本里面使用__P() 函数来获取命令中指定的属性值,那么方法就出来了。

      配置说明
      1、并发数设置为${__P(concurrent_number,1)},循环次数取消勾选Forever,设置为${__P(cycles,1)},其中后面的1是默认值,作用是执行一次来调试脚本,这是__P函数的功能(虽然我一直都是用GUI模式来调试脚本的)。
      2、执行时长设置为${__P(duration,60)},默认1分钟(60s),如果同时设置了循环次数和执行时长,那么满足其中一个条件脚本就会停止。
      执行脚本
      那么先试试吧,默认执行脚本,命令行如下:
    1. jmeter -n -t \tmp\cnblgo.jmx(脚本的绝对路径)
    复制代码



      从上图可以看出,脚本执行了一次,持续了0.7s,是OK的。
      查看JMeter的源码,可知执行次数=-1时即表示Forever。以50并发执行120s的命令行如下(为了直观,我直接生成测试报告用web界面的形式看,否则-l后面的可以不写):
      打开生成的测试报告文件,index.html,如下:

      还有其他的组合就不截图了,需要什么参数,直接用-J+${}+__P()即可。同理,线程组界面中的Ramp-Up Period(in seconds)也是可以通过这种方式设置的。


    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 13:35 , Processed in 0.061754 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表