標籤:des style http io ar color 使用 sp for
LoadRunner是怎麼重複迭代和怎麼增加並發啟動並執行呢?
另外,在參數化時,對於一次壓力
測試中均只能用一次的資源應該怎麼參數化呢?就是說這些資源用了一次就不能在用了的。 --參數化時,在select next row選擇unique,update value on選擇 each occurence,
1. 迭代跟虛擬使用者數沒什麼必然聯絡 迭代是這樣的: 迭代1次 迭代2次 迭代3次 使用者1 X1 X2 X3 使用者2 Y1 X2 Y3 其中的X1-3 Y1-3是參數,參數規則就是二樓說的 這麼兩個使用者是根據你的rump up 上來的,比如5秒上兩個使用者,那麼使用者1和2就在5秒之內載入進來的,不知道說清楚了沒。 第二個問題就簡單了,只能用一次的參數,首先確保你的參數足夠,另外規則選擇的時候,注意選擇唯一 迭代次數只是對你設定了迭代次數的action進行迭代,而使用者數可以理解為對整個錄製過程的迭代(只是各個使用者不同) 而且增加並發量可以通過增加使用者來達到 還可以設定集合點來增加某個操作的並發量 假如一個指令碼,設定最大並發量為10,每5秒中增加2個並發使用者,而Action設定的迭代為10次: 當開始至2秒時,載入了2個使用者,這2個使用者分別開始運行,並都運行10次,不管這個2個使用者運行10次是否結束,當下一個2兩秒到來時,即開始至第4 秒時又載入了2個使用者,這2個又運行10次;就這樣一直載入到10個並發使用者,然後當每個使用者都運行完10次時就結束。 這樣中間最大並發是10個,但不一定能達到10個,因為在載入最後幾個時,前面的有可能已經運行結束,所以如果要真正達到最大並發10就必須設定集合點來完成 不過也不一定非要設定集合點才能實現同時處在running的狀態有10個使用者。 設定duration也是可以的。不過那就不只每個使用者運行10次了。 如果想實現使用者迭代10次,並且想同時running為10個使用者,就應該設定集合點。 迭代(Iterate)設計,或者我們稱之為增量(Incremental)設計的思想和XP提倡的Evolutionary Design有異曲同工之妙。 注意:1、 參數類型:在建立參數的時候,我選擇了參數類型為File。參數類型共有9 種,現在來簡單介紹一下所有的參數類型以及意義。 1.1、 DateTime:在需要輸入日期/時間的地方,可以用 DateTime 類型來替代。其屬性設定也很簡單,選擇一種格式即可。當然也可以定製格式。 1.2、 Group Name:很少用到。在實際運行中,LoadRunner 使用該虛擬使用者所在的Vuser Group 來代替。但是在 VuGen 中運行時,Group Name將會是None。 1.3、 Load Generator Name :在實際運行中, LoadRunner 使用該虛擬使用者所 在LoadGenerator 的機器名來代替。 1.4、 Iteration Number :在實際運行中,LoadRunner 使用該測試指令碼當前迴圈的次數來代替。 1.5、 Random Number:隨機數。很簡單。在屬性設定中可以設定產生隨機數的範圍。 1.6、 Unique Number:唯一的數。在屬性設定中可以設定第一個數以及遞增的數的大小。 注意:使用該參數類型必須注意可以接受的最大數。例如:某個文字框能接受的最大數為99。當使用該參數類型時,設定第一個數為 1,遞增的數為1,但100個虛擬使用者同時運行時,第100 個虛擬使用者輸入的將是 100,這樣指令碼運行將會出錯。這裡說的遞增意思是各個使用者取第一個值的遞增數,每個使用者相鄰的兩次迴圈之間的差值為 1。舉例說明:假如起始數為 1,遞增為 5,那麼第一個使用者第一次迴圈取值 1,第二次迴圈取值 2;第二個使用者第一次迴圈取值為 6,第二次為 7;依次類推。
1.7、 Vuser ID:設定比較簡單。在實際運行中,LoadRunner 使用該虛擬使用者的 ID 來代替,該 ID 是由 Controller 來控制的。但是在 VuGen 中運行時,Vuser ID 將會是 –1。 1.8、 File:需要在屬性設定中編輯檔案,新增內容,也可以從現成的資料庫中取資料 1.9、 User Defined Function:從使用者開發的 dll 檔案提取資料。 用HTTP協議錄製了一個包含登入、瀏覽、退出過程的指令碼,錄製時都放到Action部分,這時指令碼設定了迭代後可以多次重複運行,但是出於處理邏輯,一旦將登入指令檔放到Init部分後,就無法正常進行迭代運行了。今天專門找個時間做了嘗試,發現可能出現這兩種錯誤。 1、這是我犯的一個低級錯誤。在我將登入指令檔移到Init部分時,將登入指令檔之後的瀏覽操作前面的web_reg_find指令碼也一起移了過去,結果運行完Init部分指令碼就出錯了。錯誤提示: Error -27259: Pending web_reg_save_param/reg_find/create_html_param[_ex] request(s) detected and reset at the end of the Init section 這種錯誤的現象是沒有進行迭代已經出錯了,錯誤提示也很明確。這時只要把web_reg_find放回Action部分的正確的位置即可。 2、單次運行正確,但是多次迭代運行時出錯,錯誤提示: Error -27985: There is no context for HTML-based functions. A previous function may not have used "Mode=HTML" or downloaded only non-HTML page(s), or the context has been reset (e.g., due to a GUI-based function) 這種錯誤可能比較常見,原因是在Runtime Settings的Browse Emulation中設定了Simulate a new user on each iteration引起的。由於這個設定導致每次迭代時都會類比一個新的使用者,此時這個新的使用者並沒有執行init操作而失敗了,也即是錯誤提示中的There is no context。 這裡涉及到一個知識點就是在Rumtime Settings的迭代設定中,迭代運行次數只對Action部分有效,而Init部分和End部分還是只運行一次的。這時如果設定了“Simulate a new user on each iteration”,將出現上面的第2種錯誤。
【轉】LoadRunner中Action的迭代次數的設定和運行情境中設定