qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          LoadRunner中Action的迭代次數的設置和運行場景中設置

           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種錯誤。

          posted on 2014-06-16 10:18 順其自然EVO 閱讀(7855) 評論(0)  編輯  收藏 所屬分類: loadrunner

          <2014年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宣汉县| 石林| 囊谦县| 来安县| 合川市| 苏尼特左旗| 印江| 镇宁| 仙居县| 仪陇县| 永川市| 华宁县| 印江| 延津县| 竹北市| 太仓市| 汝州市| 罗山县| 犍为县| 聂荣县| 高雄市| 千阳县| 万年县| 正镶白旗| 大厂| 斗六市| 边坝县| 花垣县| 四平市| 武安市| 米易县| 天峨县| 衡南县| 册亨县| 盘锦市| 江门市| 石林| 广平县| 习水县| 三江| 尖扎县|