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

隨機(jī)購買商品業(yè)務(wù)腳本用例如表2所示:

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

設(shè)置好CSV后,在請求中進(jìn)行替換,替換后如圖4所示。

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

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

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

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









最新內(nèi)容
學(xué)習(xí)python需要做哪些準(zhǔn)備?
沒有什么特別的準(zhǔn)備,一臺能正常運(yùn)行的電腦就行,Windows、Linux、Mac均可,作為一門跨平臺的腳本語言,Python對于實(shí)際平臺(系統(tǒng))并沒有什么挑剔,下面我簡單介紹一下Python的學(xué)習(xí)過 ...
西安軟件測試培訓(xùn)班學(xué)費(fèi)是多少?
在西安想學(xué)軟件測試,如果是想?yún)⒓优嘤?xùn)班進(jìn)行學(xué)習(xí),那學(xué)費(fèi)一般在1-3W之間,不同的培訓(xùn)機(jī)構(gòu),可能學(xué)費(fèi)也會不同,但是我覺得一般在2W左右就是一個比較合理的范疇。當(dāng)然,很多培訓(xùn) ...
西安軟件測試培訓(xùn)學(xué)??孔V嗎?
結(jié)合自己就業(yè)后遇到的小伙伴來看,在西安靠譜的軟件測試培訓(xùn)學(xué)校還是有的,畢竟大家學(xué)完出來后,都能勝任現(xiàn)在的工作,說明還是學(xué)到了真正的技術(shù)。當(dāng)然培訓(xùn)行業(yè)本就魚珠混雜, ...
西安軟件測試就業(yè)怎么樣?
隨著互聯(lián)網(wǎng)行業(yè)的飛速發(fā)展,企業(yè)越來越注重軟件質(zhì)量,及軟件產(chǎn)品給用戶帶來的體驗(yàn),因此,為軟件產(chǎn)品質(zhì)量保駕護(hù)航的軟件測試工程師崗位受到了各企業(yè)的重視。隨著各企業(yè)對軟件 ...
西安哪家軟件測試培訓(xùn)機(jī)構(gòu)好?
要說哪家培訓(xùn)機(jī)構(gòu)好,在我看來靠譜的培訓(xùn)機(jī)構(gòu)就是好的。只要靠譜能夠?qū)W到知識和技術(shù),能夠找到自己滿意的工作,那就實(shí)現(xiàn)了自己參加培訓(xùn)機(jī)構(gòu)的目的。每個人的需求不同,對培訓(xùn) ...
西安軟件測試培訓(xùn)多少錢?
在西安,軟件測試培訓(xùn)學(xué)校有很多,其培訓(xùn)學(xué)費(fèi)一般在10000-20000元之間。當(dāng)然選培訓(xùn)學(xué)校,我們除了學(xué)費(fèi)更看中這個培訓(xùn)學(xué)校是否靠譜,只有選擇了靠譜的培訓(xùn)學(xué)校,在今后的學(xué)習(xí)過程中 ...
2020畢業(yè)季,乘風(fēng)破浪,與你同行!
在今天的文章開始之前,先說好啊,匯智妹今天是來送福利的! 別以為只有報名學(xué)習(xí)才有份,你動動小手,精美禮物就是你的! 不過在這之前,看完文章先~ ...
想做程序員,需要學(xué)習(xí)哪些知識?
如果你想成為程序員大佬,千萬不要過早設(shè)定自己的方向,因?yàn)閷I(yè)的程序員都是能夠把很多個方向做的很牛逼,而且其中有一兩個方向是超級牛逼的。分享幾點(diǎn)我同學(xué)學(xué)編程的途徑: ...

