51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6059|回复: 9
打印 上一主题 下一主题

Jmeter: 循环次数怎么设置

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-10-12 18:58:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Thread Group里面可以设置整个Thread的循环次数,而每个step也可以设置自己的循环次数,这两者的设置有没有冲突呢?
如果我想某些step只执行一次,而其他step执行多次的话,又该怎么设置呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2009-10-13 10:18:04 | 只看该作者
执行多次的外加一个循环就可以了吧!刚开始学JMETER,不过道理是一样的
for i=1 to 100
   执行一次的语句
  for i = 1 to 3
      需要执行多次的语句
   next
next
如不对请见谅!
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-10-13 12:04:42 | 只看该作者
选择你想循环的语句, 然后选

Edit --> insert parent --> logic controller --> loop controller

然后可以设置循环次数

也可以先设置好控制器再加入想执行的语句。
-------------------------
你也知道Thread Group里面可以设置整个Thread的循环次数,而每个step也可以设置自己的循环次数

这两者不会冲突,大循环里面有小循环而已
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-10-13 13:31:45 | 只看该作者
只是想有这样的效果:
跑一个小时(跑多少次也可以),每个user进来之后只执行第一步一次,剩下的时间都重复执行第二步,到时间结束的时候执行最后一步一次。

想知道怎么设置?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2009-10-13 15:01:16 | 只看该作者
看看这样行不行

设置三个线程组,把你要运行的三步分别放入,第一步和第三步使用Once Only Controller(这个我没用过),或者直接在线程组上面设置只运行一次

中间要循环运行的第二步则在线程组里面设置运行时间(开始和结束)和loop forever
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2009-10-13 16:13:12 | 只看该作者
有两个问题:
1. 线程组是不是按顺序执行的?
2.Once Only Controller是可以达到只执行一次的目的,但是第二步的时间怎么能设置正好在第一步之后和第三步之前呢?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2009-10-13 17:25:10 | 只看该作者

回复 6# 的帖子

1. 线程组是不是按顺序执行的?

这个问题你可以自己试试,不行的话可以设置运行时间。

2.Once Only Controller是可以达到只执行一次的目的,但是第二步的时间怎么能设置正好在第一步之后和第三步之前呢?

你的这个应用测试要求这么高吗?有一点空隙都会影响测试结果吗?我认为测试时间足够长,中间有一点空隙并不影响,而且你可以直接收集运行时的各种数据,所以没关系

或者可以试试定时器,有时自己研究一下获益更多哦
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2009-10-14 11:33:14 | 只看该作者
线程组不是按顺序执行的,所以第二个及以后的线程组都要把时间设置好,第一个线程组可以loop count设为1(那Once Only Controller的作用在哪里?),然后大概设好第二个和第三个的时间,这样可以从流程上跑下来。

如果cookie manager可以自动管理线程组之间的cookie的话,基本上可以解决了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2009-10-19 15:25:12 | 只看该作者
原帖由 gjay1688 于 2009-10-13 13:31 发表
只是想有这样的效果:
跑一个小时(跑多少次也可以),每个user进来之后只执行第一步一次,剩下的时间都重复执行第二步,到时间结束的时候执行最后一步一次。

想知道怎么设置?


简单方法(前提:不关心业务逻辑的完整执行):直接用Runtime Controller来控制。

如果考虑业务逻辑完整的跑完,并要求每个thread都执行1小时的话,实现思路如下:
1。 先取一个开始时间放在一个变量里
2。 用 While Controller来控制循环时间(可用js写点代码实现),并把循环请求的业务套在其中。
3。 把要结束的请求放在While之后。
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2009-10-20 10:42:34 | 只看该作者
呵呵,多谢老大指教。

不关心业务逻辑肯定是不行的。runtime如果不能让线程组按顺序执行的话是不行的。

第二种方法你是说用while controller,变量是时间来控制吗?
js没用过,呵呵,时间变量怎么控制呢?
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-8 07:35 , Processed in 0.071598 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表