本節書摘來自異步社群《loadrunner 12七天速成寶典》一書中的第2章,第2.4節讓代碼動起來,作者陳霁,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
2.4 讓代碼動起來
戀戀:師傅,師傅,接着我們應該幹嘛了?
雲雲:嗯,在搞定編碼之後我可以給你說怎樣讓腳本動起來了。
戀戀:動起來?
雲雲:就是變量化操作或者直接叫做參數化吧。
戀戀:似曾相識。
雲雲:這樣說吧,你先錄制一個使用者注冊後發帖的腳本,然後回放一下,看看結果。
戀戀開始錄制注冊腳本,錄制的結果如下
雲雲:錄制出來的東西現在能看懂嗎?
戀戀:差不多吧,基本上都能看懂,就是不太明白中間這個請求,forum.php這個頁面調用了是在幹嘛的。
雲雲:不錯哦,其實這個東西是一個ajax,以後再給你說吧,你現在可以無視它的存在。接着你回放一下這個腳本,再看看結果。
戀戀(按下f5鍵):運作一切順利,而且我還去看了test result裡面顯示的也是passed。
雲雲:你确定認真看結果了麼?
戀戀:讓我再看看。注冊過一次的賬戶應該再次注冊不成功吧,test result裡面的截圖也告訴我該使用者名已經注冊,為什麼loadrunner沒有報錯呢,明明就沒做成功啊。
雲雲:loadrunner怎麼知道錯與對呢?對于工具來說,它判斷正确與否的唯一方法就是http狀态,就是那個200或者是404之類的東西。
戀戀:貌似你好像說過。
雲雲:我有說過麼?
戀戀:這兩天你沒說過,但是平常你經常說,還經常吐槽網友的内容,就說他們連http狀态都不知道!
雲雲:好吧,這個東西确實蠻基礎的,本質上可以這樣解釋,你問我3+2等于幾,我回答4,你有兩層判斷:
(1)我回答地很快
(2)我回答的結果和你想要的結果是相同的。
戀戀:不明白!
雲雲:不就是你說過的麼,做不做是态度問題,做不做的好是能力問題。是以伺服器傳回的狀态是态度問題,隻能看态度。而二級檢查就是看能力。loadrunner能夠判斷到一級的态度是正确的,但不能判斷結果的内容是否正确。
戀戀:大概有點概念了,反應首先要快,認錯要快但是屢教不改,是不是啊。
雲雲:額,大概就是這個意思。其實loadrunner也會檢查,要寫個檢查點函數就行了,現在還沒講到。
戀戀:那麼現在腳本跑了,不成功怎麼辦呢。
雲雲:簡單說就是要讓資料動起來,就是參數化。
戀戀:那怎麼參數化呢?
雲雲:我們先不講複雜的變量和參數的互換,我們就從最簡單的講起。
戀戀:嗯,好的。
雲雲:打開剛才錄制的注冊腳本,找到使用者名和郵箱。
戀戀:為什麼要找這個啊?
雲雲:因為你送出的這兩個東西系統會認為已注冊了,就不會再給你注冊成功的提醒。
戀戀:哦,原來如此,是這些代碼吧,如圖2-11所示。
雲雲:對的,就是這塊,你能看到你送出的username和email是兩個表單屬性,你送出到伺服器的值(通過post方式)是yunyun和yunyun874。接着你選擇其中username對應的yunyun資料并單擊滑鼠右鍵,在這裡通路“replace with a parameter”下的“create new parameter”,如圖2-12所示。

接着使用預設的newparam參數名和參數類型,單擊“ok”确定,如圖2-13所示。
這裡loadrunner會提示是否需要替換所有的配對資料,在不太清楚整個腳本資料情況下,建議選擇“no”不要替換,如圖2-14所示。
戀戀:嗯,我來操作一下。代碼發生了變化,剛才選中的東西被替換成了{newparam},還有個淡藍色的方塊,如圖2-15所示。
雲雲:對,這就是參數化後的效果。通過這種模式做出來的參數會有個框,不過記住不是所有的參數都是有框的,在web協定中參數都是用{}包圍的。
戀戀:哦,然後呢?
雲雲:接着你把這個參數複制一次到電子郵件的字段上替換掉@前的内容。
戀戀:這樣就是讓username和email都用同一個參數動态對吧?
雲雲:聰明!
戀戀:那麼代碼變成這個樣子了,如圖2-16所示。
雲雲:接着我們要讓他們動起來。按快捷鍵ctrl+l或菜單“design”下的“parameters”,找到“parameters list”功能,如圖2-17所示。
可以看到我們前面替換的值就在中間,隻要修改它,那麼代碼運作時候的值就會跟着變。
戀戀:這是一個變量吧。
雲雲:對,這就是個進階變量。接着你可以修改一下這個内容,然後再運作一次看看是不是就通過了。
戀戀:(幾分鐘後)嗯,這次真的使用者注冊成功了。
雲雲:這裡給你個小技巧,有時候你不知道參數化的資料對不對,那麼有兩個辦法可以讓你知道:
(1)在運作測試中打開參數日志,運作完成通過日志檢查。
(2)在運作時通過斷點和運作資料完成檢查。
戀戀:具體點,這和沒說一樣!
雲雲:簡單介紹一下:
(1)在運作日志中啟動這些選項後,運作代碼就會标記為藍色日志,如圖2-18所示。
(2)使用f9鍵在代碼中設定斷點,否則太快了你可能來不及看,斷點的代碼會用紅色标記出來,然後單擊運作代碼,如圖2-19所示。
在代碼運作時底部會多一個rumtime data的标簽,裡面就能看到參數值,如圖2-20所示。
兩種方式明白了嗎?
戀戀:真複雜!
雲雲:了解代碼如何運作是調試的最基本技能,這個很重要的。
戀戀:知道啦。
雲雲:最後問你一個進階點的問題,我現在要注冊很多很多使用者怎麼辦?
戀戀:如果寫幾十個使用者名,估計手寫一下問題不大,但是要是寫幾十萬肯定就困難了,難道寫代碼?
雲雲:這裡有兩個辦法,一個是用excel,另一個是寫代碼。
戀戀:那你快詳細介紹一下。
雲雲:好的。
雲雲:首先來說一下excel的方法,excel中的魔術拖曳一般大家都會,就是寫幾個記錄,然後通過記錄右下角拖拉的方式可以生成一堆順序資料,如圖2-21所示。
接着拖動出你要的資料數量,另存為csv格式,就是逗号分隔符格式(這個格式lr的參數化是支援的),最後要做的事情就是把參數化指向切到這個檔案上就行了,為了避免一些誤解,建議把這個檔案字尾改成.dat檔案,并且放在腳本目錄下,如圖2-22所示。
單擊“browse”選擇剛才另存出來的檔案就行了。
戀戀:這麼簡單啊,我記得ue貌似還有列編輯功能,是不是還能整體調整?
雲雲:列編輯都知道啊,确實是這樣的。
**小結
掌握基本的parameterlist參數管理及基本使用原理。**