經驗分享丨功能測試漲薪路線,記一次簡單的效能測試實踐!
功能測試對於測試人員來說並不陌生,功能測試執行的大體流程是根據需求說明書設計測試用例,測試執行,測試總結。同樣效能測試的執行過程也是如此。然而,功能測試與效能測試的區別在於,功能測試是單使用者,效能測試是多使用者,是從1到N的量變。由於無法透過手工操作模擬多使用者併發,因此需要藉助工具來實現使用者操作被測系統某場景的動作流程,也就是編寫測試指令碼。那麼,如何開展效能測試呢?加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~
1、需求分析
通常開發人員會提供介面文件以及非功能需求文件。標準的介面文件中描述了介面請求地址,請求方式,引數型別以及請求報文和響應報文示例。如果介面文件中描述內容不是很清楚,測試人員可以透過抓包工具比如Fiddler,Chrome瀏覽器Network等來獲取介面詳細資訊。根據“非功能性需求”可以確定這些交易需要滿足什麼樣的效能,如每秒TPS 、響應時間、資源使用情況如CPU、記憶體、網路頻寬等。
2、測試指令碼開發
指令碼的正確性是進行有效效能測試的前提。在指令碼除錯過程中,通常是先設定單使用者,然後再設定多使用者併發。根據介面文件資訊進行指令碼開發,首先是建立一個執行緒組,設定單使用者即執行緒數為1,如圖1所示:
圖1 建立執行緒組
然後新增取樣器模擬使用者請求,如圖2所示:
圖2 新增請求
在效能測試中,為了能夠真實模擬使用者請求通常需要將請求的報文進行引數化處理。在進行引數化處理時,首先確定哪些引數需要進行做引數化處理,例如圖2中的id,starttime和endtime;其次準備資料來源,也就是給引數賦值;最後將指令碼中的常量用變數代替,如${ID}。經過了上述三個步驟,就完成了一次簡單的引數化處理。常用的引數化方式有CSV,函式式,程式設計式等。筆者以CSV引數為例,如圖3所示:
圖3 CSV引數化
筆者將資料來源儲存在txt檔案中,資料之間以‘,’隔開。需要注意的是,在利用CSV配置檔案進行引數化處理時,由於資料檔案data.txt檔案末尾存在空行,導致讀取的引數值為EOF。小夥伴不要再踩類似的坑了啊!!!
最後,新增監聽器。常用的監聽器有檢視結果樹、聚合報告和圖形結果。其中檢視結果樹可以檢視某一個具體的請求是否成功以及檢視錯誤日誌;聚合報告以表格的形式詳細列出本輪指令碼執行的請求數、響應時間、錯誤率、吞吐量以及頻寬等資訊;圖形結果以折線圖的形式形象地標線了某個時間段系統效能指標的變化趨勢。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~
3、測試執行
(1)指定測試策略
在測試執行之前需要制定測試策略,本次效能測試所採用的策略是採用階梯負載測試獲取測試環境下應用的效能拐點,採用單交易負載測試驗證待測交易在併發情況下的效能表現並進行調優,採用單交易疲勞測試驗證單交易長時間執行時的效能是否穩定。具體如下:
階梯負載測試:每3-5分鐘載入若干使用者,直至系統資源或效能指標超出預期範圍,忽略思考時間,不設定迭代等待時間。
單交易負載測試:多使用者單交易執行15-20分鐘,忽略思考時間,不設定迭代等待時間。
單交易疲勞測試:單交易持續執行8-12小時,且交易量峰值達到該交易的日交易量峰值。
(2)測試執行
筆者將測試指令碼上傳至Xmeter效能測試平臺來執行測試。Xmeter支援使用者直接上傳Jmeter指令碼作為測試用例,測試指令碼一般以.jmx為字尾名。當一個測試用例需要引入其他外部檔案(比如使用CSV Data Set Config時),Xmeter支援使用者將.jmx和其他外部檔案打包成.zip檔案上傳。具體的操作過程,讀者可以參考Xmeter使用者使用指南,詳細介紹了Xmeter的操作流程。
4、監控除錯
在進行系統效能分析時,首先要弄清楚監控的伺服器是PCServer還是雲上資源。Windows系統有自帶的效能監控工具Performance Monitor,在幫助測試人員分析系統瓶頸的時候非常有用。使用Windows效能監視器,可以跟蹤應用程式和服務的效能影響,並且可以在超過使用者自定義的最佳效能閾值時產生報警或執行操作。筆者在進行本次效能測試實踐時,監控的伺服器是雲上資源,使用了Pod監控工具,即Prometheus + grafana 。Prometheus的基本原理是透過HTTP協議週期性抓取被監控元件的狀態,任意元件只要提供對應的HTTP介面就可以接入監控。不需要任何SDK或者其他的整合過程,非常適合做虛擬化環境監控系統,比如VM、Docker、Kubernetes等。Grafana 用於資料展示,如圖4所示:
圖4 Grafana資料展示
5、測試報告
首先從Xmeter中匯出效能測試報告,進行系統效能分析並提出解決方案或最佳化建議,再次對調優後的系統進行效能測試以驗證方案的正確性,最後對本次效能測試進行總結,這樣就完成了一次簡單的效能測試。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2781324/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 介面測試框架接入效能測試實踐分享框架
- 經驗分享篇丨測試小白如何做好功能測試,看這幾點就夠了
- 簡單的神經網路測試神經網路
- 【PG效能測試】pgbench效能測試工具簡單使用
- try的簡單效能測試
- mysql簡單效能測試MySql
- 記一次想簡單化的單元測試
- 記一次簡單的vue元件單元測試Vue元件
- Locust效能測試實踐
- 軟體測試工程師如何從功能測試轉成自動化測試?經驗分享篇工程師
- Jmeter效能測試簡單使用JMeter
- 最簡單的微服務部署測試實踐微服務
- 功能測試、自動化測試、效能測試的區別
- 軟體測試實驗三單元測試
- MeterSphere 案例分享丨易盛資訊 MeterSphere 介面測試使用經驗
- Java Agent場景效能測試分析最佳化經驗分享Java
- 測評丨NXP LS系列產品網路效能測試
- Java中的單元測試與整合測試最佳實踐Java
- Go 單元測試實踐Go
- Android 單元測試實踐Android
- 面經-效能測試
- 實驗三:單元測試
- Python容器相關簡單效能測試Python
- H5 前端效能測試實踐H5前端
- 【測試運維】效能測試經驗文件總結第3篇:VuGen詳解(已分享,附程式碼)運維
- Vue 應用單元測試的策略與實踐 04 - Vuex 單元測試Vue
- 簡單的 ping 測試
- 實驗三junit單元測試
- [測試經驗] 依賴方介面呼叫測試
- Python實現效能自動化測試竟然如此簡單Python
- 移動效能測試---工具PerfDog簡單使用
- 實用測試技能分享:jmeter+Jenkins效能測試自動化搭建JMeterJenkins
- 軟體測試中的功能測試和非功能測試
- 記一次Python指令碼實現記憶體洩漏測試的方法及解決過程,經驗分享篇Python指令碼記憶體
- Python實現一個簡單三層神經網路的搭建並測試Python神經網路
- 《軟體效能測試、分析與調優實踐之路》簡介
- 效能測試的實施
- LinkIQ線纜網路測試儀基於單項測試方法