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

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-16 19:06:02

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

服务器-能不能针对特定请求做一个队列顺序执行?

问题描述 能不能针对特定请求做一个队列顺序执行? 前端js框架可能短时间内被多次触发,但是每次触发后都是用异步的方式提交到服务端,但是服务器可能会出现后提交的请求先返回的情况,是不是可以有方法可以把这个请求放到队列中然后action顺序执行请求,用的是webwork,不知道webwork本身有没有这种功能,自己去实现好像不太现实,好像要修改框架才能实现吧? 解决方案 不清楚具体的业务场景,一般有严格顺序的交互,在上次点击返回前,页面会灰掉吧. 就按照你的要求来考虑这个场景好了,在服务端不太好处理

有关多线程顺序执行的问题

问题描述 现有如下代码publicImageUtils(finalStringurl,finalintmaxWidth,finalintmaxHeight,finalintpageNo,finalStringuserID,finalStringtopic){super(newBorderLayout());System.out.println("url="+url);JPanelwebBrowserPanel=newJPanel(newBorderLayout());finalJWeb

stm32-单片机跑上嵌入式系统ucosii以后,不用考虑顺序执行的问题吗

问题描述 单片机跑上嵌入式系统ucosii以后,不用考虑顺序执行的问题吗 原来裸机跑的时候,写程序都是按程序执行顺序一步一步来的,加了系统不用了吗?那程序是怎么跑的呢? 还有这个图中说道裸机的时候要考虑具体物理地址,如果是用stm32的库函数开发不是也不需要考虑的吗?跑上ucos以后是不是也是相当于他们给了一些这样的库函数,我们之间调用不用知道具体操作那些寄存器? 解决方案 在单独的进程线程看当然还是顺序执行,这里说的不是顺序执行是因为有多个进程,操作系统负责调度,也就是说它负责先什么时候让哪些

jquery中的ajax如何返回结果而非回调方式即为同顺序执行_AJAX相关

因为默认ajax是异步的,也就是在未响应到结果时不影响向下的执行.所以必须采用回调的方式来实现.这种方案效率更高. 如果非要返回结果的话,将ajax 中的参数 async 改为 false,即为同顺序执行,如下实现,即可返回到结果. 不过在非必要的情况下,不推荐此种做法 复制代码 代码如下: function(url,params){ var outdata; $.ajax({ type : "get", async:false, dataType:"json",

js加载js文件并行加载与顺序执行

javaScript文件(下面简称脚本文件)需要被HTML文件引用才能在浏览器中运行.在HTML文件中可以通过不同的方式来引用脚本文件,我们需要关注的是,这些方式的具体实现和这些方式可能会带来的性能问题. 当浏览器遇到(内嵌)<script>标签时,当前浏览器无从获知javaScript是否会修改页面内容.因此,这时浏览器会停止处理页面,先执行javaScript代码,然后再继续解析和渲染页面.同样的情况也发生在使用 src 属性加在javaScript的过程中(即外链 javaScript)

javascript-js延迟顺序执行的问题

问题描述 js延迟顺序执行的问题 现在项目中遇到一个问题.就是在前台页面顺序延迟显示后台发送的数据. 比如前台是一个表格,点击前台按钮后,一次获得table上该显示的所有随机序号. 目前的问题不能让这些选择的序号顺序延迟显示. 这个问题类似于在表格中随机点名. 代码不完整: <table> <tr><td>11</td><td>12</td><td>13</td><td>14</td>&

MFC定时器实现伪并发,定时器的并发怎么才能顺序执行呢?

问题描述 MFC定时器实现伪并发,定时器的并发怎么才能顺序执行呢? MFC定时器实现伪并发,定时器的并发怎么才能顺序执行呢?消息的参数传递怎么保持? 解决方案 既然是并发,就是同时执行,况且定时器其实根本不算什么并发,本来定时器就是放在主线程中顺序执行的.

线程的交替执行和顺序执行都不算并发吧?

问题描述 线程的交替执行和顺序执行都不算并发吧? 看到百度上说多线程是CPU交替执行的,那么并发不是同步执行的么?并发多线程交替执行有什么用? 解决方案 并发和并行(concurrent 和 parallel)不是一回事,你说的交替执行,这个在宏观上也是并发,但是不是并行.同时执行才是并行 解决方案二: 并发是指程序共享时间段,如果只有一个cpu,那么就是交替执行,如果是多核cpu,多线程有可能被分配到不同的cpu上同时执行. 解决方案三: 线程顺序执行(phtread)

java-多个多线程类按顺序执行

问题描述 多个多线程类按顺序执行 第一次玩多线程,看代码. public class Test { public static void doSomthing(){ System.out.println("11111111111"); } public static void main(String[] args) { System.out.println("调用线程1方法..."); TestThread1 testThread1 = new TestThread