Run-time Settings--General--Run Logic

Claire_ljy發表於2020-04-04

LR單使用者,重複操作日誌

案例:假如你想在一個指令碼中,實現登入執行1次,查詢執行2次,插入執行3次,怎麼辦?錄3個指令碼?每個事務分別在指令碼中複製N次?

當然不用,LR早就想到了你的需求,下面讓我們隆重推出Block。

位置:

Run-time Settings--General--Run Logic

操作:

1.將你所要考察的事務設定在不同的Action內。

2.在Run Logic中的Run中刪掉預設的Action。

3.在Run中插入Block。

4.在插入的Block中再插入我們要考察的Action。

5.設定Block的properties。這裡有兩種選擇,Sequential和Random。如果選擇Sequential,在下面的Iteration中直接填入數值,那麼Block中的Action都會按輸入的次數執行。如果選擇Random,下面的properties還可以設定Block內各Action執行的百分比。

按照我們前面的案例,我們只需要設定3個Block,每個Block中分別插入一個Action,設定執行次數分別為1,2,3就可以了

另外補充
1、如果指令碼中各個action沒有順序或邏輯關係,Block中action順序可以是任意的。如查詢。但是像登入這樣必須在前面執行的action,隨意放置將導致指令碼失敗。
2、在number of iterations 中設定的迴圈次數,作用於RUN(X)下的所有action,而不作用於block下的action,即block下的action可以通過設定block的properties來指定迴圈的次數

一、問題引入:當我們在Run中新增一個Block0,並在Block0中新增需要的Action,同時給Block0設定執行邏輯,比如按順序執行10次(Run Logic為Sequential,Iterations為10)。如果Block0中的Action含有引數,那麼該引數應該如何設定?

   其實引數設定最主要的有三個:Select next row、Update value on和When out of values。其中Update value on的值可選的是Each iteration、Each occurrence和Once。而它們的意思分別如下:

(1)Each iteration是指每次迭代時更新值,但這個迭代其實只針對Run-time Settings中,選項Run Logic的Run的Iterations,對Run中的Block是不起作用的。也就是說,當Run迭代了10次,同時Run中的Block0也迭代10次的時候,每Run一次,會更新一個引數值,而Block0迭代10次時都使用這個引數值,不會再去更新引數值了。也可以這樣理解,每一個Block其實相當於我們自己在指令碼里面寫一個for迴圈,去迴圈呼叫Block中的Action,此時Each iteration當然只對Run有效。

(2)Each occurrence是指每次引數出現時就更新值。

(3)Once是指只取值一次。

顯然,在這種情況下,Update value on只能選擇Each occurrence。另外當我們選擇了unique和Each occurrence後,LR要求我們設定Allocate …values for each Vuser,這個值與虛擬使用者數和引數化值有關,例如:設定Allocate 5 values for each Vuser,虛擬使用者數是10個,那麼引數化的值至少需要50個(前提是選擇了unique選項)

轉載於:https://www.cnblogs.com/scarlett-hy/p/10185131.html

相關文章