1. 程式人生 > 其它 >記錄一次loadrunner指令碼除錯過程

記錄一次loadrunner指令碼除錯過程

進入一個網址,對其中的某個功能進行一次新增資料操作,以此錄製指令碼

首先使用fiddler進行抓包,開啟fiddler,然後按照流程操作一遍來獲得抓包資料,之後切換另一個賬號,按照同樣的步驟再操作一次,用來進行比對。

將抓到的saz檔案在loadrunner裡面開啟

將內容複製下來,用文字對比工具進行比對,找出需要關聯或者引數化的部分。

重點來了,這裡的userguid,一個是有資料的,一個是空值。非常關鍵,待會會說。

找到需要關聯/引數化的資料後,回到fiddler裡面,找到這些資料第一次出現的地方,然後在loadrunner裡面進行關聯/引數化操作。

使用reg_save_param 函式

找到指令碼中所有的140E62903DB969C609D274520902BB30,替換成{epointloginid}

對使用者名稱進行引數化

新增賬號2的加密使用者名稱,這裡要注意的是,因為使用者名稱使用了加密演算法,所以即使是同一個使用者名稱,分別錄製兩次指令碼的話,資料雖然看上去不一樣,但是還原之後還是一樣的,所以要注意選擇不同的使用者名稱來進行引數化

然後就是出現問題的guid,按理說應該找它第一次出現的位置進行關聯,但是在fiddler中找到的是這樣的

之前我們在對比工具那裡看到過,test02賬號的guid應該是空值,但是為什麼這裡卻又出現了呢。

看看最後新增成功的指令碼那裡是什麼情況

果然test02是沒有userguid的,這裡應該是一個程式的bug,也就是說,如果我們在guid首次出現的地方進行關聯,那麼對於test02,最後返回的結果就不是空值,而是

我們找到的值,這樣一來關聯就失敗了。到這一步,我們應該去找開發溝通,看看是不是賬號許可權,或者是設定的問題。

但是假如我們想讓指令碼就這樣跑通,那該怎麼設定呢?

那麼我們需要找到test02的userguid第一次為空值時,出現的位置,然後在那裡設定關聯就行。

用test01中存在的userguid來做跳板,找到test02中userguid出現的位置

發現是在這裡,我們就在這裡進行關聯。

這樣關聯就完成了

最後設定一下檢查點、事務、集合點。

設定一下日誌和代理,跑一下看看情況

主要是看test02有沒有問題

都成功了,接下來就可以開始正式壓測了。

開啟controller,設定一下壓測配置

完成

中途有個小插曲,第一次跑的時候報錯了,說是引數不匹配,回去看了之後發現,原來是之前設定的test02先跑的問題,改回來就行了

完成壓測

總結:這次的情況比較特殊,一般來說需要關聯的資料不會像這種樣子的,都是在第一次出現的位置關聯就好了,總之需要和開發溝通好之後再進行測試