項(xiàng)目背景:
我們的平臺為全國某行業(yè)監(jiān)控平臺,經(jīng)過3輪功能測試、接口測試后,98%的問題已經(jīng)關(guān)閉,決定對省平臺向全國平臺上傳數(shù)據(jù)的接口進(jìn)行性能測試。
01、測試步驟
1、編寫性能測試方案
由于我是剛進(jìn)入此項(xiàng)目組不久,只參與了其中3個(gè)模塊的功能測試,一遍接口回歸測試,所以在寫性能測試方案時(shí),首先將業(yè)務(wù)流程、業(yè)務(wù)功能梳理了一遍,重點(diǎn)對將要性能測試的接口的文檔再次仔細(xì)看一遍,在導(dǎo)師的引導(dǎo)下,對各個(gè)接口響應(yīng)的功能更加了解,收獲最大是,性能測試應(yīng)該對應(yīng)各接口的實(shí)際功能,設(shè)計(jì)合適的用例,如:針對某一對象,有兩種數(shù)據(jù)上傳,一種是實(shí)時(shí)數(shù)據(jù),一種是歷史數(shù)據(jù)。
此時(shí),實(shí)時(shí)數(shù)據(jù)就應(yīng)該更多考慮連續(xù)上傳的穩(wěn)定性,而歷史數(shù)據(jù)應(yīng)該更多考慮數(shù)據(jù)堆積后,一次上傳多條(1000條)數(shù)據(jù)的情況,要去更多關(guān)注數(shù)據(jù)上傳后的正確性,完整性。
對各個(gè)接口功能和數(shù)據(jù)上傳邏輯梳理清楚后,將每個(gè)接口性能測試的方法、測試項(xiàng)、需要的數(shù)據(jù)都設(shè)計(jì)好,整理后就是我們的測試方案了。
?
下面是部分截圖
?測試方案是 在即實(shí)際操作嘗試可行的情況下編寫的,后續(xù)施行的過程中發(fā)現(xiàn)的需要調(diào)整的地方,按實(shí)際需求進(jìn)行了調(diào)整。
2、測試方案討論
將測試方案提交導(dǎo)師審核后,小組內(nèi)開會討論了此方案,組長對不合適的地方提出改進(jìn)意見,同事們提出自己的想法,還有不清楚的地方也在大家的討論中更明朗了。通過討論后,測試方案變得更貼合項(xiàng)目需要、更可行了。
本次需要修改的部分截圖如下:
3、性能測試執(zhí)行
我們使用Jmeter工具進(jìn)行測試。
接口信息如下:
測試腳本使用Java編寫,數(shù)據(jù)打包為json格式。
4、輸出測試報(bào)告
5、分析數(shù)據(jù)
6、問題排查
7、性能改進(jìn)
?
02、案例分享
下面分析詳細(xì)一個(gè)接口案例--歷史數(shù)據(jù)上傳。
1、創(chuàng)建一個(gè)線程組:
打開Jmeter.bat,出現(xiàn)圖形界面,依次點(diǎn)擊如下圖:
2、添加HTTP默認(rèn)請求:
添加此配件為了控制此線程組的訪問地址和端口,依次點(diǎn)擊如下:
?配置HTTP默認(rèn)請求參數(shù),根據(jù)要測試的IP和端口,如下所示:
3、數(shù)據(jù)庫連接配置:
因?yàn)槲覀円獜臄?shù)據(jù)庫獲取企業(yè)信息,所以要配置數(shù)據(jù)庫連接(使用配置元件-JDBC連接配置),若你們用固定的用戶名和密碼登錄,可以省去此步。
JDBC連接配置:
4、添加僅一次控制器:
屬于邏輯控制器,用來控制采樣器的執(zhí)行順序。因?yàn)檫@里的用戶只需要登錄一次,所以用僅一次控制器,即表示此控制器下的內(nèi)容在整個(gè)線程組運(yùn)行中只循環(huán)一次。
5、添加HTTP請求:
要添加在僅一次控制器下面,才能受它控制。HTTP請求屬于Sampler(采樣器),然后根據(jù)接口文檔相關(guān)內(nèi)容填寫http請求內(nèi)容。
6、添加正則表達(dá)式提取器:
需要在http請求下面添加,因?yàn)橐獜膆ttp請求的響應(yīng)結(jié)果中通過正則表達(dá)式來提取我們需要的key。
正則表達(dá)式:
- ():括起來的部分就是要提取的。
- .:匹配任何字符串。
- +:一次或多次。
- ?:不要太貪婪,在找到第一個(gè)匹配項(xiàng)后停止。
(3)模板:
引用起來,如果在正則表達(dá)式中有多個(gè)正則表達(dá)式,則可以是$2
3$等等,表示解析到的第幾個(gè)值給引用名稱的那個(gè)量(如:key)。如:$1$表示解析到的第1個(gè)值。
(4)匹配數(shù)字:0代表隨機(jī)取值,1代表全部取值,通常情況下填0。
(5)缺省值:如果參數(shù)沒有取得到值,那默認(rèn)給一個(gè)值讓它取。
7、添加獲取當(dāng)前時(shí)間:
使用采樣器里的BeanShell Sampler。為了方便在Redis里查看數(shù)據(jù)時(shí)知道是什么時(shí)間上傳的。次數(shù)需要在采樣器中編寫提取當(dāng)前時(shí)間的java腳本。
8、使用java編寫腳本設(shè)置上傳數(shù)據(jù),
此處也使用Bean Shell Sampler采樣器。數(shù)據(jù)需要json格式。這里開始,采樣器就要添加在線程組下面,因?yàn)閿?shù)據(jù)有可能要多次循環(huán)上傳,如果只部分截圖如下:
9、添加http請求,將剛設(shè)置的符合接口要求的數(shù)據(jù)上傳。
10、添加監(jiān)聽器
?在監(jiān)聽器中設(shè)置運(yùn)行日志保存的位置。文章來源:http://www.zghlxwxcb.cn/news/detail-711147.html
11、運(yùn)行后查看結(jié)果文章來源地址http://www.zghlxwxcb.cn/news/detail-711147.html
最后如果你想學(xué)習(xí)自動化測試和需要軟件測試資料,歡迎加入筆者的交流群:320231853,里面會有很多測試資源和大佬答疑解惑,我們一起交流一起學(xué)習(xí)!
到了這里,關(guān)于一文2000字從0到1用Jmeter全流程性能測試實(shí)戰(zhàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!