Jmeter性能測試系列——測試腳本開發
根據表1用戶登陸腳本、【案例隨機購買商品腳本用例】

隨機購買商品業務腳本用例如表2所示:

表2隨機購買商品兩個腳本用例,進行測試腳本的開發。
1. 用戶登陸腳本開發
(1) 利用BadBoy錄制用戶登陸過程,生成Jmeter腳本。
(2) 登陸用戶名進行參數化。
為模擬不同用戶登陸,更符合實際業務情景,需針對用戶名進行參數化。選擇“step1”,右鍵,“添加”-“配置元件”-“CSV Data Set Config”,設置相關信息,“Sharing mode”需設置為“All threads”,具體設置信息如圖3所示。

設置好CSV后,在請求中進行替換,替換后如圖4所示。

(3) 設置計時器
腳本錄制過程中,用戶輸入帳號及密碼,大概需5秒左右,其余操作則不考慮等待時間(可根據具體需求確定),需添加3個計時器:用戶登陸信息輸入5秒計時器、登陸成功等待選擇3秒計時器、用戶退出等待選擇3秒計時器,具體設計如圖5所示。

(4) 設置斷言
為了判定用戶登陸是否成功,可設置斷言,檢驗用戶登陸成功標志位是否出現。經過分析,ECShop如果用戶登陸成功,在UI界面上將提示“登陸成功”信息,測試工程師則可以此為斷言信息。點擊發送登陸信息的請求,右鍵“添加”-“斷言”-“響應斷言”,輸入“要測試的模式”,如“登陸成功”,如圖6所示。

斷言設置后,如果失敗,則顯示如下內容,如果成功,則無結果返回。
Assertion error: false
Assertion failure: true
Assertion failure message: Test failed: text expected to contain /登陸成功/
(5) 添加“察看結果樹”、“聚合報告”,便于統計測試腳本執行過程中的數據表現。
(6) 如有需要,可將每個請求名稱修改為可識別的信息,因本腳本請求較少,故不做修改。
通過上述操作設置,用戶登陸腳本設計完成。
2. 隨機購買商品腳本開發
(1) 用BadBoy錄制用戶登陸、瀏覽商品、加入購物車、設置快遞方式、付款方式及收貨信息提交訂單等過程,生成Jmeter腳本。
(2) 針對用戶名進行參數化,方法類似用戶登陸腳本設置,這里不做贅述。
(3) 為了實現隨機選擇某種商品,然后進行購買行為,需在頁面中隨機獲取該商品的信息,通過對服務器返回結果分析,利用正則表達式提取器實現隨機獲取商品id。點擊登陸成功后返回首頁的請求,右鍵,“添加”-“后置處理器”-“正則表達式提取器”,設置相關信息如圖7所示。

本處詳細介紹正則表達式提取器用法:
“名稱”:為了便于識別組件作用,將“名稱”改為“獲取商品編號”,測試工程師工作中可根據具體需求確定。
“引用名稱”:表示Jmeter其他組件調用該變量時的名稱。此處設置為“goods_id”,表示為商品id。
“正則表達式”:設為“?id=(.*)">
“模版”:表示取哪個匹配值,本處只有一個,故設置為“$1$”。
“匹配數字”:表述獲取數據的方式,為了達到隨機的效果,這里設置為“0”。
“缺省值”:當沒有獲取到匹配的數據時,可取此處的缺省值。
其余選項默認設置即可。
測試工程師在實際測試中,為了更方便的利用正則表達式提取器獲取腳本所需的動態數據,可利用“RegexTester”正則表達式提取器工具進行測試,確定數據獲取正確后,再配置Jmeter中的正則表達式提取器。“RegexTester”使用界面如圖8所示。
通過“RegexTester”工具使用,可以快速的確定正則表達式編寫是否正確,是否取得測試腳本所需的動態數據。
(4) 獲取了動態的商品id后,在請求中替換,如圖9所示。
(5) 分析腳本請求,發現Badboy并未錄制到將所選商品添加到購物的請求,因此需手動添加該請求。通過利用Fidder工具抓包分析,分析請求方式。如圖10所示。
通過“Headers”頭文件信息,發現“添加購物車”請求方式為“Post”,再分析Post傳遞內容,查看“TextView”內容,如圖11所示。
“TextView”中表明該Post請求發送了如下內容:
goods={"quick":1,"spec":[],"goods_id":70,"number":"1","parent":0}
通過上述分析活動,手動添加HTTP請求,模擬添加購物車活動。
選擇“Step1”,右鍵,“添加”-“Sampler”-“HTTP請求”,如圖12所示。
“名稱”:設置易懂的名稱即可。這里可以設置為當前請求的作用,如“添加商品到購物車”。
“服務器名稱或IP”:設置服務器的IP,如“192.168.0.110”。
“端口號”:設置服務器提供服務的端口號,ECShop使用的Apache+PHP模式,故端口號為“80”。
“Implementation”:與其他請求一樣,選擇“Java”即可。
“協議”:填入“HTTP”
“方法”:通過Fidller分析可知,此處為“Post”
“路徑”:填寫發送請求的路徑,通過Fidller抓包分析可知,添加購物車請求路徑為“/ecshop/flow.php?step=add_to_cart”。
通過根據Fidller分析可知,本次Post請求內容為Body Data:
goods={"quick":1,"spec":[],"goods_id":70,"number":"1","parent":0}
調整“goods_id”為隨機參數,則添加購物車請求所有設置如圖13所示。
(6) 設置收貨信息
每一個新會員首次購買商品時,需設置收貨地址信息,如圖14所示。
BadBoy錄制過程中,使用的帳號是已經購買過商品的帳號,收貨信息已經存在,因此并沒有錄制到添加收貨地址的操作,測試工程師同樣可通過Fidller抓包分析,手動添加請求。添加HTTP請求后如圖15所示。
(7) 添加計時器
腳本錄制過程中,用戶輸入用戶名及密碼,需5秒左右,用戶登陸成功后,系統默認有3秒左右的用戶選擇操作時間,用戶選擇某件商品,然后添加到購物車,這個過程可增加計時器5秒,編寫收貨信息5秒,填寫快遞信息及付款方式5秒,用戶退出系統時,也存在同樣的選擇時間,大約3秒。總體設計如圖16所示。
訂單是否成功,可在ECShop后臺直接查詢,因此,本處不設置。
(8) 添加“察看結果樹”、“聚合報告”,便于統計測試腳本執行過程中的數據表現。
(9) 將所有請求名稱修改為可識別的信息,便于后續測試過程中定位問題,最終結果如圖17所示。









最新內容
學習python需要做哪些準備?
沒有什么特別的準備,一臺能正常運行的電腦就行,Windows、Linux、Mac均可,作為一門跨平臺的腳本語言,Python對于實際平臺(系統)并沒有什么挑剔,下面我簡單介紹一下Python的學習過 ...
西安軟件測試培訓班學費是多少?
在西安想學軟件測試,如果是想參加培訓班進行學習,那學費一般在1-3W之間,不同的培訓機構,可能學費也會不同,但是我覺得一般在2W左右就是一個比較合理的范疇。當然,很多培訓 ...
西安軟件測試培訓學校靠譜嗎?
結合自己就業后遇到的小伙伴來看,在西安靠譜的軟件測試培訓學校還是有的,畢竟大家學完出來后,都能勝任現在的工作,說明還是學到了真正的技術。當然培訓行業本就魚珠混雜, ...
西安軟件測試就業怎么樣?
隨著互聯網行業的飛速發展,企業越來越注重軟件質量,及軟件產品給用戶帶來的體驗,因此,為軟件產品質量保駕護航的軟件測試工程師崗位受到了各企業的重視。隨著各企業對軟件 ...
西安哪家軟件測試培訓機構好?
要說哪家培訓機構好,在我看來靠譜的培訓機構就是好的。只要靠譜能夠學到知識和技術,能夠找到自己滿意的工作,那就實現了自己參加培訓機構的目的。每個人的需求不同,對培訓 ...
西安軟件測試培訓多少錢?
在西安,軟件測試培訓學校有很多,其培訓學費一般在10000-20000元之間。當然選培訓學校,我們除了學費更看中這個培訓學校是否靠譜,只有選擇了靠譜的培訓學校,在今后的學習過程中 ...
想做程序員,需要學習哪些知識?
如果你想成為程序員大佬,千萬不要過早設定自己的方向,因為專業的程序員都是能夠把很多個方向做的很牛逼,而且其中有一兩個方向是超級牛逼的。分享幾點我同學學編程的途徑: ...

