一、性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。
1.1 類別性能測試包括負載測試、壓力測試、基準測試等。
1.1.1 負載測試通過測試系統在資源超負荷情況下的表現,以發現設計上的錯誤或驗證系統的負載能力。
1.1.2 壓力測試也稱為強度測試、負載測試。壓力測試是模擬實際應用的軟硬件環境及用戶使用過程的系統負荷,長時間或超大負荷地運行測試軟件,來測試被測系統的性能、可靠性、穩定性等
1.1.3 基準測試二、性能測試目的驗證軟件系統是否能夠達到用戶提出的性能指標,同時發現軟件系統中存在的性能瓶頸,對代碼進行優化,后起到優化系統的目的。
系統調優
識別系統中的弱點
評估系統的能力
驗證系統的穩定性、可靠性
制定性能測試目標à選擇性能測試工具à設計性能測試à執行性能測試腳本à監控分析系統à性能調優
3.1 目標例如:滿足3000用戶在線、240個用戶同時訪問,訪問響應時間不超過2秒,系統資源使用率不超過30%。
3.2 工具可選LR、JMeter、Locust等主流測試工具,這篇文章主要介紹LR和JMeter相關。
3.3 設計測試腳本開發、負載生成規則、場景設計及監控方式、測試環境的搭建。
3.4 執行根據需要進行基準測試、負載測試、壓力測試等,搜集結果。
3.5 監控監控各個節點的運行情況。
3.6 分析對數據進行分析,需要眾多人員共同協作,罩住數據背后的問題,確定性能瓶頸。
3.7 調優確定以后,進行軟硬件調優,然后重復之前的步驟,找到合適的優化方案。
3.8 性能指標3.8.1 響應時間針對頁面操作,用戶感官滿意響應時間<2s,可以接受響應時間2~5s,如果響應時間>5s用戶將無法接受。
針對內部調用的接口響應時間需要更快,具體與接口種類相關。
一般結合業務需求而定
CPU占用率
內存使用率
Cache命中率
HPLoadRunner 是一種預測系統行為和性能的負載測試工具。通過以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題。
4.1 輕松創建虛擬用戶使用LoadRunner 的Virtual User Generator,您能很簡便地創立起系統負載。該引擎能夠生成虛擬用戶,以虛擬用戶的方式模擬真實用戶的業務操作行為。
4.2 創建真實負載Virtual users 建立起后,您需要設定您的負載方案,業務流程組合和虛擬用戶數量。用LoadRunner 的Controller,您能很快組織起多用戶的測試方案。
4.3 錄制腳本4.3.1 參數化參數化可以讓腳本更好的適應環境變化,提高腳本適應能力。
場景運行時,每個用戶使用不同參數,提高真實性。
對于腳本,很多時候,我們處理數據的時候,是需要對服務端返回的數據進行解析,而服務端返回的數據如果每次都是變化的話,每次我們都是需要動態獲取,這個時候就需要關聯。簡單來說,就是處理服務端返回的動態數據。
集合點就是為了讓Vuser集合,然后同時做某個操作,只要在相應的請求前設定有意義的集合點lr_rendezvous即可。
在啟動性能測試之后,系統會按照設定的場景產生壓力。在執行過程中,需要觀察腳本執行的情況,被測試系統的性能指標情況。LR監控來查看這些信息。
4.5 分析報表一次性能測試執行完成,會創建各種性能分析報表,包括cpu相關、吞吐率、并發數等。
五、JmETER篇5.1 jmeter簡介Apache jmeter 是一個100%的純java桌面應用,用于壓力測試和性能測量。它初被設計用于Web應用測試但后來擴展到其他測試領域。Apache jmeter 可以用于對靜態的和動態的資源(文件,Servlet,Perl腳本,java 對象,數據庫和查詢,FTP服務器等等)的性能進行測試。它可以用于對服務器,網絡或對象模擬繁重的負載來測試它們的強度或分析不同壓力類型下的整體性能。
優點:開源,輕量級,免安裝,跨平臺。可支持二次開發和拓展。
缺點:性能整體流程缺失,報告展示不夠友好(逐漸被插件彌補)。
jmeter腳本運行原理:jmeter核心代碼封裝多種頁面請求類型和多種API請求類型,提供GUI頁面來填充參數,生成可運行的xml腳本文件,jmeter能對腳本文件進行解析,并調用相應協議。這種方式方便腳本的編寫,易上手,對代碼要求較低,只需要掌握相應請求協議相關參數即可,且方便調試。插拔式的取樣器支持無限制擴充測試能力,對于不支持的新協議,可以進行二次開發進行擴展。
jmeter性能運行原理:Jmeter性能原理與loadRunner類似。采用多線程來模擬多用戶,通過對線程的開啟運行的控制來達到實際用戶增長的復雜需求。配置(可擴展)多種計時器,定時器。來實現用戶集中某時間刻訪問,即集合點概念,或著采取等待時間定時器模擬用戶操作時間等待。實現更貼近于實際訪問情況的性能測試方式,使性能結果數據更真實。
jmeter數據采集原理:jmeter提供對線程的監聽,能將運行結果進行處理,如傳遞給GUI進行數據展示,和曲線生成,記錄生成日志文件可以供非gui方式運行,提供運行完成后的性能數據分析。可以實時發送給時序數據庫,提供監控使用,可以動態監控查看。
5.3 jmeter性能測試步驟(前提:選型使用jmeter作為測試工具)性能需求分析確定:先確定此次性能測試目標,需求,收集性能需求參數,確定性能測試的測試環境情況與通過與否的判斷條件。確定測試各種場景。
腳本分析編寫并調試:根據前期確定的各種場景進行腳本編寫,設置請求,定時器模擬集合點,等待時間,設置為單線程運行腳本,測試腳本是否按預期執行,調試使腳本能夠按預期執行。
搭建好測試環境:根據需求搭建符合要求的測試環境,提前做好能夠監控服務器運行狀況的方式(cpu,內存,網絡,DB等),確保測試環境被測系統,運行參數配置正確,運行無誤。
執行性能測試,運行性能腳本:確定發送請求的用戶數,執行測試的壓力機是否能夠支持發送這些并發數(根據壓力機cpu與內存確定)如果達不到可以使用分布式壓力機進行壓測,確定測試機與測試環境網絡互通且網絡足夠支撐壓力測試運行。確定完成后即可根據需求確定腳本運行參數,使用NO-GUI方式進行性能腳本執行。
對性能測試數據進行分析:運行完成后收集性能測試數據,對測試數據進行分析,可以導入到jmeter內監聽器進行數據處理,或著采用其他處理方式,根據數據來驗證需求是否滿足,確認此次性能測試是否通過。
5.4 基于jmeter性能測試平臺思路:統一管理jmeter的版本,性能需求維護,性能腳本與結果數據的統一管理,增加服務器的運行情況監視,從需求制定到結果分析在測試平臺一站解決,簡化了性能測試工作,將性能測試變成可視可控可管理狀態。
六、總結6.1 性能測試是什么?性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項性能指標進行測試。負載測試與壓力測試都是性能測試。負載測試主要是通過各種工作負載下系統的性能。隨著負載的變化,來確定系統的性能變化。壓力測試主要是確定的系統所能承受的極限。互聯網金融客戶群體相當龐大,所以對于我們來說系統的性能尤為重要。
6.2 性能測試做什么?性能測試是通過使用各種工具,來模擬各種可控與不可控的請求。通過模擬生產運行的業務以及使用場景的組合形成多種性能測試點,測試系統的性能是否能夠滿足生產性能要求。在特定條件下運行驗證系統承受能力。通過各項性能指標來判斷系統是否達到生產需求,及時對系統做出風險評估。發現問題、解決問題,回饋用戶高質量的體驗。
6.3 性能測試做怎么做?我們系統的性能測試利用市面上測試工具進行性能測試。這種測試方法可以捕獲部分問題,但很難模擬業務場景組合。而且測試工具五花八門,不利于搜集測試性能結果。我們現在進行的性能測試開發,利用統一的性能測試工具Jmeter做為核心。利用influxDB數據庫做數據收集,Grafana做性能數據展示平臺。搭建完整的性能測試平臺,開放統一的性能測試通道,建立通一的性能指標收集平臺。平臺根據我們自己的業務要求建立性能測試計劃,推出不同的業務模板。通過平臺接口可進行合理的性能測試。我們可根據不同業務展示不同的性能圖形。有利于測試人員及時定位問題。
- 歐盟ROHS2.0檢測報告 2024-12-27
- 電子產品可靠性測試項目 2024-12-27
- 可靠性測試包含哪些測試項目 2024-12-27
- rohs2.0檢測新標準要求 2024-12-27
- 有毒有害物質檢測 2024-12-27
- 防腐等級WF2測試,如何申請WF2防腐等級 2024-12-27
- 深圳訊科鹽霧測試 2024-12-27
- 哪些產品需要做REACH檢測 2024-12-27
- 深圳恒溫恒濕試驗 2024-12-27
- 歐盟電池指令 2024-12-27
- 深圳寶安REACH檢測 2024-12-27
- ROHS流程有效期多久 2024-12-27
- 性能測試中包含以下測試類型 2024-12-27
- 安規常見的測試項目有哪些 2024-12-27
- 質量檢測報告的用處有哪些 2024-12-27
聯系方式
- 電 話:0755-23312011
- 銷售:陳曉峰
- 手 機:18002557368
- 傳 真:0755-27907896
- 微 信:XKS7368