需求如下:
当某个http response包含"status" : "STARTED"的时候,间隔固定时间,进行持续刷新.当Response包含"status" : "READY"时,则停止刷新,进行下一个其他请求.
第一步:我们直接请求某个request,在http请求下面添加Regular Expression Extractor抽取status状态:
第二步:添加While Controller, 引用上一步中定义的status变量去判断status的值.此处当status的值不为STARTED,则退出While.
第三步: 在While里面再次添加在第一步中添加的相同的http请求,项目的结构如下:
小小提示:
- 可以在http请求的名字中加入线程数${__threadNum}便于调试
- 可以在适当的位置加入Debug Sampler,它可以输出Jmeter的属性和变量.可以将它理解为只输出变量值的http请求.它可以再View Results Tree中被看到
- 可以使用${__Random(100,999,)}函数来产生随机数.在上述情况中,它对于每个http请求,都能产生一个新的值.如果该函数定义与User Defined Variables,那么将为每个Thread产生一个值
- 在使用While Controller之前, status变量必须先被定义,否则While Controller是不会被执行的.这也是为什么本例要将同样的请求在while之前放一个,在while里面也放一个
- Constant Time用于设置Http请求的间隔时间
- 除了使用Regular Expression Extractor,还可以使用Xpath Extractor抽取页面上的属性或者值
- "View Results in Table" Lister可以看到每个请求的开始时间
本文出自"lijingshou"博客,转载请务必保留此出处http://lijingshou.iteye.com/blog/2051480