


摘要:隨著互聯網的快速發展,電子商務平臺的業務量日趨增多、集群規模迅速擴大,電子商務平臺的系統性能面臨極大的挑戰。因此,發現并規避電子商務平臺的性能隱患對電商及用戶都有重要的意義。本文通過進行不同程度的壓力測試,模擬電子商務平臺面臨的多種流量場景,探究并發用戶數對電子商務平臺性能的影響;通過錄制不同模式的腳本,模擬電子商務平臺運作的復雜業務場景,探究讀寫操作對電子商務平臺性能的影響。實驗結果表明,高并發用戶數場景下,電子商務平臺的平均響應時間增大,錯誤率明顯提升;腳本中寫操作占比較高時,電子商務平臺平均響應時間增大,吞吐量降低。
關鍵詞:互聯網;壓力測試;電子商務平臺
中圖分類號:F49 ???文獻標識碼:A ???文章編號:1671-2064(2019)17-0000-00
0 引言
隨著互聯網的快速發展,電子商務平臺已經滲入到我們生活的方方面面中。隨著業務量的增大,對服務器和數據庫承載力要求升高,這就需要對電子商務平臺的性能進行不斷優化。因此,人們提出對電子商務平臺進行壓力測試,即通過使用自動化的測試工具來模擬生成多種正常、峰值以及異常的負載,進而對系統的各項性能指標進行測試[1],探究系統存在的風險及性能優劣。常見的壓力測試工具有Apache Jmeter[2]、Load Runner[3]等。本文實驗目的是探究并發用戶數和讀寫操作對電子商務平臺性能的影響。本文通過壓力測試工具Apache Jmeter對電子商務平臺進行壓力測試,使用控制變量法,分別改變并發用戶數和腳本中讀寫操作比例進行多次實驗,針對每次壓力測試的平均響應時間、吞吐量和錯誤率等幾項性能指標,提取測試結果并進行結論分析。實驗結果表明,并發用戶數規模越大,電子商務平臺的平均響應時間越長,錯誤率越高,即平臺的性能會降低。具體表現為,并發用戶數從100增長到5000時,平均響應時間增大了約1.4倍,錯誤率提高了約10%;并發用戶數增長到10000時,平臺無法正常運行,出現停滯狀態。寫操作比例較高時,平臺平均響應時間增大,吞吐量降低,運行能力下降。具體表現為,讀寫操作之比為8:2的腳本與10:0腳本相比,吞吐量降低了21.5%,平均響應時間增大了41.4%。
1 實驗方法
1.1 實驗目的
通過模擬電子商務平臺真實場景對其進行壓力測試,探究并發用戶數和腳本中讀寫操作比例對電子商務平臺性能的影響。
1.2 實驗工具
(1)Apache Jmeter是一種的基于Java的壓力測試工具,用于對軟件做壓力測試。通過模擬巨大的負載,對待測目標進行不同壓力程度測試,從而發現系統可應對的最大強度以及系統性能。(2)Badboy是一個腳本錄制工具,它提供了一個瀏覽器界面,可以記錄用戶對網頁的一系列操作,最終保存.jmx文件,形成一個測試腳本。(3)Jpetstore[4]是一個網上寵物商店,這個小型電子商務平臺包含了Web層應用所需具備的要素,例如注冊、登錄、商品查詢、信息展示等。
1.3 實驗步驟
(1)錄制腳本。錄制腳本是將用戶在電子商務平臺Jpetstore的一系列操作通過BadBoy軟件記錄下來,以jmx腳本文件格式保存。腳本中對數據庫的事務操作可以分為讀操作和寫操作。讀操作包括瀏覽界面等從數據庫讀出數據的操作;寫操作包括提交訂單等向數據庫增添內容的操作。讀寫比例是指在客戶訪問電子商務平臺的一系列操作中,讀操作的數量和寫操作的數量之比。(2)壓力測試。壓力測試是通過自動化的測試工具Apache Jmeter 模擬生成多種正常、峰值以及異常的負載,進而對系統的各項性能指標進行測試。進行壓力測試時,通過Apache Jmeter 導入錄制好的jmx腳本文件,并設置線程數、循環次數,添加監聽器(如聚合報告、察看結果樹等)。測試結束后,記錄平均響應時間、錯誤率和吞吐量等指標,用于分析電子商務平臺的性能。
2 實驗設計及結果
本文設計了兩組實驗,分別探究并發用戶數對電子商務平臺性能的影響以及測試腳本中讀寫操作比例對電子商務平臺性能的影響。
2.1 實驗一:探究并發用戶數對電子商務平臺性能的影響
(1)錄制腳本。實驗一中錄制的測試腳本事務信息如圖1所示。用戶訪問Jpetstore后,先登錄并認證個人信息,再察看并挑選商品,更改購物車信息后確認訂單。
(2)壓力測試。設置Apache Jmeter?中的并發用戶數(線程數)分別為100、500、1000、5000、10000,每個線程數下進行五次實驗,平均響應時間取平均值(去掉最高值,去掉最低值,再取平均)。本次實驗保持其他條件一致,僅改變并發用戶數,即線程數。實驗結果如表1所示。
(3)實驗結果及分析。如表1所示,當線程數從100增長到5000時,平均響應時間逐漸增大,錯誤率逐漸升高。線程數由100升至5000,平均響應時間增長約1.4倍,錯誤率由1.10%升高到了11.67%。因此,隨著并發用戶數規模的擴大,電子商務平臺的性能會降低。當線程數增長到10000時,聚合報告中“總體”的Sample大小(運行的事務總數)并未達到預期,且相差很大,平臺無法正常運行。并且,在壓力測試過程中會出現錯誤,這些錯誤是操作時請求和響應數據超時導致的。出現這一現象的原因有可能是用戶并發數過高,從而導致集群服務器在讀取數據時出現響應超時。或是計算機已經完成了多組數據的壓力測試,若在前面的測試中,發生過系統崩潰的情況,或因為每次測試的負載都較大,與其一貫工作量出入大,也可能會影響它處理數據的能力。在進行線程數為500的實驗時,大部分實驗的錯誤率在0.26%-0.36%之間,但后面進行的實驗中出現錯誤率大于6%的情況,故對最終數據的影響較大,因此導致平臺性能下降的原因也可能是計算機已經進行了多組實驗而影響其運行能力。
2.2 實驗二:探究讀寫操作對電子商務平臺性能的影響
(1)Web事物性能分析。本文首先針對腳本中各事務的平均響應時間進行實驗,實驗結果如表2所示。SignonForm表示登錄事務。實驗結果顯示,第一次登錄SignonForm耗時特別長,之后耗時明顯降低。主要原因是首次登錄系統時,需要校驗用戶信息,所以耗時最長,超過了1min。之后的測試由于有緩存信息,因此耗時會明顯降低。NewOrder表示提交訂單事務。實驗結果顯示,三次測試中NewOrder的平均響應時間相較于其他事務都明顯較高。由于提交訂單是一個寫入數據庫的操作,因此寫操作明顯要比讀操作更能影響系統的性能。因此,接下來將探究讀寫操作對電子商務平臺性能的影響。
(2)錄制腳本。本次實驗錄制了讀寫比不同的腳本。為了保證測試中結果的可對比性,在保證兩次腳本錄制的事務數相同的情況下,改變腳本中讀寫操作占比情況。實驗二錄制的兩個不同讀寫操作占比的腳本如圖2、圖3所示。
(3)讀寫比測試。控制線程數為100,分別對腳本一、二進行測試,結果表3所示。
(4)實驗結果及分析。如表3所示,寫操作會在一定程度上影響電子商務平臺的性能。在兩組操作總數相同的實驗中,測試一寫操作占比為20%,測試二沒有寫操作。由實驗數據可知,寫操作占比20%的情況下,吞吐量降低了21.5%,平均響應時間增大了41.4%。讀操作是讀取數據庫中原有的數據,而寫操作涉及對數據庫內容的修改,因此寫操作耗時更長,對系統性能的影響更大。
3 結語
本文測試了不同并發用戶數下平臺的平均響應時間和錯誤率。發現隨著并發用戶數增大,平均相應時間增大,錯誤率升高,但若并發用戶數過大,電子商務平臺遇到瓶頸,會系統崩潰,無法正常運行,錯誤率達到100%。同時,本文測試了腳本中不同讀寫操作占比下平臺的平均響應時間和吞吐量。讀操作和寫操作所需要的系統響應時間不同,在每次運行中,寫操作耗時較長,因此寫操作占比多的腳本吞吐量降低,平均響應時間增大。
參考文獻
[1]陳鐵南,唐震,王曉冉.基于云計算的大規模性能測試服務平臺[J].計算機科學,2014(9):63-66.
[2]JMeter工具使用初探[Z].
https://blog.csdn.net/loadrunn/article/details/58601709.
[3]郭旭敏,王小廳.LoadRunner在軟件性能測試中的應用與研究[J].太原學院學報(自然科學版),2018(3):32-35.
[4]谷志峰,葉傳奇,張虎.基于JpetStore案例的項目驅動法在JSP教學中的研究與實踐[J].西部素質教育,2016(8):55-57.
收稿日期:2019-07-19
作者簡介:馬楠(2002—),女,回族,云南昆明人,云大附中星耀學校高中在讀,研究方向:壓力測試。