Jmeter全局变量设置,获取bin目录。命令行修改请求数目

一、 获取jmeter的bin目录 测试用例 数据驱动目录

jmeter跨线程 脚本关联,上一个线程的变量,要在下1个线程组使用。就得设置全局变量,然后通过__P函数进行获取全局变量的值

1. 设置全部变量 在 bean shell sample 或者 BeanShell PostProcessor 设置

命令: ${__setProperty(新的全局变量名,${要被设置成全局变量名},)};

或者 函数助手---选择__setproperty函数如下设置:

image.png
image.png

全局变量 一旦设置,再次关闭全局变量的bean请求,依旧有效。只有关闭jmeter,下次打开jmeter脚本,不运行全局变量脚本代码,全局变量不会生效

2. 使用全局变量: 函数助手—P函数 ,通过${__P(变量名,)}使用全局变量

image.png
image.png

二、 获取Jmeter bin目录 测试用例 数据驱动的目录

为什么要获取bin目录呢?

因为我们在发送文件上传,脚本迁移到linux的时候,脚本容易发生错误。因为在windows的目录往往跟linux的目录不一样,其次在windows上面,目录之间是用\ 而在linux上面是用/。为了解决脚本可以执行,所以我们一般 .jmx的脚本放在jmeter bin目录的某个文件下面,这样我们在引用脚本 或者上传某些文件,CSV文件导入的时候,都可以用相对路径。这样不管在windows上面执行还是在linux上面执行都不会因为路径问题而发生错误。

1. 获取 jmeter bin目录,测试用例 数据驱动目录。

image.png

添加一个bean shell sampler请求,用vars.put("变量名a",System.getProperty("user.dir") ) 将jemter bin目录存进变量a里面,再用一个bean shell sampler 就可以将变量名a,存在一个全局变量里面,接下来其他地方就可以引用了。

vars.put("baseDir", System.getProperty("user.dir")); # bin目录
vars.put("testcaseDir", System.getProperty("user.dir")+"\\testcase"); # 测试用例目录
vars.put("datasDir", System.getProperty("user.dir")+"\\datas");  # 数据驱动 CSV存放目录

image.png
image.png

比如下面这个案例:要将本地的文件,上传到ftp服务器,第一种可以用相对路径,这是我推荐的,但是必须放在bin目录下面。第2种是用上面说到的设置全局变量的bin 变量,引用这个变量和相对路径,就可以完成请求,这2种不管是在windows 或者迁移到 linux都不会出现脚本迁移的报错。

  1. 第一种 应用全局变量bin目录和相对路径 拼接


    image.png
  2. 直接使用相对路径

image.png

三、命令动态 传请求数的操作方法

我们可以利用${__P(变量名,默认参数)},通过:
jmeter -J变量名=修改默认参数 -n -t jmeter脚本

image.png

运行这个脚本 总请求数 = 2 * 3 = 6

image.png

三、命令行执行一下脚本 先切换掉jmeter bin目录

命令:

1.jmeter -n -t 脚本 -l 存放的结果文件 -e -o 存放路径文件夹
如: jmeter -n -t testcase/调试脚本2.jmx -l testcase/report/jtl/2019rdj.csv -e -o testcase/report/html
如果要执行这条完成命令,必须检查下jmeter.save.saveservice.output_format=xml是否开放,开放就先注释掉。jmeter是默认csv 。我在做自动化ant继承的时候是给的xml值,这里先关闭。

image.png

2.直接使用这条命令(不用管上面一条的问题了):jmeter -J参数名=参数值 -J参数名=参数值 -n -t [jmx文件]
这里的参数是—P函数 ${__P(num1,2)} 如这里的num1,参数值 值的是默认值2。我们可以用命令行修改默认值。

image.png

image.png

修改一个参数的值 变成了30 符合103=30个请求*

image.png

两个都修改也符合105=50 个请求*

image.png

所以通过修改jmeter全局属性变量,是能达到修改线程数和循环次数的。这样方便我们控制压测控制多少线组数和循环次数 达到找到TPS最大的灵界点,便于我们分析何时是性能阶段 负载阶段 压力阶段。

如果是在linux上面 : jmeter -G参数名=参数值 -G参数名=参数值 -n -t [jmx文件]
他和windows有点区别 将J 改成G 就行了

你可能感兴趣的:(Jmeter全局变量设置,获取bin目录。命令行修改请求数目)