喬志杰 田劍
摘要:隨著Web應(yīng)用范圍不斷擴(kuò)大,對(duì)Web的性能測(cè)試顯得尤為重要?,F(xiàn)有Web性能測(cè)試中只考慮了系統(tǒng)吞吐量、平均事務(wù)響應(yīng)時(shí)間等性能指標(biāo),并沒有考慮到用戶在操作過程當(dāng)中的實(shí)際問題。本文從用戶角度出發(fā),充分考慮用戶訪問特征,將用戶訪問時(shí)的思考時(shí)間融入到Web性能測(cè)試中,以提高性能測(cè)試的可靠性。本文通過LoadRunner性能測(cè)試工具對(duì)自帶的飛機(jī)訂票系統(tǒng)進(jìn)行了測(cè)試驗(yàn)證,驗(yàn)證結(jié)果表明了本文方法的有效性。
關(guān)鍵詞:性能測(cè)試;思考時(shí)間;LoadRunner
中圖分類號(hào):TP391文獻(xiàn)標(biāo)識(shí)號(hào):A 文章編號(hào):2095-2163(2015)04-
A Web performance test model based on User access to features
Qiao Zhijie, Tian Jian
(Sinopec Northwest oil field branch,Urumqi 830011, China)
Abstract:
As Web application scope expands unceasingly, the Web performance test is particularly important.Existing Web performance tests only considers the system throughput, the average transaction response time, such as performance index, did not take into account the user in the operating process of the practical problems.This article from the perspective of the user, fully considering the user access to features, integrates the user think time when access into the Web performance test, in order to improve the reliability of the performance test.In this article, through LoadRunner performance test tool for aircraft booking system test verification, validation results show the validity of this method.
Key words: Performance Testing;Think Time;LoadRunner
0 引言
Web系統(tǒng)以其廣泛性、交互性和易用性等特點(diǎn)迅速風(fēng)靡世界,且呈現(xiàn)出指數(shù)級(jí)的高度增長(zhǎng)[1]。隨著需求量應(yīng)用領(lǐng)域的日漸擴(kuò)大,即針對(duì)基于Web的軟件和系統(tǒng)的正確性、有效性也相應(yīng)提出了越來越高的質(zhì)量要求,Web測(cè)試已經(jīng)成為軟件工程領(lǐng)域的重點(diǎn)研究課題[2-4]。Web系統(tǒng)應(yīng)用如果能保證用戶訪問的安全可靠、準(zhǔn)確快速,將會(huì)成為整個(gè)計(jì)算機(jī)軟件系統(tǒng)發(fā)展中取得的又一重大突破[5-7]。如果在Web系統(tǒng)開發(fā)過程中的性能缺陷可以通過系統(tǒng)測(cè)試進(jìn)行正確、及時(shí)的定位,即能減少系統(tǒng)的潛在風(fēng)險(xiǎn),而且也可為系統(tǒng)的優(yōu)化、開發(fā)和原有系統(tǒng)的更新提供基礎(chǔ)技術(shù)依據(jù),同時(shí)更對(duì)系統(tǒng)的發(fā)展完善與長(zhǎng)期使用具有至關(guān)重要的標(biāo)志性意義。性能是決定Web應(yīng)用程序成功與否的重要因素之一,從用戶角度來說性能有時(shí)比功能更為重要。為了提高系統(tǒng)性能,Web性能測(cè)試即已成為Web應(yīng)用研究性能問題的首要步驟[8-10]。Zona一份研究報(bào)告的數(shù)據(jù)統(tǒng)計(jì),頁(yè)面的下載時(shí)間減少1秒,用戶放棄率將從30%下降到6%-8%;而由于性能問題,超過34%的用戶沒有從最初訪問的網(wǎng)站購(gòu)買商品,特別地其中有21%的用戶后來則從別的網(wǎng)站購(gòu)買了商品。因此,要保證基于Web的系統(tǒng)達(dá)到預(yù)期的性能,開發(fā)過程必須進(jìn)行性能測(cè)試。
本文從Web性能測(cè)試模型出發(fā),通過研究用戶訪問特征,將用戶訪問中的思考時(shí)間,響應(yīng)時(shí)間等因素融入到Web性能測(cè)試模型中,提高了Web性能測(cè)試的可靠性與準(zhǔn)確性。
1 基于用戶訪問特征的測(cè)試模型
1.1 Web性能測(cè)試
性能測(cè)試的主要目的是為了維護(hù)系統(tǒng)的性能并找到有效的改善策略。在進(jìn)行Web應(yīng)用性能測(cè)試時(shí),以下因素將成為影響性能測(cè)試的瓶頸:真實(shí)環(huán)境與測(cè)試環(huán)境差異大,負(fù)載的不確定性,模擬真實(shí)環(huán)境困難和模擬真實(shí)用戶行為困難等。
目前,主要用吞吐量、響應(yīng)時(shí)間、資源利用率、并發(fā)用戶數(shù)和TPS等來作為衡量Web系統(tǒng)性能的技術(shù)指標(biāo),即通過這些指標(biāo)分析出系統(tǒng)性能的好壞?,F(xiàn)有測(cè)試模型盡管考慮比較周到,但并沒有從用戶的實(shí)際行為出發(fā),同時(shí)也缺少對(duì)用戶的特征的分析。Web性能測(cè)試指標(biāo)并不是各自獨(dú)立地發(fā)揮作用,而是具有一種相互影響、相互依存的綜合性效果作用。因此,充分考慮用戶實(shí)際行為即對(duì)性能測(cè)試的影響尤顯必要。
1.2用戶訪問特征
差異性存在于萬事萬物之中,用戶訪問特征其實(shí)也是具體操作過程中差異性的體現(xiàn)。因其面向真實(shí)的用戶,所以需要考慮不同用戶的不同操作情況。Web性能測(cè)試通過獲得機(jī)器不同情況下負(fù)載量化分析,由此而得到頻率來展開研究。在性能測(cè)試的過程當(dāng)中,只有虛擬用戶行為特征更加接近真實(shí)情況,才能據(jù)此表示和反映出測(cè)試精度和可靠性。因此,Web性能測(cè)試的用戶訪問特征可從如下方面進(jìn)行考慮:思考時(shí)間,login Session,超時(shí)放棄瀏覽,動(dòng)態(tài)網(wǎng)頁(yè),瀏覽頁(yè)。
1.3融入用戶訪問特征
通過融入用戶訪問特征,將可使模型更能適應(yīng)現(xiàn)實(shí)環(huán)境。結(jié)合用戶訪問特征--思考時(shí)間和超時(shí)放棄瀏覽,本文提出了新的測(cè)試模型?,F(xiàn)對(duì)用戶訪問特征中的重要參數(shù),展開如下論述。
(1)實(shí)際請(qǐng)求時(shí)間
在實(shí)際操作過程中,用戶的請(qǐng)求不是連續(xù)不斷的,而是有停頓思考下一步的時(shí)間,所以兩者需要一同進(jìn)行分析。實(shí)際的請(qǐng)求時(shí)間和事務(wù)平均相應(yīng)時(shí)間具有直接關(guān)系,事務(wù)的平均相應(yīng)時(shí)間越大長(zhǎng),意味著實(shí)際的請(qǐng)求時(shí)間也不會(huì)短。實(shí)際請(qǐng)求時(shí)間超過了用戶可以忍受的范圍之內(nèi),用戶可能會(huì)不想等待就在中途放棄了,這會(huì)直接導(dǎo)致Web訪問的損失。在性能測(cè)試中通過添加真實(shí)的模擬思考時(shí)間,以此來完善原有性能測(cè)試模型的不足。思考時(shí)間還可以通過預(yù)測(cè)得到,基于對(duì)Web系統(tǒng)用戶的信息收集,由此開展分析、并建立模型。在實(shí)際的開發(fā)過程中用到的方法是剔除法和還原法,對(duì)已經(jīng)得到的數(shù)據(jù)進(jìn)行分析和鑒別,并在分析和鑒別的過程中對(duì)用戶的操作進(jìn)行適當(dāng)處理,最后得出預(yù)測(cè)思考時(shí)間。
(2)請(qǐng)求成功率
請(qǐng)求成功率指的就是Web服務(wù)器能夠正確處理的請(qǐng)求數(shù)量和接收到的請(qǐng)求數(shù)量的比值,用來表示有效的請(qǐng)求次數(shù)。請(qǐng)求成功率不是一個(gè)性能指標(biāo)的結(jié)果,而是多個(gè)性能指標(biāo)和性能參數(shù)共同作用的現(xiàn)實(shí)結(jié)果。假如服務(wù)器幾乎達(dá)到了飽和的狀態(tài),而在此基礎(chǔ)上進(jìn)一步增加并發(fā)用戶的數(shù)目,將直接導(dǎo)致實(shí)際的請(qǐng)求時(shí)間隨即增加,最終就使得系統(tǒng)處理請(qǐng)求出現(xiàn)失敗。
(3)最佳并發(fā)用戶數(shù)和最大用戶并發(fā)數(shù)
系統(tǒng)的總體性能達(dá)到最優(yōu)時(shí)可以得出系統(tǒng)的最佳并發(fā)用戶數(shù),此時(shí)系統(tǒng)資源也將獲得充分利用,而且響應(yīng)時(shí)間也即處于用戶可接受的范圍之內(nèi)。系統(tǒng)的負(fù)載能力有限,當(dāng)超過最大用戶并發(fā)數(shù)的臨界值時(shí),用戶的滿意度即會(huì)明顯降低,與之相伴相生的將就是放棄。
除了用戶的訪問特征外,影響Web系統(tǒng)的性能的因素仍有許多,比如用戶的熟練程度,對(duì)同一操作不同的用戶需要的時(shí)間也各不一樣。需要指出的是,每個(gè)用戶的思考時(shí)間對(duì)Web服務(wù)器造成的影響也必然不同,Web系統(tǒng)要考慮到的因素更應(yīng)該將其包括進(jìn)去。
綜上,各種影響因素共同制約了Web系統(tǒng)的性能,本文著重用戶訪問特征,對(duì)比考慮用戶時(shí)間和不考慮用戶思考時(shí)間性能的優(yōu)化情況,以此得到改進(jìn)后的新模型。
2 測(cè)試實(shí)例
本文使用的性能測(cè)試工具為L(zhǎng)oadRunner,測(cè)試Web對(duì)象為L(zhǎng)oadRunner自帶的Web Tours飛機(jī)訂票系統(tǒng)網(wǎng)站,測(cè)試中使用LoadRunner的VuGen發(fā)生器組件生成測(cè)試腳本,同時(shí)使用Controller設(shè)置測(cè)試場(chǎng)景并運(yùn)行測(cè)試,最后使用Analysis組件分析測(cè)試結(jié)果。
測(cè)試目標(biāo)為機(jī)票預(yù)定和機(jī)票查詢時(shí)用戶的并發(fā)訪問能力,采用負(fù)載測(cè)試的方法,以得到系統(tǒng)的極限,由此確認(rèn)服務(wù)器的負(fù)載可承受能力。實(shí)驗(yàn)測(cè)試需求如表1所示。
表1 測(cè)試需求表
Tab. 1 Test requirements table
功能模塊 用戶需求
業(yè)務(wù)類型 機(jī)票預(yù)定 同時(shí)滿足250個(gè)用戶并發(fā),CPU利用小于80%,請(qǐng)求成功率不低于95%
機(jī)票查詢 同時(shí)滿足250個(gè)用戶并發(fā),CPU利用小于85%,請(qǐng)求成功率不低于90%
其他業(yè)務(wù) ......
考慮到不同用戶的思考時(shí)間上的各不相同,熟練用戶的一般思考時(shí)間為3s,普通用戶為5s,新用戶一般為15s。根據(jù)調(diào)查統(tǒng)計(jì)得出思考時(shí)間,如表2所示。
表2 用戶思考時(shí)間百分比
Table 2 User think time percentage
思考時(shí)間(s) 百分比
熟練用戶 3 10%
普通用戶 5 65%
新用戶 15 25%
以下是虛擬用戶數(shù)為40、80、150、250時(shí)考慮用戶響應(yīng)時(shí)間和不考慮用戶響應(yīng)時(shí)間的請(qǐng)求成功率對(duì)比,對(duì)比結(jié)果如圖1所示。
圖1 不同思考時(shí)間下的請(qǐng)求成功率
Fig.1 Request success rate under different thinking time
由圖1可知,當(dāng)不考慮用戶的實(shí)際思考時(shí)間(Think time=0),系統(tǒng)的請(qǐng)求成功率保持一個(gè)很快的下降態(tài)勢(shì)。但是,當(dāng)考慮用戶的思考時(shí)間(Think time=3),系統(tǒng)的請(qǐng)求成功率一直處在較為平穩(wěn)理想的水平,這就說明思考時(shí)間對(duì)于系統(tǒng)的優(yōu)化有著重要的控制作用,將使測(cè)試的系統(tǒng)更為正確,測(cè)試結(jié)果與實(shí)際情況更趨吻合。在一定的程度上,也減少了開發(fā)的成本。
以虛擬用戶數(shù)達(dá)到40時(shí)為例,分析不考慮用戶思考時(shí)間和考慮用戶思考時(shí)間的系統(tǒng)優(yōu)化情況,對(duì)比分析并得出結(jié)論如下:
(1)機(jī)票查詢:當(dāng)虛擬用戶為40,對(duì)比平均事務(wù)響應(yīng)時(shí)間得出響應(yīng)時(shí)間結(jié)果,具體如圖2,圖3所示。
圖2不考慮用戶響應(yīng)時(shí)間
Fig.2 Regardless of the user response time
圖3考慮用戶響應(yīng)時(shí)間
Fig.3 Considering the user response time
由圖2和圖3可知,相同條件下,考慮用戶的思考時(shí)間,平均響應(yīng)時(shí)間會(huì)偏低,用戶集中操作相對(duì)減少,系統(tǒng)處理的數(shù)據(jù)單位時(shí)間內(nèi)也會(huì)減輕負(fù)擔(dān),由此系統(tǒng)得到了優(yōu)化。
(2)機(jī)票預(yù)訂:當(dāng)虛擬用戶為40時(shí),根據(jù)每秒HTTP響應(yīng)數(shù)的圖進(jìn)行對(duì)比,并得到最終效果。具體如圖4,圖5所示。
圖4不考慮用戶響應(yīng)時(shí)間
Fig.4 Regardless of the user response time
圖5考慮用戶響應(yīng)時(shí)間
Fig.5 Considering the user response time
由圖4和圖5可知,相同條件下,考慮到用戶的響應(yīng)時(shí)間,用戶訪問不至于過分密集,并且不存在過分波動(dòng)情況,請(qǐng)求數(shù)也趨于穩(wěn)定,因而系統(tǒng)得到了優(yōu)化。
3 結(jié)束語
Web性能測(cè)試是軟件系統(tǒng)質(zhì)量保障的基礎(chǔ),能夠使系統(tǒng)的可靠性提高,并為系統(tǒng)優(yōu)化提供有效的數(shù)據(jù)。Web系統(tǒng)開發(fā)過程中的性能缺陷可及時(shí)地通過系統(tǒng)測(cè)試進(jìn)行正確定位,進(jìn)而減少系統(tǒng)的潛在風(fēng)險(xiǎn)。本文通過在性能測(cè)試中充分考慮用戶訪問特征,從用戶思考時(shí)間方面著手,通過LoadRunner工具對(duì)飛機(jī)訂票系統(tǒng)進(jìn)行性能測(cè)試驗(yàn)證,驗(yàn)證結(jié)果表明了用戶訪問特征在Web性能測(cè)試中的有效性及可靠性,本文可為Web性能測(cè)試提供參考借鑒意義。
5 參考文獻(xiàn)
[1] 王會(huì)青,等.Web應(yīng)用軟件測(cè)試方法的研究[J].太原理工大學(xué)學(xué)報(bào),2007,04:304-306.
[2] 劉亮.基于HTTP/S協(xié)議的Web性能測(cè)試工具的設(shè)計(jì)與實(shí)現(xiàn)[D].呼和浩特:內(nèi)蒙古大學(xué), 2005:50-58.
[3] 鄧璐娟,范乃梅,孫義坤,等.基于Web應(yīng)用的性能測(cè)試模型研究[J].計(jì)算機(jī)工程與應(yīng)用,2013,01:75-77.
[4] 韓國(guó)峰.Web系統(tǒng)分布式性能測(cè)試工具的研究與實(shí)現(xiàn)[D].天津:南開大學(xué),2007:100-102.
[5] 李艷芹.基于Web應(yīng)用系統(tǒng)的性能測(cè)試及優(yōu)化[D].上海:東華大學(xué),2011.
[6] 郭華杰.Web應(yīng)用程序測(cè)試技術(shù)及灰盒測(cè)試方法的研究與實(shí)現(xiàn)[D].天津:天津大學(xué),2006:198-200.
[7] 杜香和.Web性能測(cè)試模型研究[D].重慶:西南大學(xué),2008:300-305.
[8] 董瑞志等.模型驅(qū)動(dòng)的軟件產(chǎn)品線測(cè)試技術(shù)[J].常熟理工學(xué)院學(xué)報(bào),2009,04:107-112.
[9] 李艷芹.基于Web應(yīng)用系統(tǒng)的性能測(cè)試及優(yōu)化[D].上海:東華大學(xué),2011.
[10] 高捷,吳華瑞.基于矩陣模型的工作流合理性驗(yàn)證算法研究[J].計(jì)算機(jī)工程與設(shè)計(jì),你2010,31(11):2621-2624.