Jmeter使用笔记之函数
用Jmeter才做了一个项目的测试,就不得不对函数这部分吐槽一下,真是有点弱,难怪大多数人不用这个功能,不过如果用的好也是很方便的,以下慢慢说。
一、BeanShell函数
在测试中遇到了时间戳的加减,查到发现__BeanShell可以做表达式的运算,满心欢喜的用了,结果发现没有结果,再三确认发现不是自己使用的问题,随即
测试了12+12,发现没有问题。最后猜测应该是这个函数是int类型的计算,测试后发现这里的最大值就是int类型的最大值。(心里又默默的吐槽了一番为何
不弄成long类型呢?)
二、javaScript函数
1、由于BeanShell无法满足自己的要求,随机查看发现了__javaScript函数,于是开始使用,函数如下${__javaScript(new Date(2016,0,29).valueOf(),)},设置如下

发现HTTP的请求中原样输出了,为什么呢?
new Date(2016,0,29).valueOf()这个在浏览器的控制台执行时没有任何问题的!这个问题也无从考证。
后来用new Date().valueOf()发现可以,那怎样才能得到指定时间的时间戳呢?
经过不断反复的验证,发现在Jmeter中如果用__javaScript函数取得指定日期的时间戳,只能通过${__javaScript(new Date("Jan 29 2016").valueOf(),)},必须是
字符串初始化才可以,其他的都不行。(这里又再次吐槽了一番,设计了这个函数,为何功能这么弱?)
2、__javaScript函数操作路径

上面的设置是得不到正确路径的为什么呢?如下,"E:\\jmeter"+".dat",这个在浏览器的console执行时没有问题的?
后来把"E:\\jmeter"+".dat"改为"E:\\\\jmeter"+".dat"执行成功,才恍然大悟,从然是执行的JS但是参数的传递还是通过Java来的,所以
才会造成这种现象
三、threadNum函数
测试中难免要用到跟线程相关的参数,这时候可能会想到${__threadNum}这个线程号的函数,但是这个函数也有它的局限性,首先不能工作在配置元件中
比如用户定义变量等等,其次多个线程组这里返回的线程号是一致的,so在设计的时候要考虑清楚
四、P函数
测试中如果遇到多个线程组之间传递变量的情况,可能一种方式就是用属性才操作,那么通过${__P(,)}来读取属性就是一种好的方式
五、setProperty函数
变量之间传递属性,那么必须设置属性,可以通过${__setProperty(,,)}进行设置属性。其实在刚开始的时候知道可以通过这么设置,但是却不知道
这个函数应该运行在哪个组件中后来才了解到了beanshell。
六、time函数
一般HTTP请求中的随机数都是通过时间戳的方式生成的,${__time(,)}这个函数刚好可以生产12位以毫秒为单位的时间戳,如果是10位的话${__time(/1000,)}
可以这样使用
Jmeter使用笔记之函数的更多相关文章
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- 【转】Jmeter变量参数化及函数应用
我们在使用Jmeter录制脚本后,经常会对已录制的脚本进行修改,需要把一些参数使用一些变量替代,Jmeter是支持这些功能的,不过是通过函数实现的.下面举一个简单的例子,使用随机数替代一个参数: 打开 ...
- Jmeter变量参数化及函数应用
分类: 测试工具 2006-12-14 10:54 12041人阅读 评论(5) 收藏 举报 javascriptloadrunnerrandom脚本测试多线程 我们在使用Jmeter录制脚本后,经常 ...
- Python:笔记(2)——函数与模块
Python:笔记(2)——函数与模块 Python函数 关于函数 1.我们可以使用Help来查看函数的帮助信息 2.调用函数的时候,如果传入的参数数量或者类型不符合均会报错. 3.函数名其实就是一个 ...
- JMeter参数化设置——通过函数助手
Now you can know everything in the world, but the only way you're findin' out that one is by givin' ...
- jmeter生成时间的函数
在一个接口测试中,需要提交的请求中要带时间,在看完jmeter帮忙文档,正好总结一下 1.需求 在一个http请求中请求数据要带有时间,如下: 2.实现 突然想到jmeter自带的函数助手好像是可以实 ...
- matlab学习笔记13_1 函数返回值
一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...
- jmeter 24个常用函数
Jmeter_24个常用函数 JMeter提供了很多函数,如果能够熟练使用,可以为脚本带来很多方便. JMeter函数是一种特殊值,可用于除测试计划外的任何组件. 函数调用的格式如下所示:${__ ...
随机推荐
- sublime出现 unable download.......
I managed to fix this by changing my package settings. I made my osx downloader preference curl, and ...
- dom4j加载xml文件
## dom4j加载xml文件 ``` // 1. 加载xml文件 InputStream is = MyTest.class.getResourceAsStream("user.xml&q ...
- Java安全通信:HTTPS与SSL
转载地址:http://www.cnblogs.com/devinzhang/archive/2012/02/28/2371631.html Java安全通信:HTTPS与SSL 1. HTTPS概念 ...
- P1312 Mayan游戏
题目描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个 7 行5 列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.游戏通关是指在规定 ...
- HDU 1269 迷宫城堡(判断有向图强连通分量的个数,tarjan算法)
迷宫城堡 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- mysql中查看一个字段中,有几个逗号
利用replace.length的内置函数
- Android Layout属性笔记
android:id 为控件指定相应的ID android:text 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml文件当中的字符串 android:gravity 指定Vi ...
- 常用数据库驱动名称以及URL
oracle: 驱动类的名字:oracle.jdbc.driver.OracleDriver URL:jdbc:oracle:thin:@dbip:port:databasename Mysql: 驱 ...
- 【CobaltStrike】CobaltStrike简介与使用
CobaltStrike简介与使用 0x00 简介 1. 什么是CobaltStrike?可以用来做什么? CobatStrike是一款基于java编写的全平台多方协同后渗透攻击框架.CobaltSt ...
- C# Test Encryption and Decryption
public MainWindow() { InitializeComponent(); Title = getUUID(); string s= httpGet("http://220.1 ...