【转】实现LoadRunner多个场景的顺序执行

应用场景
假设有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...等用户数递增的测试,也可以用以上方法实现,但需要注意的是将事务名称区分开以便进行分析。

注:以上内容部分总结自51testing论坛。

时间: 2024-10-17 14:35:34

【转】实现LoadRunner多个场景的顺序执行的相关文章

实现LoadRunner多个场景的顺序执行

实现LoadRunner多个场景的顺序执行 应用场景 假设有3个不同的测试场景,分别为并发登录.核心业务.可靠性测试,3个场景有先后执行顺序.由于白天测试机器另有用处,只能在晚上进行性能测试,这时我们的期望是能否把测试场景都设定好之后晚上自动运行,第二天我们回来看测试结果呢? 答案是肯定的,可以有两种方式实现. 第一种,相对简单充分利用LR Controller里面Group的功能. 新建一个场景把3个脚本都添加进来,在Edit Schedule中选择“Schedule by Group”的方式

LoadRunner中运行场景时提示"You do not have a license for this Vuser type."

LoadRunner中运行场景时提示"You do not have a license for this Vuser type." 2012-06-15 17:09:07|  分类: Software Testing |举报 |字号 订阅 问题: 使用Java Vuser协议调用Java应用程序,脚本执行通过后,在Controller中运行场景时,均为Errors不通过,报错如下: 解决: 百度"You do not have a license for this Vuse

LoadRunner 压测场景制定

这里,我们利用 LoadRunner 来制定场景 前提:准备好没问题的脚本以及数据 进入压测场景的方式有两种,这里,我们示范两种方式的进入手工设定场景1.直接进入 Run Load Tests 2.从脚本显示页进入 原文地址:https://www.cnblogs.com/xiaowenshu/p/10354868.html

详解如何构建Promise队列实现异步函数顺序执行

场景 有a.b.c三个异步任务,要求必须先执行a,再执行b,最后执行c 且下一次任务必须要拿到上一次任务执行的结果,才能做操作 思路 我们需要实现一个队列,将这些异步函数添加进队列并且管理它们的执行,队列具有First In First Out的特性,也就是先添加进去的会被先执行,接着才会执行下一个(注意跟栈作区别) 大家也可以类比一下jQuery的animate方法,添加多个动画也会按顺序执行 解决 模拟3个异步函数 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

有三个线程,怎么让他们按顺序执行?

场景:有三个线程t1.t2.t3.确保三个线程t1执行完后t2执行,t2执行完成后t3执行. 方法1:thread.Join把指定的线程加入到当前线程,可以将两个交替执行的线程合并为顺序执行的线程.比如在线程B中调用了线程A的Join()方法,直到线程A执行完毕后,才会继续执行线程B. package com.gs.demo1; public class ThreadTest1 { public static void main(String[] args) { Thread t1 = new

让线程按顺序执行8种方法

实现我们下面需要完成这样一个应用场景: 1.早上:2.测试人员.产品经理.开发人员陆续的来公司上班:3.产品经理规划新需求:4.开发人员开发新需求功能:5.测试人员测试新功能. 规划需求,开发需求新功能,测试新功能是一个有顺序的,我们把thread1看做产品经理,thread2看做开发人员,thread3看做测试人员. 1.使用线程的join方法 join():是Theard的方法,作用是调用线程需等待该join()线程执行完成后,才能继续用下运行. 如果想学习Java工程化.高性能及分布式.深

多命令顺序执行,dd命令,管道|,grep,通配符

多命令顺序执行:命令1;命令2 命令之间没有逻辑关系 命令1&&命令2 命令1执行正确才执行命令2,命令1执行错误不会执行命令2 命令1||命令2 命令执行错误才执行命令2,命令1执行正确不会执行命令2 命令 && echo yes || echo no dd if=输入文件 of=输出文件 bs=字节数 count=个数 if=输入文件 指定源文件或源设备 of=输出文件 指定目标文件或目标设备 bs=字节数 指定一次输入/输出多少字节,即把这些字节看做一个数据块 cou

多命令顺序执行,单引号,双引号,反引号,转义符

多命令顺序执行 ; 多命令顺序执行 && 逻辑与 前命令执行ok,后面进行 || 逻辑或 前命令执行失败 后面执行 | 命令1|命令2 命令1结果,让命令来处理通配符 ?匹配任意一个字符 * 匹配0个或者多个任意字符 [] 匹配中括号中的任意一个字符 [-] 匹配括号中的任意一个字符 [^] 逻辑非 匹配不是中括号中的任意一个字符 [[email protected] biji]# aa=666 [[email protected] biji]# echo $aa #打印变量aa666[[

python多进程并行执行和顺序执行的时间测试

#_*_coding:utf-8_*_ import time from  multiprocessing import Pool from threading import Thread def func1(fn):     time.sleep(1)     return fn * fn if __name__ == "__main__":     a = [1,2,3,4,5,6]     print "顺序执行的方式开始..."     s = time.t