陳夢云, 高建華
(上海師范大學(xué) 信息與機電工程學(xué)院,上海 200234)
?
基于LoadRunner的理財平臺的性能測試
陳夢云, 高建華
(上海師范大學(xué) 信息與機電工程學(xué)院,上海 200234)
基于LoadRunner的理財平臺,設(shè)計了一種對軟件的接口進(jìn)行性能測試的方案,并將該方案用于上海佐昊網(wǎng)絡(luò)科技有限公司理財平臺的交互接口的性能測試.結(jié)果表明:不同場景下系統(tǒng)接口的性能特性不同,并發(fā)用戶數(shù)為40個時TPS和CPU使用率等各項性能指標(biāo)處于最佳狀態(tài);并發(fā)用戶數(shù)為50個時CPU成為系統(tǒng)需要處理的瓶頸;證明了該方案的有效性.
LoadRunner; 性能測試; 性能特性; 瓶頸
在軟件開發(fā)中,為了生產(chǎn)一個高度穩(wěn)定可靠且具有高速數(shù)據(jù)處理能力的平臺系統(tǒng),軟件產(chǎn)品的性能容量評估工作越來越受重視.從已有的相關(guān)文獻(xiàn)來看,戴曉婧[1]和李怡[2]提出的基于LoadRunner的性能測試方案都是針對具有良好用戶圖形界面的網(wǎng)站進(jìn)行性能測試,這些方案雖然對其他類似系統(tǒng)的性能測試具有通用性,但卻不適用于沒有用戶圖形界面的系統(tǒng)接口的性能測試.針對以上問題,本文通過創(chuàng)建靜態(tài)請求頁面,將前臺系統(tǒng)請求參數(shù)以json數(shù)據(jù)格式經(jīng)請求頁面?zhèn)鬟f到指向后臺系統(tǒng)的url,同樣,響應(yīng)數(shù)據(jù)以json數(shù)據(jù)格式返回前臺系統(tǒng),采用該方法取代具有良好用戶圖形界面的交互操作,并對該交互接口進(jìn)行性能測試.本文作者結(jié)合上海佐昊網(wǎng)絡(luò)科技有限公司開發(fā)的理財平臺項目,利用LoadRunner對理財平臺前后臺系統(tǒng)的交易接口進(jìn)行性能測試,并對測試結(jié)果進(jìn)行數(shù)據(jù)分析,并提出優(yōu)化策略.
1.1性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試,用于驗證軟件系統(tǒng)是否能夠達(dá)到用戶提出的性能指標(biāo),或找出軟件系統(tǒng)中存在的性能瓶頸,并通過優(yōu)化軟件,最終起到優(yōu)化系統(tǒng)的目的.通常情況下,性能測試關(guān)注的幾個主要的Web服務(wù)器性能指標(biāo)包括并發(fā)用戶數(shù)、吞吐率、每秒事務(wù)處理量(TPS)、響應(yīng)時間和CPU利用率等.
1.2LoadRunner
LoadRunner主要由虛擬用戶生成器(VUG),控制器和分析器等組件構(gòu)成.在性能測試過程中,首先通過捕獲最終用戶業(yè)務(wù)流程,創(chuàng)建性能測試腳本.然后使用控制器設(shè)置場景,調(diào)度虛擬用戶,并運行場景.場景運行結(jié)束后,打開分析器,便可查看、剖析和比較性能結(jié)果.
使用LoadRunner進(jìn)行負(fù)載測試一般包括5個階段:(1) 規(guī)劃負(fù)載測試,用于定義性能測試要求,例如并發(fā)用戶數(shù)量、典型業(yè)務(wù)流程和要求的響應(yīng)時間;(2)創(chuàng)建Vuser 腳本,用于錄制最終用戶活動;(3)定義場景,使用控制器設(shè)置負(fù)載測試環(huán)境;(4)運行場景,使用控制器驅(qū)動、管理并監(jiān)控負(fù)載測試;(5)分析結(jié)果,使用分析器創(chuàng)建圖和報告并評估性能.
圖1 上海佐昊網(wǎng)絡(luò)科技有限公司理財平臺的架構(gòu)拓?fù)鋱D
本實驗對象是上海佐昊網(wǎng)絡(luò)科技有限公司開發(fā)的理財平臺項目.平臺的架構(gòu)拓?fù)鋱D如圖1所示.該平臺由甲、乙兩個項目組開發(fā),其中甲項目組開發(fā)面向用戶的前臺系統(tǒng),此系統(tǒng)主要通過調(diào)用后臺數(shù)據(jù)完成用戶的理財投資業(yè)務(wù).乙項目組開發(fā)理財產(chǎn)品管理系統(tǒng),主要負(fù)責(zé)金融機構(gòu)、理財產(chǎn)品和訂單相關(guān)信息的管理.在測試環(huán)境中,前臺系統(tǒng)與后臺系統(tǒng)通過接口進(jìn)行交互,能夠順利完成用戶的理財投資等交易業(yè)務(wù).
為了保障軟件產(chǎn)品的質(zhì)量,測試環(huán)境中需要對前臺系統(tǒng)與后臺系統(tǒng)交互的核心功能模塊或使用頻率高的功能模塊進(jìn)行性能測試.本項目的前、后臺系統(tǒng)主要包含產(chǎn)品可用庫存查詢、金融機構(gòu)信息同步、理財產(chǎn)品信息同步、訂單確認(rèn)和訂單批量查詢等多個交互接口功能模塊.以產(chǎn)品可用庫存查詢接口為例,詳細(xì)介紹了利用LoadRunner對該接口進(jìn)行性能測試的實現(xiàn)過程,分析了不同負(fù)載下該接口的性能特性.由于其他接口的性能測試方法類似,不再重復(fù)詳述.
根據(jù)項目開發(fā)的接口規(guī)范,本方案將前臺系統(tǒng)與后臺系統(tǒng)交互接口的請求參數(shù)和響應(yīng)參數(shù)以json數(shù)據(jù)格式進(jìn)行傳遞.在測試過程中,本方案首先創(chuàng)建一個靜態(tài)頁面,將請求參數(shù)封裝成json數(shù)據(jù)格式發(fā)送到指向后臺系統(tǒng)的url,并使用LoadRunner檢測后臺服務(wù)器返回響應(yīng)數(shù)據(jù)的性能指標(biāo).采用此方案便可完成系統(tǒng)接口性能特性的評估,并能夠幫助開發(fā)人員更快地查找和發(fā)現(xiàn)問題,最終達(dá)到優(yōu)化系統(tǒng)的目的.
3.1確定測試目標(biāo)
為了檢測理財平臺的前臺系統(tǒng)與后臺系統(tǒng)交互接口處理交易事務(wù)的能力是否能夠達(dá)到預(yù)期的性能目標(biāo),以及找出系統(tǒng)可能存在的性能瓶頸,本方案實驗測試的目標(biāo)包含如下三方面:
(1) 不同負(fù)載下,檢測系統(tǒng)每秒系統(tǒng)處理事務(wù)數(shù)(TPS)、平均事務(wù)響應(yīng)時間和 CPU利用率等各項性能指標(biāo);
(2) 隨著系統(tǒng)負(fù)荷增大,探測系統(tǒng)的瓶頸;
(3) 評估系統(tǒng)接口最佳性能狀態(tài)及其穩(wěn)定性.
3.2設(shè)計測試用例
根據(jù)測試需求,設(shè)計測試用例.本產(chǎn)品可用庫存查詢接口的測試用例,如表1所示.
本方案利用LoadRunner對理財平臺的可用庫存查詢接口進(jìn)行性能測試,重點關(guān)注以下3個問題:
(1) 在不同并發(fā)用戶條件下,探測系統(tǒng)各性能特性;
(2) 探測可用庫存查詢接口的瓶頸,分析產(chǎn)生瓶頸的原因;
(3) 評估可用庫存查詢接口的最佳性能狀態(tài)及該狀態(tài)下系統(tǒng)的穩(wěn)定性.
表1 產(chǎn)品可用庫存查詢接口的測試用例
3.3.1創(chuàng)建請求頁面
圖2 靜態(tài)請求頁面部分代碼
根據(jù)項目文檔提供接入后臺系統(tǒng)的url,創(chuàng)建靜態(tài)請求頁面,如圖2所示,其中文本域jsonObj對象用于填寫產(chǎn)品可用庫存查詢接口的以json數(shù)據(jù)格式輸入的請求參數(shù),等價于WEB頁面表單的輸入.
3.3.2創(chuàng)建腳本
打開 LoadRunner中的Virtual User Generator,本方案將產(chǎn)品可用庫存查詢操作設(shè)置為一個事務(wù),通過事務(wù)函數(shù)用來標(biāo)記完成該查詢業(yè)務(wù)所需要的操作內(nèi)容以及用來統(tǒng)計用戶操作的響應(yīng)時間,即在事務(wù)開始前后分別加入Ir_start_transaction()函數(shù)和Ir_end_transaction()函數(shù),如圖3所示.
作為國表藝術(shù)跨界營銷的引領(lǐng)者,依波曾與女子十二樂坊、魏松等著名藝術(shù)團(tuán)體、藝術(shù)家合作,2018年,“依波藝術(shù)時光”再啟,攜手超人氣多媒體藝術(shù)展《印象莫奈:時光映跡藝術(shù)展》推出莫奈定制款腕表引爆全網(wǎng),讓更多人領(lǐng)略精藝腕表與藝術(shù)名家的魅力。這不僅標(biāo)志著國表藝術(shù)跨界營銷的新突破,更讓藝術(shù)跨越時間長河,讓時間沉淀藝術(shù)之美。
圖3 測試運行的腳本代碼
3.3.3設(shè)置場景
打開 LoadRunner控制器,選擇以上創(chuàng)建的腳本,按照如下3個步驟,進(jìn)行場景設(shè)置,并運行場景.
(1) 并發(fā)用戶分別設(shè)置為10、20、30、40 和50.
(2) 用戶調(diào)度策略:每15 s加載2個用戶.
(3) 全部用戶加載完成之后,持續(xù)運行5 min.
3.3.4結(jié)果分析
場景運行結(jié)束后打開LoadRunner分析器,查看系統(tǒng)結(jié)果分析報告和各性能指標(biāo)分布圖,評估系統(tǒng)接口性能特性.
4.1實驗數(shù)據(jù)分析
根據(jù)LoadRunner分析器的分析報告和性能指標(biāo)分布圖,統(tǒng)計5組場景的性能指標(biāo)數(shù)據(jù),結(jié)果如表2所示.
表2 實驗結(jié)果
由表2實驗數(shù)據(jù)可知,當(dāng)并發(fā)用戶數(shù)從10個逐漸增大到40個時,后臺接口的性能指標(biāo)TPS由119.442增大到241.799,平均事務(wù)響應(yīng)時間由0.073 s逐漸增大到0.106 s,并且吞吐率和TPS的變化大體一致,則說明在服務(wù)器資源充足的情況下,TPS與并發(fā)用戶數(shù)存在很強的正相關(guān)關(guān)系,后臺系統(tǒng)平均事務(wù)響應(yīng)時間足夠迅速,系統(tǒng)性能基本穩(wěn)定.同時平均事務(wù)響應(yīng)時間、TPS、平均吞吐率和 CPU利用率等性能指標(biāo)都隨著并發(fā)用戶數(shù)的增加呈上升趨勢,但均在正常范圍內(nèi),系統(tǒng)表現(xiàn)良好.
圖4 并發(fā)用戶為50個的結(jié)果概要圖
當(dāng)并發(fā)用戶數(shù)設(shè)置為50個時,測試過程中因出現(xiàn)超時錯誤導(dǎo)致服務(wù)器不能正常響應(yīng)用戶的請求.由圖4性能概要圖可知該場景下各性能指標(biāo)數(shù)據(jù),并測得CPU利用率到達(dá)92.7%,在內(nèi)存充足的情況下,CPU已成為系統(tǒng)需要處理的瓶頸,本項目可以通過增加處理器或換成更快的處理器來改善系統(tǒng)的性能.
在服務(wù)器正常工作范圍內(nèi),隨著虛擬用戶數(shù)目增加,綜合分析CPU使用率和TPS值,得出當(dāng)并發(fā)用戶數(shù)為40個時,系統(tǒng)性能處于最佳狀態(tài).由圖5可知,在該場景下,后臺系統(tǒng)接口最大平均處理事物數(shù)為327,平均處理事物數(shù)為241.799,而項目需求的TPS為200,超出了預(yù)期的性能要求;由圖6可知,在該場景下,平均事務(wù)響應(yīng)時間為0.106 s,標(biāo)準(zhǔn)差為0.021 s,系統(tǒng)能夠迅速響應(yīng)目標(biāo)用戶的請求;并且吞吐率和TPS呈正比變化,吞吐率和TPS的變化趨勢大體一致,該場景下系統(tǒng)相對穩(wěn)定.
圖5 TPS指標(biāo)分布圖
圖6 平均事務(wù)響應(yīng)時間指標(biāo)分布圖
4.2優(yōu)化策略
本項目性能測試主要關(guān)注的性能指標(biāo)是前臺系統(tǒng)和后臺系統(tǒng)接口處理事務(wù)能力,為了增大系統(tǒng)的TPS,可采取以下優(yōu)化策略:
(1) 利用消息中間件,控制多臺服務(wù)器,改善系統(tǒng)承載能力,達(dá)到實際需求的TPS;
(2) 考慮數(shù)據(jù)庫查詢對系統(tǒng)的性能的影響,對代碼進(jìn)行改善,將一些復(fù)雜的查詢語句(或函數(shù))改為一些簡單高效的查詢語句(或函數(shù)),從而減少系統(tǒng)響應(yīng)時間,提高TPS.
(3) 找出因網(wǎng)絡(luò)延遲導(dǎo)致系統(tǒng)性能下降的因素,做一定的改善工作,從而提高系統(tǒng)性能.
介紹了基于LoadRunner的理財平臺的性能測試,設(shè)計了一種對軟件的接口進(jìn)行性能測試的方案,該方案與已有方案的主要不同之處在于其通過創(chuàng)建靜態(tài)頁面取代具有良好圖形用戶界面的網(wǎng)站頁面,以及以json數(shù)據(jù)格式代替?zhèn)鹘y(tǒng)的以表單輸入形式進(jìn)行請求和應(yīng)答數(shù)據(jù)交互操作,應(yīng)用該測試方案能夠在系統(tǒng)開發(fā)期間了解系統(tǒng)各接口模塊的性能,并及時對各瓶頸加以改善或優(yōu)化,從而降低測試成本.將該方案對上海佐昊網(wǎng)絡(luò)科技有限公司的理財平臺的交互接口進(jìn)行性能測試,通過對結(jié)果數(shù)據(jù)的分析,評估了不同負(fù)載下理財平臺交互接口的性能特點,驗證了該方案的可行性和正確性,并提出優(yōu)化策略.
如何制訂更加高效完備的性能測試流程方案,以及利用LoadRunner對功能復(fù)雜的接口進(jìn)行性能測試,將是下一步的研究工作.
[1]Dai X J,Zhang N.Performance testing and optimization of data analysis platform based on loadRunner [J].Computer Technology and Development,2013,23(7):202-206.
[2]Li Y,Zhou G X.New flow ofperformance testing based on LoadRunner [J].Application Research of Computers,2009,26(11):4143-4145.
[3]Yang P,Li J.Using LoadRunner to test web′s load automatically [J].Computer Technology and Development,2007,17(1):242-244.
[4]Li Y Q,Chen Y H,Guo B S.Survey of performance testing based on web application system [J].Computer Knowledge and Technology,2010,6(28):8014-8017.
[5]Zhang W S.Research on stress testing of administrative examination and approval system based on LoadRunner [J].Computer Knowledge and Technology,2007,3(18):1659-1660.
[6]Wang H.Research and application of web performance testing and optimization technology [D].Zhengzhou:Zhengzhou University,2012.
[7]Kong P.Website performance test with the LoadRunner [D].Beijing:Beijing Jiaotong University,2011.
[8]Zhang F,Liu Q F,He Y J.LoadRunner tool for applied research in the performance test [J].Computer Knowledge and Technology,2012,8(3):1567-1570.
[9]Li B.Performance testing of CRM system based on LoadRunner [J].Computer and Digital Engineering,2012,4(40):133-135.
[10]Hao J Y,Yan H H.Effective web performance testing method and its application [J].Application Research of Computers,2007,24(1):275-277.
[11]Chen X Y.The research of web performance testing and LoadRunner application [D].Beijing:Beijing University of Posts and Telecommunications,2009.
[12]Wang J Y,Ma B R,Liu H N.Developing the web-based software for network performance [J].Computer Engineering,2001,27(2):128-130.
[13]Ding Y H,Wang F L.Performance testing of software based on web [J].Computer And Digital Engineering,2006,4(1):47-48.
(責(zé)任編輯:包震宇)
Performance testing of the finance platform based on LoadRunner
CHEN Mengyun, GAO Jianhua
(College of Information and Mechanical and Electrical Engineering,Shanghai Normal University,Shanghai 200234,China)
In this paper,a performance testing scheme is designed to test the software interface of the financial management platform based on LoadRunner,and the scheme has been used for the performance testing of the interactive interface of the financial management platform of Shanghai Zuo Hao Network Technology Co.Ltd.The result shows that the performance characteristics of the system interface are different under different scenarios,and TPS and CPU usage performance characteristics are in an optimal status when the number of concurrent users is 40,while CPU becomes the bottleneck which is need to be addressed by system when the number of concurrent users is 50.At last,the effectiveness of the scheme has been proved.
LoadRunner; performance testing; performance characteristics; bottleneck
10.3969/J.ISSN.1000-5137.2016.04.007
2015-03-11
國家自然科學(xué)基金(61073163);上海市企業(yè)自主創(chuàng)新專項資金(滬CXY-2013-88)
高建華,中國上海市徐匯桂林路100號,上海師范大學(xué)信息與機電工程學(xué)院,郵編:200234,E-mail:jhgao@shnu.edu.cn.
TP 311
A
1000-5137(2016)04-0428-06