?

基于LoadRunner的網絡倉庫系統性能測試及優化

2017-02-28 21:30王立群
大陸橋視野·下 2016年11期
關鍵詞:性能測試

王立群

【摘 要】網絡倉庫管理系統由于其數據量巨大,平臺的性能需要良好的測試。根據系統的特點和性能需求,制定詳細的性能測試計劃,借助自動化測試工具LoadRunner對系統進行測試并找出問題所在,提出改進和優化方法并實施,使系統性能得到提高,滿足用戶需求。

【關鍵詞】網絡倉庫系統;性能測試;LoadRunner;每秒事務處理數

網絡倉庫是一個借助先進通信設備可以隨時調動所需物資的若干倉庫的總和。它改變了傳統的倉儲觀念,可以覆蓋很大的地域,使用網絡,根據訂貨的數量和距離,在最短的時間內選擇一個距離最近并且有足額庫存的倉庫完成發貨。網絡倉庫是現代信息技術的產物,它迎合了經濟發展的需求,通過統籌資源,節省了時間和費用,提高了效率。在網購高峰期,單量劇增,為了確保物流單的順利快速流轉,需要對各個系統接口進行測試,找出網絡倉庫系統的性能瓶頸并進行調優,因此對網絡倉庫系統的性能測試意義重大。本文介紹如何使用自動化測試工具LoadRunner對某公司的網絡倉庫系統進行性能測試和性能調優,使其滿足性能需求。

1.網絡倉庫系統性能測試概述

1.1 性能測試工具LoadRunner簡介

性能測試是使用自動化測試工具模擬多種正常、峰值以及異常負載條件對系統的各項性能指標進行測試,而LoadRunner作為常用的自動化測試工具,可以模擬上千萬用戶實施并發負載及實時性能監測的方式來確認和查找問題,優化性能。同時,它能支持廣泛的協議和技術,為客戶的特殊環境提供特殊的解決方案,確保系統獲得良好的體驗[1]。LoadRunner性能測試的流程如下。

1.1.1 制定測試計劃 根據系統的需求規格說明書,制訂測試的具體計劃,列出測試指標,如系統的吞吐量、每秒事務處理數TPS(Transaction Per Second)、響應時間RT(Response Time)、并發用戶數等,并寫出相應的性能測試報告。

1.1.2 錄制并完善測試腳本 根據用戶性能測試需求,錄制測試腳本,將用戶的實際操作加入到測試腳本中,進行錄制,當錄制完一個基本的用戶腳本后,在正式使用前還需要完善測試腳本,增強腳本的靈活性。常用的完善測試腳本的方法有:插入事務、插入結合點、插入注解、參數化輸入和關聯化等技術,保證腳本回放,以保證測試結果的真實性和精確性[2]。

1.1.3 實施測試 首先選擇腳本,創建虛擬用戶,設置測試場景,添加windows資源監視窗口和windows性能計數器,其次按照前面的測試用例和場景設置進行場景執行,結合大量的測試數據執行測試腳本,并記錄測試結果。

1.1.4 分析測試結果 測試人員通過測試結果和制定的測試計劃比較判斷系統性能是否達到預期目標,如果測試結果不滿足性能需求,那么就需要測試人員找出系統性能瓶頸,提出優化方案,然后再進行回歸測試,直至系統性能滿足需求。

LoadRunner通過用戶執行被測程序客戶端,在VuGen中錄制被測系統的客戶端和服務器的協議交互,生成腳本,然后在Controller中控制Load Generator,按照場景模擬用戶,對服務器產生壓力,同時對被測系統涉及的操作系統、數據庫、中間件等資源進行監控,收集壓力情況下的資源信息,測試結束后形成測試結果和監控數據,在結果分析器Analysis中進行分析,最后生成測試結果報告[3]。

1.2 網絡倉庫系統性能測試及優化

1.2.1 網絡倉庫系統架構 網絡倉庫系統的壓測環境部署在一臺機器上,由一個Nginx做負載,兩個Tomcat運行業務程序,數據庫使用Oracle。

1.2.2 系統測試過程中出現TPS不穩定,呈現周期性的劇烈抖動現象,見圖1。

首先檢查測試腳本本身的代碼是否存在問題。如報文數據的組裝、HSF服務的調用等。進而測試以下方面并進行相應的優化:①檢查HSF服務和MetaQ環境:通過檢查HSF服務沒有問題,MetaQ的環境也正常,通過排查發現是用于監控數據的Hbase服務出現問題。②檢查負載Nginx和應用服務器Tomcat,配置Nginx與Tomcat之間的長連接,以提升性能。③優化應用程序:首先將業務處理分離為兩部分:接收訂單部分和處理訂單部分。其中接收訂單部分只接收訂單,然后入庫,然后就返回響應;訂單處理部分就是跑后臺任務,去查詢接收到的訂單表,然后最后續的業務操作。其次設置ID鎖:為了產生全局唯一的ID,java代碼里面使用了synchronized來加鎖產生ID,在并發量大時,這會阻塞程序的運行的,可以改用oracle的sequence來產生唯一ID,去掉java代碼中的鎖程序。最后配置連接池:對應用程序的連接池的大小進行合理的配置,并且保證應用程序所有的數據庫操作的連接都從連接池中取,且需要保證從連接池中取的連接使用完成后都要在finally代碼塊中進行close。④優化數據庫:首先對數據庫的連接數、緩存大小等進行配置,保證有足夠的連接數可用,提升數據庫的效率。其次讀寫分離:使用主庫與備庫的架構,寫操作在主庫上執行,讀操作在備庫上操作,數據有主庫同步到備庫(mysql基于binlog來同步,oracle使用redolog來同步)。再次設置報表,把報表放在備庫上進行,且并發的高峰期,需要暫時停止報表服務。最后使用索引,保證表有索引,提升查詢效率。

經過優化和反復壓測比較,在不增加機器、不改變現有架構的條件下,250的并發用戶數,得到了平均445的TPS,RT平均為70 ms。具體見圖2。

3.結束語

在軟件性能測試及優化過程中,測試環節中的細節往往很重要,本文通過理論并借助實際的網絡倉庫系統作為測試對象,根據需求制定測試計劃,使用LoadRunner實施性能測試,并對測試結果進行分析,針對發現的問題提出了改進優化的方法,使系統的性能得到了提高。

參考文獻:

[1] 戴曉婧,張寧.基于LoadRunner的數據分析平臺的性能測試及優化[J].計算機技術與發展,2013,23(7):202-206,210.

[2] 段念.軟件性能測試過程詳解與案例剖析[M].北京:清華大學出版社,2006.

[3] 溫艷東.軟件性能測試需求的獲取方法綜述[J].軟件工程師,2010(2):124-127.

猜你喜歡
性能測試
Hadoop性能測試自動化研究
關于Java軟件的性能測試分析
自動扶梯主驅動鏈條性能測試分析與潤滑保養
車聯網專用短程通信技術
關于聚羧酸系減水劑的性能論述
黃麻、洋麻纖維性能研究
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合