51Testing软件测试论坛

标题: 如何让多个场景轮流执行 [打印本页]

作者: 423799223    时间: 2007-4-6 16:17
标题: 如何让多个场景轮流执行
本帖最后由 thirfing 于 2013-5-13 10:03 编辑

假如我有2个场景(即场景A和场景B),我想让场景A执行完了就自动执行场景B,有什么方法?
作者: yangyahui    时间: 2007-4-6 16:54
偶也想知道这方面的知识sdlkfj9
作者: 423799223    时间: 2007-4-6 16:57
不知道真痛苦
昨天晚上10点开始 一个脚本跑了3小时 等跑完了第1个再跑第2个
早上又要上班 累死了
作者: ppent    时间: 2007-4-6 20:39
不知道LR里面能否设置。
我想到的是通过定时任务执行批处理调用这两个场景,当第一个执行完后执行第二个。
没有试验过不知道是否可行,听听其它人是否有这方面的经验。
作者: skblackcat    时间: 2007-4-7 16:17
我的想法是,用QTP来做。录制,回放,两个ACTION。第二个开始前用个THINK TIME不知道行不行
作者: bluemoon1999    时间: 2007-4-7 17:51
可以啊
我以前做过一段测试用过

就是利用他们执行脚本的时间差来达到这个目的,不知道是不是符合你的要求。
例如脚本A,估计它会执行5次,会花费3小时,我就把脚本B的时间设置一下 多少小时后开始执行,设定3小时02分钟开始执行,这样能轮流执行,不过可能有点不连贯,不敢保证脚本A能在3小时内准时完成。
作者: 423799223    时间: 2007-4-7 22:46
怎么样设置呢
麻烦说得仔细些
谢谢
作者: rickyzhu    时间: 2007-4-8 11:03
为什么要弄两个场景? 想不明白?

如果是两个不同的测试脚本,甚至两个不同的测试环境,都可以在Controller里面进行设置,按照Group执行。

Controller里面的Group功能要充分利用,可以进行不同脚本的组合,设置不同的RTS。等等
作者: xingcyx    时间: 2007-4-9 09:46
我估计楼主想说的就是楼上说的那个意思吧?
设置两个Group。点击Edit Schedule->选择Schedule by Group->设置Start when group XXX finishes
作者: ppent    时间: 2007-4-9 11:55
标题: 回复 #9 xingcyx 的帖子
谢谢楼上两位的解答。Group方式是否能解决多个场景的问题?
假使测试场景有3个,第一个是并发登录操作,第二个是核心业务,包括了3个脚本分别是数据录入、数据查询、数据上报按一定用户比例进行,第三个是可靠性测试,8小时的运行时间。
如果我想在晚上下班时让这3个场景先后顺序运行起来,第二天过来看结果,是否有办法?
作者: mfktafd    时间: 2007-4-9 12:57
标题: 回复 #10 ppent 的帖子
如果按上面你的描述,,
用组是应该可以实现的..
作者: xingcyx    时间: 2007-4-9 13:40
用组是可以实现的,具体的方法就是我上面那个回贴里所说的。
作者: ppent    时间: 2007-4-9 14:03
这里我的问题在于第三个场景的StartTime设置。
由于在核心业务场景中有3个脚本,由于Group名称不能重复,此时这个场景中有3个Group。而第三个场景需要在第二个场景完全运行完后才能进行,在第三个场景的StartTime设置中选择“start when group finishes”,只能以某个Group的完成为下一个场景的起点,而不是等第二个场景所有Group都结束做为起点。

[ 本帖最后由 ppent 于 2007-4-9 14:04 编辑 ]
作者: mfktafd    时间: 2007-4-9 14:10
最后一个,只有用大至的时间来确定开始了.,sdlkfj7
作者: duola1119    时间: 2007-4-9 15:52
关注.
作者: virgozz    时间: 2007-4-9 16:56
在场景设计的时候的edit Echedule里面,多个脚本group的时候选Schedule by Group,Start when group xxx finish这样一来就可以一个接一个跑了,不过如果是一类的脚本需要封装不同的事务。
作者: ppent    时间: 2007-4-9 17:11
“如果是一类的脚本需要封装不同的事务”?能否解释一下怎么操作?
作者: virgozz    时间: 2007-4-13 16:47
举个例子,我有一个googleSearch的脚本,分别跑50 100 150 200 300 350 400个虚拟用户的脚本,在脚本组里就有7个相同的脚本吧(对应不同的并发)然后让它们一个接一个跑,但是问题来了,衡量性能的事务名都是Transaction1,必须一个一个把脚本分开,把事务名字都该成不同的名字,才能衡量结果的性能。
ps:别告发我拿google干那种事情~~~嘿嘿
作者: ppent    时间: 2007-4-13 18:30
哦,明白了,谢谢。
但我觉得不用分开那么多脚本,把transaction名字用参数替换即可,而参数的更新策略用each iteraction,这样应该就可以区分开了。sdlkfj2
作者: rickyzhu    时间: 2007-4-14 13:45
这个问题已经很明白了,利用group肯定可以做到,只是具体操作的问题。
作者: xinzai222    时间: 2007-4-15 22:18
非常感谢大家,有点懂了,呵呵
作者: cherrybloom    时间: 2007-4-22 13:37
哈咻:)

收保护费D~sdlkfj3
作者: ireneyao    时间: 2007-4-22 13:46
sdlkfj2 又学了一点东西~~~呵呵~~
作者: hxf    时间: 2007-4-23 14:45
好方法。
作者: 冰清    时间: 2007-5-10 16:09
学习了!
作者: machao514    时间: 2007-5-22 15:09
长知识了
作者: alfa_23    时间: 2007-5-22 16:01
copy that
作者: bingbingyang11    时间: 2007-5-22 16:02
用TD可以吧
QTP是可以用mercury官方网站的一个小软件定时执行的,不知道lr可以不
作者: just_cici    时间: 2007-5-22 16:42
LR自带定时程序,在场景开始时间中设定计划开始时间即可,但一定要点开始场景按钮,此时会弹出计划场景开始倒计时的窗口
如果不点开始场景按钮,定时程序不会启动(我曾经就吃过亏,计划下班后晚上跑程序,但是没有启动,导致一晚上浪费了,哭啊~~~~~)

[ 本帖最后由 just_cici 于 2007-5-22 16:44 编辑 ]
作者: it212    时间: 2007-6-12 10:06
标题: 回复 #29 just_cici 的帖子
sdlkfj3 ,哈哈,是啊,我也发现了,不过不是一晚上,时几个小时,呵呵
作者: wyy83    时间: 2007-6-12 14:31
谢谢!又学会了一点
作者: mgh123    时间: 2007-6-12 17:02
学习中
作者: hbxtly    时间: 2007-6-12 17:39
又长了点知识
作者: maxcai212    时间: 2007-6-13 12:04
sdlkfj2 sdlkfj2 sdlkfj2
作者: wgs0923    时间: 2007-6-13 14:36
组策略很实用,又好用;服务器的综合性能测试上经常使用.
作者: tqq2001    时间: 2007-6-20 13:29
学习ing
作者: RuisTar    时间: 2007-7-10 11:13
用LR,经常使用组策略~
作者: guo.jing    时间: 2007-7-19 10:26
学习……
作者: mli@dtri.com    时间: 2007-7-21 17:01
学习了
作者: zyx217    时间: 2007-7-21 19:27
学习,不知道的东东太多了!
作者: pei5    时间: 2007-8-4 11:39
为了楼主,为了积分,为了附件,我狂顶啊!!!!
作者: ly_xixihaha    时间: 2007-8-8 12:54
楼主说的是场景,而不是脚本,一台电脑上同时只能打开一个controller窗口
作者: mmhao_54    时间: 2007-8-21 14:52
今晚开始让PC不下班了sdlkfj3
作者: hxgnol    时间: 2007-8-21 20:23
大家说了半天,好像都是说如何让不同的脚本如何顺序执行。但是楼主问的是场景,一个时间只能运行一个场景。
     可以要不试试把3个场景中的脚本都放到一个场景中来,这样再用上面说的方法决定开始时间,应该可以。不过有个问题一个场景的结果只能保存到一个目录下面,如果3个部分需要分别保存又该怎么办呢


[ 本帖最后由 hxgnol 于 2007-8-21 20:41 编辑 ]
作者: wzhh999    时间: 2007-8-22 22:34
看来还有很多的问题是不知道的啊,谢谢楼上的各位同仁。
作者: lin_lp    时间: 2007-8-23 19:14
sdlkfj2 学习ing...sdlkfj2
作者: caocao668    时间: 2007-8-24 11:25
谢谢!又学会了一点
作者: oeardi    时间: 2007-8-24 11:51
标题: 回复 #1 423799223 的帖子
wo ding
作者: zhicl    时间: 2007-9-5 08:57
又长见识了,回头试试,省得守着辛苦
作者: donghuanzi    时间: 2007-9-5 11:25
标题: 见识了
‘谢谢
作者: zhangjing0523    时间: 2007-9-7 10:29
学习
作者: memo1124    时间: 2007-9-19 11:16
这两天正受得辛苦呢,不错不错,今晚赶紧试试
作者: huipingzhai    时间: 2007-9-19 13:36
我只是直到一些皮毛也回答不料这个问题,不过我看大家的回帖也没有人真正回答这个问题,没有说道重点。需要高手来解答了!
作者: memo1124    时间: 2007-9-19 14:13
刚才试了一下,按顺序运行三个场景,最后却只出现了一个结果,为什么呢,怎么才能出现三个结果呢
作者: system_323    时间: 2007-9-26 14:25
标题: 不错
路过看了,不错
作者: fion435    时间: 2007-9-26 17:15
长见识了,还要实践哦!
作者: gggwavj    时间: 2007-10-1 20:03
还是不太懂
作者: zzt2008    时间: 2007-10-2 19:57
进来学系一下,这个问题相信也是我这个新手将来需要解决的问题.
作者: kellyxie    时间: 2007-10-3 09:31
标题: 看了介绍,受益匪浅.一定多加学习
看了介绍,受益匪浅.一定多加学习
作者: hankliu520    时间: 2007-10-11 14:34
蛮好的一个问题,以后应该会碰到
作者: wanchengpeng    时间: 2007-10-12 16:54
标题: 测试结果
刚才试了一下,按顺序运行三个场景,最后却只出现了一个结果,为什么呢,怎么才能出现三个结果呢
作者: serena_meledy    时间: 2007-10-15 17:00
标题: 转贴:分享一个比较好的solution
呵呵,找到一个比较好的帖子。
实现LoadRunner多个场景的顺序执行
注:以下内容部分总结自51testing论坛。

应用场景
假设有3个不同的测试场景,分别为并发登录、核心业务、可靠性测试,3个场景有先后执行顺序。由于白天测试机器另有用处,只能在晚上进行性能测试,这时我们的期望是能否把测试场景都设定好之后晚上自动运行,第二天我们回来看测试结果呢?
答案是肯定的,可以有两种方式实现。

第一种,相对简单
充分利用LR Controller里面Group的功能。
新建一个场景把3个脚本都添加进来,在Edit Schedule中选择“Schedule by Group”的方式,在StartTime中设置3个脚本的运行顺序为“Start when Group xxx finished”,并在“Scenario Start Time”中设定场景在晚上的运行启动时间。设定完定时执行场景后,点击StartScenario按钮,会出现一个倒计时窗口,这样在固定的某个时间上,测试场景中的3个脚本将乖乖的按照设定的先后顺序进行测试。注意,如果没有点击StartScenario按钮激活测试,是不会真正进行测试的。(感谢Athenst朋友的提醒,^_^)

第二种,比较灵活
我们把应用场景稍微扩展一下,假设其中1、3场景只有一个测试脚本,而核心业务场景由数据录入、数据查询、数据上报3个脚本组成,同样的,3个场景仍需按顺序进行测试。这时如果采用第一种方式,由于第2个场景有3个脚本,所以第三个脚本的启动时间就是一个问题了。由于Controller中每个脚本都对应一个Group,而且GroupName不能重复,这时第三个场景的StartTime中“Start when group finished”则只能是选择第二个场景中的某个Group,而并非是第二个场景的3个脚本都完成之后再进行,无法达到我们的初衷。
这时,可以通过命令行的方式来进行。
首先创建并设置好3个测试场景,再创建一个一个批处理程序按先后顺序调用这3个场景进行测试,最后通过Windows的定时任务设定批处理的执行时间。
批处理示例如下:
cls
SET M_ROOT="D:\Program Files\MI\Mercury LoadRunner\bin\"
%M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_1.lrs" -Run
%M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_2.lrs" -Run
%M_ROOT%\wlrun.exe -TestPath "D:\Program Files\MI\Mercury LoadRunner\scenario\Test\TestScen_3.lrs" -Run
这种方式比较灵活,但需要注意在Result Settings中设置“Automatically create a results directory for each scenario execution”,以免后面的测试结果覆盖了前面的。


另外补充一下,如果想对某个脚本进行50、100、150...等用户数递增的测试,也可以用以上方法实现,但需要注意的是将事务名称区分开以便进行分析。

作者: 冰清    时间: 2007-10-15 21:19
有进一步的理解了组策略!
作者: 冰清    时间: 2007-10-15 21:22
有进一布学习了LR的组策略!
作者: rulu005    时间: 2007-10-16 16:38
谢谢了,学会了哈。嘿嘿
作者: seiyababy    时间: 2007-10-18 17:59
原来组是这么用的呀
学习了
作者: lyscser    时间: 2007-10-18 20:17
为什么不用QC?
作者: 岁月童话    时间: 2007-11-28 10:13
看了66#的帖子总算有一点点理解了。。。。
作者: sdxyyouyou    时间: 2007-11-30 18:03
长见识了。
作者: wuyu702    时间: 2007-12-13 17:24
理解深入些了
作者: chenjie021    时间: 2007-12-14 15:15
了解第一种方法
作者: ZH_0211    时间: 2007-12-21 10:40
学习了,谢谢
作者: 浪者之歌    时间: 2007-12-24 19:17
为了楼主,为了积分,为了附件,我狂顶啊!!!!
作者: senciya    时间: 2007-12-26 10:27
很有用,谢谢
作者: majia-csu    时间: 2008-1-12 23:23
我想知道这个批处理程序怎么添加进去。。。谢谢。。
作者: log_1    时间: 2008-1-14 13:36
有时需要去计算前一个脚本的运行时间,在多少时间后开始第二个脚本的运行。
作者: yanweiwei    时间: 2008-1-15 16:51
不错,还没用过,先长长见识
作者: superfang    时间: 2008-1-29 14:37
标题: 回复 18# 的帖子
事务处理啊 ,. 先加个父事务.再加个子事务不就行了吗?
  lr_start_transaction   还有一个是: lr_start_sub_transaction 就应该可以的.
作者: lf0026    时间: 2008-1-30 09:46
场景只能同时运行一个
但是一个场景可以包括多个脚本
多个脚本之间可以通过group的方式来控制各脚本什么时候运行或者在哪个脚本运行之后开始运行
作者: liangjz    时间: 2008-2-21 22:16
标题: 回复 80# 的帖子
利用loadrunner  的命令行工具,写个BAT文件执行最简单实惠了
作者: cjchm    时间: 2008-3-24 11:50
不错,只这样的,我的问题也解决了
作者: 云彩    时间: 2008-3-24 13:23
thank
作者: zhangyong    时间: 2008-3-28 14:28
标题: 回复 6# 的帖子
同意这种做法
LOADR中的场景可以设置运行时间和开始时间的
作者: laipi    时间: 2008-3-28 16:48
xingcyx 朋友一席话甚比 我啃书十天 谢谢受教了 
作者: viviv_wang    时间: 2008-5-13 10:23
方法不错
作者: ljc_2155    时间: 2008-5-16 12:46
很好。  我有加强了一下知识!
作者: yilan8282    时间: 2008-5-22 14:03
长知识了!谢谢!
作者: zhangqh    时间: 2008-5-22 21:58
不错,有意思
作者: blueteer    时间: 2008-5-23 10:29
又长了不少见识阿,以后多来逛逛
作者: liaoxj    时间: 2008-7-4 13:55
看来,我还要多学习
作者: jasonxu    时间: 2008-7-4 14:39
设置两个Group。点击Edit Schedule->选择Schedule by Group->设置Start when group XXX finishes
Group可以相同的脚本也可以用不同的
作者: xpclassical    时间: 2008-7-4 14:55
我们在以前的测试中一般是通过bat的方式来进行,可能一晚上要测试几十个不同的场景,具体的写法前面有人说过了,感觉这么搞还是很方便的,我们自己写了些辅助工具,效果很不错。早上来了直接看结果就好
作者: mansart    时间: 2008-8-26 23:59
标题: 回复 55# 的帖子
是不是结果被覆盖了
作者: guoleihappy    时间: 2008-10-6 14:37
涨见识了
作者: zlpxm    时间: 2008-10-6 15:13
要实践一下,不错的东西啊
作者: drlong    时间: 2008-10-6 15:19
标题: 长假回来就这么热闹!!!
欢迎各位高人 加人Q群:19041959
探讨靠大家!!我们在探讨中,聆听中成长!或许你曾在哭泣中啃过面包,就知道天大的力量!
作者: linnawm    时间: 2008-10-6 16:08
第一种,相对简单
充分利用LR Controller里面Group的功能。
新建一个场景把3个脚本都添加进来,在Edit Schedule中选择“Schedule by Group”的方式,在StartTime中设置3个脚本的运行顺序为“Start when Group xxx finished”,并在“Scenario Start Time”中设定场景在晚上的运行启动时间。设定完定时执行场景后,点击StartScenario按钮,会出现一个倒计时窗口,这样在固定的某个时间上,测试场景中的3个脚本将乖乖的按照设定的先后顺序进行测试。注意,如果没有点击StartScenario按钮激活测试,是不会真正进行测试的。(感谢Athenst朋友的提醒,^_^)
----------------
这个问题好像在LR9.1中已经解决了,可以不用点按扭了
作者: xyqisabel    时间: 2008-10-8 14:51
又学到一点东西了,又长见识了
作者: bbsvbvf    时间: 2008-10-10 09:27
标题: 看了,明白了。
谢谢!
作者: liming_oicq    时间: 2008-10-10 10:14
批处理是比较简单的做法!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2