jmeter:根据当前时间变更参数值

场景: 有一个接口A,它的参数为num,num必传 现在希望在每天的0点到12点每隔1min访问接口A,其中9点前num=0,9点到12点前num=100,除此外的时间不访问接口   直接上实现方法:  
  1. 添加线程
  2. 在线程下添加http取样器,并先将接口调通
  3. 在线程下添加BeanShell Sampler然后在下级添加一个BeanShell PreProcessor和一个定时器,并设置好定时器的时间。(这里BeanShell Sampler的作用只是为了在发送http请求前先执行BeanShell PreProcessor得到我们要的参数。)
  4. 修改BeanShell PreProcesso的脚本,这里我们将完成我们要实现的功能:根据当前时间变更参数值(脚本参考如下),写完脚本,线程中就可以通过${num}获取该参数了。
package com.isea.java;
String now= "${__timeShift(HH,,,,)}";
Integer hour= new Integer(hour);
if (hour<9){
    vars.put("num","0");     
    }
else if(hour<12){
    vars.put("num", "100");                    
    }
else{
    vars.put("num", "none");        
    }
  1. 在线程下添加if控制器,并将我们的接口取样器放置在if控制器下,给if控制器中加入判断如下(这就实现了指定时间不发送请求的功能)

现在我们来实现每隔1min像服务器发送请求的功能:
  1. 在线程下添加:循环控制器Loop Controller,并将刚刚的BeanShell Sampler和if控制器放到循环控制器下。这里我勾选forever让脚本一直执行,此时的目录结构如

脚本就可以正常使用啦~    

相关文章

Jmeter:Authenticationcredentialswerenotprovided上次在使...
初次使用jmeter时,结果树中返回的数据为未转码内容,如下:...
jmeter默认语言设置: 1、临时设置:进入options--ChooseLa...
第一步:打开jmeter工具。 第二步:点击鼠标右击,点击添加...
在之前的博文中,Jmeter二次开发——基于Java请求,已介绍了...
打开虚拟机然后用远程连接工具SSH连接到数据库将serveragent...