LoadRunner的幾個問題

我在用loadrunner的時候,有幾個問題比較困惑。想請教網上的高手(基於WEB—test):
1.我用Virtual user錄製教本要在登陸時設置Rendzvous是要在點“登陸”按鈕前設還是要在點登陸按鈕後設置?
2.在做壓力測試的時候服務器的各個性能都能看到變化,但好像對我們實際操作沒什麼影響。比如我們有個程序在實際操作的時候如果有100個人同時登陸,那麼再來登陸就再也登陸不進去了,但我們用LoadRunner也用100個人來模擬時去能卻能輕鬆的登陸進去,不知是什麼原因。
3.在用loadrunner來模擬操作時看不到SQLSERVER的連接數有什麼變化,我是用sp_who來追蹤的。連接數保持不變。
4.我錄製登陸頁面的腳本後修改登陸的密碼和帳號,發現就是密碼錯誤也能順利通過測試。如果這樣的話我怎樣把登陸帳號和密碼設置成參數呢?搞不懂啊。
5.你們在使用這個軟件時是不是覺得他們模擬出來的數據跟實際操作的出入不大,能否分享下成果,不勝感激。
---------------------------------------------------------------

簡單說一下我的想法:
1 假如你是要模擬N個用戶執行登陸操作,當然是在登陸前設置Rendzvous。集合點(自己翻譯的)應該設置到希望併發的操作前面
2 不知道你的腳本是怎樣的,也不知道你說的有個程序指什麼程序,但有可能是LoadRunner中的100個人並不是同時登陸,可能只有20個人在同時執行登陸操作;而前面的那個可能就是100個人同時登陸。另外可能還有thinktime的問題
3 sqlserver的連接數本來就應該沒有什麼變化,假如隨着用戶數的增加,連接數大幅度增加,說明程序代碼中沒有釋放連接,這樣程序很快會crash
4 loadrunner記錄的只是請求,請求各個頁面(page),雖然密碼錯誤,但登陸後的各個頁面它還能訪問到,說明你的驗證機制不好,可以繞過登陸頁面,直接訪問其中的頁面,安全性很有問題
5 loadrunner功能強大,關鍵是如何使用。比較重要的有 腳本(我認爲是最關鍵的)controller的設置,還有結果的分析。不知道你是怎麼分析結果的

LoadRunner登錄腳本認證失敗

發現Loadrunner參數化,是按照它內置的機制執行的,符合這個機制,編譯就能通過。後來在Gen中的Tools—>general option中找到了可以更改這個機制的地方,修改完了之後,腳本再次編譯,這次OK了。


  測試對象:某Web即時通訊系統(以下稱WebIM)
  開發語言:XML

  數據通訊協議:Web(HTTP/HTML)協議、Windows Sockets協議

  底層數據庫:Mysql

  服務器操作系統:Redhad 4

  腳本實現功能:登入系統後,再退出系統。

  問題1:錄製開發的腳本可以成功回放,但是數據庫的logout表裏卻查不到“登出”的用戶?

  分析:錄製的時候只選用了單協議:Web(HTTP/HTML)協議,而WebIM的實現不只用到了Web(HTTP/HTML)協議,也用到了 Windows Sockets協議。在定位了問題的"原因"之後,筆者嘗試錄製多協議的腳本,結果回放失敗。回放失敗是因爲Webim在登錄的過程中有個加密驗證的過程。腳本回放時提交了上一次的經過Sha1加密後的密文,而此時服務器端的Sha1密文已經發生了改變。從而導致了失敗。

  解決方法:

  a、使用雙協議錄製腳本

  b、開發Sha1算法的DLL文件並在腳本中調用。

  問題2:錄製的腳本中並沒有捕獲到服務器返回的Session ID?

  分析和方案:Webim的開發用到了XML和Windows Sockets協議,因此按照正常的思路,Loadrunner在錄製腳本時,也應該採用XML和Windows Sockets協議,但實際情況是這樣的,錄製的腳本中並沒有捕獲到服務器返回的Session ID。既然公司內網的Jabberd服務器有專門的測試客戶端,筆者決定通過這個客戶端錄製腳本,由於這個客戶端和服務器的通信協議是Windows Sockets,因此錄製協議也採用了這個最底層的協議。這一次,錄製的腳本中捕獲到了服務器返回的Session ID。爲了保證腳本回放時能夠動態的獲取到這個Session ID,需要做“關聯”操作,筆者使用了lrs_save_searched_string()函數,對腳本做了處理。

  問題3:如何調用Dll來對服務器返回的序列和Password加密,以產生Sha1的密文?

  分析和方案:腳本中加載了Dll庫文件後,在調用庫文件中的加密函數對Session ID+Password字符序列加密時,必須採用如下格式endes(a,b),其中的a代表源序列,b代表密文。經過這樣的步驟處理後,調試腳本,就可以看到密文了。

  問題4:Buf中參數化密文後,腳本還是不能編譯通過,存在語法錯誤?

  分析和方案:發現Loadrunner參數化,是按照它內置的機制執行的,符合這個機制,編譯就能通過。後來在Gen中的Tools—>general option中找到了可以更改這個機制的地方,修改完了之後,腳本再次編譯,這次OK了。

  問題5:錯誤提示:沒有足夠的虛擬用戶分配給這個NewPara?

  分析和方案:loadrunner中在對用戶名和密碼或其他數據參數化了以後,不要將參數刪除後,重新參數化,否則就會出現上述問題。筆者決定重新錄製腳本,重新參數化,重新修改腳本。事實證明這樣做是正確的,編譯運行後,5個虛擬用戶的腳本正確無誤的通過。

    web_set_user("ajco/tina","tina@2848804","172.18.14.172:80");

在這個前面加上:ajco是機器名,tian是用戶名,“密碼”,“ip和端口號”

web_url("Service1.asmx_2",
  "URL=http://172.18.14.172/test/Service1.asmx?op=QueryPoliceList",
  "Resource=0",
  "RecContentType=text/html",
  "Referer=http://172.18.14.172/test/Service1.asmx",
  "Snapshot=t2.inf",
  "Mode=HTTP",
  LAST);

 Loadrunner併發用戶與集合點討論

http://qsfwy.javaeye.com/blog/203061

MS系統下Quality Center9.0安裝部署

http://www.51testing.com/?uid-205125-action-viewspace-itemid-92966

http://www.51testing.com/?uid-64098-action-viewspace-itemid-124882

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章