微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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让脚本一直执行,此时的目录结构如

脚本就可以正常使用啦~    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐