喬志杰 田劍



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