Jmeter命令行执行脚本如何设置动态参数
最近看到在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),如果同时设置了循环次数和执行时长,那么满足其中一个条件脚本就会停止。
那么先试试吧,默认执行脚本,命令行如下:
jmeter -n -t \tmp\cnblgo.jmx(脚本的绝对路径)
从上图可以看出,脚本执行了一次,持续了0.7s,是OK的。
查看Jmeter的源码,可知执行次数=-1时即表示Forever。以50并发执行120s的命令行如下:(为了直观,我直接生成测试报告用web界面的形式看,否则-l后面的可以不写)
jmeter -n -t C:\Users\zhoulinjie\Desktop\cnblgo.jmx -Jconcurrent_number=50 -Jduration=120 -Jcycles=-1 -l report.jtl -e -o C:\Users\zhoulinjie\Desktop\report
打开生成的测试报告文件,index.html,如下:
还有其他的组合就不截图了,需要什么参数,直接用-J+${}+__P()即可。同理,线程组界面中的Ramp-Up Period(in seconds)也是可以通过这种方式设置的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Jmeter如何基于命令行运行jmx脚本
性能测试过程中,如果进行大量的并发时,界面容易卡死. 通过非GUI(命令行)的方式是个不错的选择. windows环境 1.在安装Jmeter的目录下,可创建一个文件夹"result" 2.将创建好的测试脚本放置于result文件下 3.通过终端进入result文件下,输入命令 D:\apache-jmeter-3.2\bin\jmeter.bat -n -t cj0320.jmx -l cj0320.jtl 如果不进入result的路径,那么 .jmx 和 .jtl 路径就要写全:
-
Jmeter跨线程组共享cookie过程图解
一.Jmeter版本 此次示例采用的是apache-jmeter-5.2.1版本 二.设置配置文件使Cookie管理器保存cookie信息. 修改apache-jmeter-5.2.1/bin/jmeter.properties文件,把CookieManager.save.cookies设置为true,并去掉前面的注释#号,如下图所示: 修改完成后保存,退出,并重启jmeter. 三.在调试取样器和请求中查看具体的cookie信息 在线程组中添加HTTP Cookie 管理器,运行测试计划后
-
Jmeter生成UUID作为唯一标识符过程图解
在测试过程中,我们有时候需要一个唯一不重复的值(比如order_id).我之前一直用的时间戳+计数器/随机函数拼接,但是有时候效果不太好,今天知道了UUID这玩意,可以来操作下.jmeter也提供了UUID函数,这里我参考百度写法用beanshell. 1.添加一个测试计划--线程组--BeanShellSampler import java.util.UUID; UUID uuid1 = UUID.randomUUID(); //获取UID的值 //把uuid中的'-'去掉,然后传给zichu
-
Java Jmeter全局变量设置过程图解
背景:因为BeanShell PreProcessor制造的参数是一些随机参数,每个HTTP取样器包括其他取样器拿值得时候都是单独重新取一次,所以如果当几个取样器的值都要拿同一值时,就不满足需求了,我们就 需要,所以我们就需要设置全局变量了,满足在一次线程中,只取一次供全局使用. 一.设置参数codenum参数 二.将codenum参数设置为全局变量 2.打开函数助手,找到_setProperty函数,填写要设置的全局变量名称和要将哪个变量设置为全局变量 3.将函数助手生成的结果复制到BeanS
-
JMeter导入自定义的Jar包的详解教程
1.简介 原计划这一篇是介绍前置处理器的基础知识的,结果由于许多小伙伴或者童鞋们在微信和博客园的短消息中留言问如何引入自己定义的Jar包呢???我一一回复告诉他们和引入插件的Jar包一样的道理,一通百通.但是感觉他们还是很迷糊很迷惘,因此在这里穿插一篇导入自定义的Jar包.还有另外一个原因就是前置处理器会用到这个自定义的Jar包. 2.环境准备 (1)Eclipse 我们要引入自定义的Jar包,所以你需要一个可以编写脚本生成Jar的工具,当然了你可以选择其他的开发工具,宏哥这里选择Eclipse
-
Jmeter使用接口传递数据过程图解
一. 1.提取响应结果中的"mobile_phone",作为下一个登录接口的账号信息 1)在当前接口下,添加-置处理器-正则表达式提取器 2)正则表达式处理器 说明: 后置处理器:在请求结束或者返回响应结果时发挥作用 APPly to:作用范围(返回内容的断言范围) Main sample and sub-samples:作用于父节点的取样器及对应子节点的取样器 Main sample only:仅作用于父节点的取样器 Sub-samples only:仅作用于子节点的取样器 JMet
-
Jmeter自定义函数base64加密实现过程解析
新建一个类继承AbstractFunction,重写以下方法: execute setParameters getReferenceKey getArgumentDesc 这四个方法介绍如下: public String execute(SampleResult previousResult, Sampler currentSampler) throws InvalidVariableException JMeter会将上次运行的SampleResult和当前的Sampler作为参数传入到该方法
-
Jmeter跨线程组传值调用实现图解
Jmeter的线程组之间是独立的,用Jmeter做接口测试或者是性能测试时,经常会涉及到多个线程组.那么如何将A线程组返回的变量信息提取后,传递给B,C线程组使用呢?这里以已登录接口返回的access_token值为例,在这里我用了一个BeanShell后置处理器来结合使用,过程如下: 第一步:测试计划:必须勾选[独立运行每个线程组] 第二步:登录接口返回access_token 第三步:通过正则表达式提取器提取:access_token 第四步:在BeanShell后置处理器中使用
-
Jmeter命令行执行脚本如何设置动态参数
最近看到在Linux上折腾jmeter的人越来越多,不过即使在windows上,jmeter的脚本我还是建议用命令行来执行(降低GUI模式带来的性能损耗,不过拿jmeter来做接口测试的无所谓).做性能测试的时候,有时候可能需要不停的去设置"线程组"那个界面的参数(例如线程数.循环次数.持续时间等),而每次修改-->保存-->cmd中运行总感觉麻烦,那就找一种方法可以在命令行中直接指定参数的值. 查看相关资料实操,可以发现JMeter的测试计划在运行Sampler之前会先加
-
解决Python 命令行执行脚本时,提示导入的包找不到的问题
在Pydev能正常执行的脚本,在导出后在命令行执行,通常会报自己写的包导入时找不到. 一:报错原因 在PyDev中,test.py 中导入TestUserCase里面的py文件时,会写: from TestUserCase.Test import Test 这在命Pydev中没错,但是在命令行中确出现错误. 因为在PyDev中默认路径除了当前文件所在路劲外,还有工程根路径.而在命令行中只有当前文件所在路径.TestUserCase是test.py文件的上一级目录,所以在命令行中test.py i
-
基于命令行执行带参数的php脚本并取得参数的方法
本文分析了基于命令行执行带参数的php脚本并取得参数的方法.分享给大家供大家参考,具体如下: 一.为什么我们要在命令行下运行php脚本呢? 个人理解,主要有二个原因: 1. 利用crontab去跑php,可以给服务器减压,当然在这里有一个条件,就是实时性要求不高.比如:sns中的好友动态,这个实时要求不高,但是数据量比较大,这个时候定时跑的话,会给web服务器,数据库服务器分担不小的压力. 2. 就是我们要定时去完成某一事情,比如:我要删除一个月前,用户留言,这个时候,写的php脚本在cront
-
命令行执行php脚本中的$argv和$argc配置方法
在实际工作中有可能会碰到需要在nginx命令行执行php脚本的时候,当然你可以去配置一个conf用外网访问. 在nginx命令行中 使用 php index.php 就可以执行这个index.php脚本了,但是怎么传递参数呢?那就要用到$argv和$aegc了.不用开启什么设置 直接在脚本中使用,类似于http传值中的$_POST和$_GET.. 在index.php插入以下菜吗 <?php echo $argv[0]; echo "\n"; var_dump($argv[1])
-
关于命令行执行Python脚本的传参方式
目录 命令行执行Python脚本的传参 应用场景 方式一 方式二 python-命令行传参sys.argv实际运用 argv获取参数 getopt模块 实例 实际场景运用 命令行执行Python脚本的传参 应用场景 在对ABAQUS进行二次开发时,需要将核心脚本的外部数据传递到脚本内部并执行 核心脚本在运行时,可以调用所传递的变量参数 命令行执行或者用户子程序执行 方式一 使用sys.args 简单示例 import sys def test_sys_args(): if len(sys
-
在postgresql中通过命令行执行sql文件
通过命令行执行初始化sql脚本是比较常见的需求,命令行下执行如下操作即可: 若是执行的命名只是创建用户,编辑用户,创建数据库的话可以不指定-d参数. psql -U username -d myDataBase -a -f init.sql 如果是远程数据库加入-h参数指定主机地址即可 psql -h host -U username -d myDataBase -a -f init.sql 补充:PostgreSQL操作-psql基本命令 一.建立数据库连接 接入PostgreSQL数据库:
-
帮助你排序文本文件的 Awk 命令行或脚本(推荐)
Awk 是一个强大的工具,可以执行某些可能由其它常见实用程序(包括 sort)来完成的任务. Awk 是个普遍存在的 Unix 命令,用于扫描和处理包含可预测模式的文本.但是,由于它具有函数功能,因此也可以合理地称之为编程语言. 令人困惑的是,有不止一个 awk.(或者,如果你认为只有一个,那么其它几个就是克隆.)有 awk(由Aho.Weinberger 和 Kernighan 编写的原始程序),然后有 nawk .mawk 和 GNU 版本的 gawk.GNU 版本的 awk 是该实用程序的
-
python环境路径配置以及命令行运行脚本
本文实例为大家分享了python环境路径设置方法,以及命令行运行python脚本,供大家参考,具体内容如下 找Python安装目录,设置环境路径以及在命令行运行python脚本 第一点:找Python安装目录 方法一: 方法二: 输入import sys print(sys.path) 化黑线处 第二点:找到安装目录后就可以开始设置环境变量 这里我的安装目录为C:\Program Files\Python36 再字符串的末尾,加一个分号; 然后再输入你安装python的路径,如图所示 一路点确定
-
PHP命令行执行整合pathinfo模拟定时任务实例
命令行模式下,根据传参,调用不同控制器.控制器中根据配置定时执行指定方法 Application.php <?php class Application{ public static function main(){ header("content-type:text/html;charset=utf-8"); self::register(); self::commandLine(); self::pathInfo(); } //自动加载 public static funct
-
testNG项目通过idea Terminal命令行执行的配置过程
背景: 本地编写的很多testNG测试用例,可能需要对接其他人员,运用其他形式执行,例如将测试用例达成jar包,由运维执行,需要提供执行命令,提供前需要本地先验证是否可执行通过. 一.maven配置 1.官网下载maven(https://maven.apache.org/download.cgi),下载最新版本,解压到制定文件夹: 2.配置环境变量,以win10为例: 新建系统变量MAVEN_HOME,填写下载解压后的文件地址,注意是bin目录的上一级目录 编辑Path变量,在末尾加上: 3.
随机推荐
- 动态jsp页面转PDF输出到页面的实现方法
- VBS面向对象编程与Me关键字使用介绍
- Windows上使用virtualenv搭建Python+Flask开发环境
- Swift中通过叠加UILabel实现混合进度条的方法
- asp.net实现在非MVC中使用Razor模板引擎的方法
- 基于php常用函数总结(数组,字符串,时间,文件操作)
- PHP Global变量定义当前页面的全局变量实现探讨
- PHP IF ELSE简化/三元一次式的使用
- Python中的defaultdict模块和namedtuple模块的简单入门指南
- Windows下MySQL 5.6安装及配置详细图解(大图版)
- Android中3种图片压缩处理方法
- Lua基本语法
- 解决给dom元素绑定click等事件无效问题的方法
- Vue2.0基于vue-cli+webpack父子组件通信(实例讲解)
- Centos7开机启动自己的脚本的方法
- Android开发使用Handler实现图片轮播功能示例
- IntelliJ IDEA 创建Maven项目速度慢的2种解决方法
- python如何修改装饰器中参数
- Spring MVC中处理ajax请求的跨域问题与注意事项详解
- 使用Python计算玩彩票赢钱概率