?

基于loadrunner物流信息交易平臺的性能測試與改進

2016-05-19 14:15王閱軍衛文學
電腦知識與技術 2016年7期

王閱軍++衛文學

摘要:為了改善物流行業信息化存在的問題,物流公司開始構建物流信息交易平臺,由于數據量巨大,平臺的性能極其需要保證。該文以魯南物流信息交易平臺作為此次的測試對象,針對信息交易平臺的功能和性能特點,以及用戶的需求,和客戶管理要求,制訂了詳盡的測試方案,之后使用自動化性能測試工具loadrunner 對信息平臺進行性能測試,并對測試結果進行了詳細的分析,找出了系統存在的瓶頸,并對問題進行改進,提高物流信息交易平臺的工作效率,滿足用戶的基本需求和客戶要求。

關鍵詞:物流信息交易平臺;負載測試;自動化性能測試工具

中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2016)06-0079-02

Based on Loadrunne Performance Test of Logistics Information Trading Platform

WANG Yue-jun, WEI Wen-xue

(Shandong University of Science and Technology Institute of Information Science and Engineering,Qingdao 266590, China)

Abstract: In order to improve the problems existing in the logistics industry informatization, the logistics company began to build a logistics information platform, because of the huge amount of data, the performance of the platform need to guarantee. Based on great logistics information exchange platform as the test object, in accordance with the functional and performance features of the information exchange platform, and the user's requirements, and customer management requirements, formulate the detailed test plan, then using the automatic performance test tools loadrunner to performance test of information platform, and the test results are analyzed in detail, finding out the system bottlenecks, and to improve the problem, improve the working efficiency of the logistics information platform, basic meet user needs and customer requirements.

Key words: logistics information trading platform; load tests; automated performance testing tool

如今,物流行業的信息化程度還比較低,大部分從事物流的企業還處在傳統的運作階段,表現為分散、低效的物流組織形式,粗放式經營的狀況。通過建立“魯南國際物流園區信息平臺”,可以使商流、物流、資金流和信息流在物流信息系統的支持下實現互動,從而提供準確和及時的物流信息服務,提高社會物流運作效率。為了保證信息交易平臺的工作效率,使其為物流行業創造出更大的價值,需要通過性能測試找出系統性能瓶頸并進行調優。

傳統測試的測試方法是編程人員和測試人員同時登陸平臺并進行相應的操作,觀察瀏覽器響應速度的快慢,如果瀏覽器反應速度慢,對平臺的各個模塊進行單獨測試,查找瓶頸所在并修改。傳統方法浪費大量的人力物力,增加了研發成本,加長了開發周期。目前,自動化測試軟件在市場上紛涌而出、種類繁多。其中,Loadrunner是惠普公司的一款適應于各種體系框架的預測系統行為和性能的負載測試工具。Loadrunner是一種黑盒測試工具,通過模擬實際用戶的操作錄制的軟件腳本,將模擬出的用戶用并發負載并實時性能監測的方式來確定和查找問題,在測試完之后,Loadrunner自動生成檢測報告(PDF格式或HTML格式)[1]。通過使用loadrunner,企業能最大限度地縮短測試時間,優化性能并加速應用系統的發布周期。

1 Loadrunner工作原理

Loadrunner 11工作過程大致分為五個步驟:規劃負載、錄制腳本、定義場景、執行場景和分析結果[2]。規劃負載:定義性能測試要求(定義自己理想情況下的平均事務響應時間),可以在執行場景下,觀察服務器的CPU利用率來決定;錄制腳本:錄制實際用戶對軟件的操作;定義場景:設定模擬人數,初始時間,結束時間等環境,如圖1所示;執行場景:實時監控,管理人數;分析結果:將結果導出,對結果進行處理。其中,錄制腳本在Virtual User Generator模塊中,定義場景和執行場景屬于Controller模塊,Analysis模塊包含分析結果過程。

通過Controller實時監控,測試人員用Analysis來分析評估軟件或網站的性能。分析測試結果是loadrunner中最關鍵的一部分,它將運行Controller的檢測圖生成報告,用來查看網站或軟件性能參數。測試人員在測試報告中看見四大類表圖:Vusers圖、事務響應時間圖、Web資源圖和系統資源圖。

2 測試過程

測試用例應主要以用戶需求為基礎,驗證正確的功能和建立能暴露潛在錯誤并分析應確定哪些軟件結構未被運行。

本次性能測試主要對象是系統登錄、園區資源管理、園區日程管理、園區綜合服務管理、輔助決策五個方面。按照負載測試計劃,根據用戶需求錄制各個模塊腳本,以固定時間增加運行人數,觀察Vusers圖、事務響應時間圖、Web資源圖和系統資源圖的變化確定系統最大承受能力。

具體操作說明: 以 15 秒鐘為運行階梯逐一遞增 10個虛擬用戶,當系統任一主機 CPU 使用率在運行階梯內的平均值高于 100% 或者總體事務錯誤率在運行階梯內的平均值首次大于 1%,停止測試,觀察虛擬人數數量,web服務器和數據庫服務器CPU的利用率[3]。

3 測試結果分析

當自動化測試工具對物流信息交易平臺進行性能測試之前,測試人員需要配置測試環境網絡,一些系統參數,否則,這樣的測試結果沒有必要分析。

在確定分析接獲之后,就是對測試數據進行深度挖掘,一般測試人員遵循的普遍原則是“由外而內,由表及里,層層深入”[4]。例如,最終用戶體驗交易響應時間到網絡和服務器響應交易時間(系統性能響應時間),再到各組件的性能。

通過Loadrunner的分析組件Analysis,根據測試原則“由外而內,由表及里,層層深入”進行分析,快速定位問題。如圖2可以看出問題出現在事務活動。

分析組件Analysis可以直觀地看出在測試時間內事務的成功與失敗情況,所以比第一步更容易判斷出被測系統運行是否正常。然后分析事務平均響應時間(Average Transaciton Response Time),若事務平均響應時間曲線趨高,則說明被測系統處理事務的速度開始逐漸變慢,即被測系統隨著運行時間的變化,整體性能不斷下降。當系統性能存在問題時,該曲線的走向一般表現為開始緩慢上升,然后趨于平穩,最后緩慢下降。原因是:被測系統處理事務能力下降,事務平均響應時間變長,在曲線上表現為緩慢上升;而并發事務達到一定數量時,被測系統無法處理多余的事務,此時曲線變現為趨于平穩;當一段時間后,事務不斷被處理,其數量減少,在曲線上表現為下降。如果被測系統沒有等待機制,那么事務響應時間會越來越長,最后系統崩潰。如圖3所示。

根據錄制腳本和Loadrunner的分析組件Analysis的數據,測試人員可以在日志看見出錯最多的action編號,找到相應的腳本,查找發生的問題的代碼或配置。

4 Loadrunner定位問題及分析問題

測試對軟件來說事關重要,從軟件需求開始每一步都要得到認證、評估、需求。對于軟件的缺陷發現的越早對于軟件開發公司和客戶公司的風險和成本越少。每個階段都有每個階段的測試,數據庫有數據庫的性能測試,代碼冗余等。

軟件的性能測試主要集中在數據庫和代碼。首先,數據庫表結構設計出現問題,表與表缺乏有效的連接。多數情況下,表與表的連接是主鍵和外鍵的連接。但是當出現錯誤或需求變更時,表與表的連接斷開或丟失導致程序無法運行,項目組把表與表的連接用顯示連接或隱式鏈接防止表的刪除或添加導致數據庫的查詢降低,減少客戶的體驗;表冗余或表內容冗余,例如水電費的單價和費用,各種車輛表格統計;低效率的SQL語句同樣降低數據庫的性能,例如多個項目表用AND連接:

SELECTHFlexibleFee.ChargeItemName,HFlexibleFee.Amount, dMember.MembNo,HFlexibleFee.ReceivableTime,Member.MembName,HFlexibleFee.HFlexibleFeeGUID,

IndustryType.IndustryTypeName,HFlexibleFee.IfPaid,Member.TransIDCardNo

FROMHFlexibleFee,Member,IndustryType

WhereHFlexibleFee.MembGUID=Member.MembGUIDAND

Member.IndustryTypeNo=IndustryType.IndustryTypeNo

另一個方面,數據庫的配置參數也是數據庫性能問題的表現,數據庫的大小會對數據庫的緩存等造成負載,造成頁面響應緩慢、網頁找不到等現象。

代碼的書寫和邏輯也是影響軟件性能的方面。軟件邏輯的好壞關系到處理器處理的速度,同樣的list語句,第一個list.addAll(queryObject.list())方法被調用,與第二個Lista=queryObject.list()方法被調用,把第一個list直接賦值在前臺顯示會出現錯誤但第二個list與第一個list一樣賦值就不會出現錯誤。關于不同的語言計算機處理的速度各不相同。一般情況,除二進制語言,匯編語言是我們常用語言但也隨時間的變化退出時代的舞臺;C或C#是我們常用的語言,計算機對它們的處理速度遠遠高于其他的編程語言。

性能測試結果表明系統存在嚴重的性能問題。響應時間遲緩,內存占用過多,不能支持大量的數據請求,在大量用戶并發訪問的情況下系統崩潰。應該注意每一行代碼的效率,所謂“積少成多,滴水穿石”,一些看似細小的問題可以經過多次的執行累積成一個大問題。就是一個量變到質變的過程。

5 結束語

通過性能測試,軟件測試的目的就是發現各種缺陷,測試在正常工作的狀態下工作量非常大,實現起來非常困難。從性能測試軟件的腳本發現,軟件某模塊運行不正常,代碼冗余造 成服務器負載運行:在有限的時間內,有限的測試資源下,想證明程序在所有情況下都能正常工作是不可能的。因此自動化性能測試工具并發的、穩定的、最大吞吐量的對已開發的軟件進行全面的具體的測試,驗證事務響應時間是否滿足用戶的需求。同時,在測試環境求出最大吞吐量與合適的響應時間,保留對軟件的擴展空間而超出正常范圍的測試。

參考文獻:

[1] 趙斌.軟件測試技術經典教程[M]. 2版.北京:科學出版社,2011.

[2] 蓸晉元. LoadRunner在軟件性能測試中的應用[J].電腦開發與應用,2008,21(5):36-37.

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

[4] 陳紹英,劉建華,金成姬.Loadrunner性能測試實戰[M]. 北京: 電子工業出版社, 2007.

91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合