杭佳祺+王川+羅西
摘要:近年來互聯網技術的不斷發展帶動Web應用的不斷普及,與此同時Web應用也成為黑客攻擊的重要對象。為保證良好的網絡環境,需要對Web應用程序的性能不斷改善。當前通過壓力測試可以很好地完成相關的性能改良工作?;诖?,本文將重點闡述通過壓力測試改善Web應用程序性能的相關策略。
關鍵詞:軟件測試;Web應用;互聯網技術;壓力測試
中圖分類號:TP274 文獻標識碼:A 文章編號:1007-9416(2017)09-0213-02
Web應用如今已經變得十分廣泛,對其進行開發時,由于受到一定因素的影響,表現出一定的隨意性,導致對系統測試的過程中出現一定的問題。當前Web環境變得日益嚴峻,黑客的存在隨時可能會對網絡環境造成嚴重威脅,同時還會損害用戶的隱私和經濟利益,因此加強安全測試,提高Web程序性能已經是一個迫在眉睫的工程。壓力測試是一種較為常用的測試手段,能夠獲得較好的測試效果,從而對程序性能不斷優化。
1 Web安全性測試
1.1 概念
安全性測試指的是對應用程序進行安全驗證并通過測試發現其中存在缺陷的過程。安全測試的過程不是證明應用程序本身的安全性,因此這種測試不僅僅是本身程序的檢測,更是一種抗攻擊的檢測[1]。完善的安全性測試應該通過表格數據證明,在系統面臨攻擊和惡意入侵時,依然可以滿足用戶需求。
1.2 Web安全測試
具體的Web安全測試指的是借助各種工具的作用,對Web應用活動進行激發和模擬的過程。Web安全性測試包含很多方面,主要可以從部署結構、輸入驗證、身份驗證、配置管理、敏感數據保護、會話管理、參數操作、異常管理、審核和日志記錄等幾個方面入手。
2 Web應用中存在的主要安全隱患
當前,由于技術的限制以及測試技術和測試工具的制約,Web應用中存在的安全隱患較多。具體的安全隱患主要有:SQL注入攻擊、跨站式腳本攻擊(XSS)、無效認證和會話管理、安全配置錯誤以及傳輸層數據保護等。
2.1 SQL注入攻擊
具體指的是通過構建特殊的輸入作為參數對Web應用程序進行干擾。并且輸入的SQL是一種語句組合的形式[2]。通過對SQL語句的執行完成對攻擊操作的執行。造成這種問題的主要原因是整個程序對用戶輸入的數據沒有進行細致的過濾,導致非法數據對系統造成入侵。
2.2 跨站式腳本攻擊
這是一種經常在Web應用中出現的計算機安全漏洞。這種攻擊可以允許惡意Web用戶將代碼植入到其他用戶的使用界面中。XSS攻擊可以分成兩類,一種是內部攻擊,主要體現的是程序自身的漏洞;另一種是外部攻擊,主要指的是通過制造XSS跨站漏洞網頁影響正常的網頁[3]。
2.3 無效認證和會話管理
在訪問者對Web應用的使用過程中,應用程序的認證和會話管理在執行過程中常常會出現一定的問題。導致攻擊者可以通過對數據包的抓取、重放攻擊等手段。獲取用戶密碼、會話授權,進而竊取用戶的賬戶。
2.4 安全配置錯誤
完善的保障體系應該對應用程序、系統框架、應用程序服務、頁面服務、數據庫服務以及應用平臺進行精密的部署和相關設置。以上幾種內容的設定都應該具備精準的定義、執行和保存。但在實際應用中,大量的用戶會選擇保障系統的默認設置,導致許多項目的配置情況有誤,進而出現一定安全配置問題。
2.5 傳輸層數據完整性保護
Web應用程序由于本身的特點常常對網絡通信內部內容完整性的驗證、加密以及保護等性能難以實現。當情況出現時,應用程序會自動選擇加密性較差的算法執行,并使用過期的或者無效的驗證信息。有時甚至不能使用程序本身的安全保障功能。
3 壓力測試的準備階段
3.1 壓力測試
壓力測試中會涉及到一個關鍵詞,就是吞吐量。吞吐量指的是在某一固定的時間段內,能夠處理的用戶請求數量。而壓力測試指的是在負載條件下,對應用程序進行測試從而確定程序的最大吞吐量。因此這種測試模式也被負載測試[4]。壓力測試的主要目的在于對Web應用程序在負載情況下出現性能問題的識別和隔離,從而降低或者消除性能問題的影響,使Web應用程序達到或者超過期望的流量參數。通過測試發現性能問題,以后就可以采取針對性措施進行處理,從而對程序進行優化和改善,降低用戶請求的響應時間,提高用戶體驗程度。
3.2 通過系統配置創建可控制的測試環境
對Web應用程序進行壓力測試,需要完成用戶模擬,這種模擬是通過對軟硬件的模擬來完成的。模擬程度越接近真實使用環境,測試結果越有意義。為保證有足夠的瀏覽器和用戶請求,需要使用特定的計算機終端和服務器。同時對機器的硬件要求應該按照實際用戶的使用情況進行決定。在搭建可控制的測試環境時,具體的配置如下:
3.2.1 軟硬件的配置
為保證相似度,試驗系統應該盡可能鏡像生產系統。CPU、RAM以及網絡帶寬的硬件配置是壓力測試中的重要方面。應該在配置過程中應該通過跟實際情況的對比,將站點配置設計在程序外或者程序內執行。另外Web程序的執行環境也是壓力測試的重要影響因素[5]。
3.2.2 IIS配置
配置IIS來鏡像生產服務器,因特網服務管理器的屬性頁面能夠為IIS提供各種可用的調整選項。重點的調整選項包括啟動記錄的確定與否,同時還能在性能的選項中,確定預期的日點擊數量。
3.2.3 安全配置
應用程序的安全方案會對壓力測試造成嚴重的性能影響。遇到加密技術時,這種影響就會被擴大化,因此需要引起對安全配置的重視。
3.2.4 用戶負載配置
配置時,應該首先確定訪問程序的最大用戶數,之后對該數量進行加倍處理。成功的配置應該大于最大用戶數量。同時在測試時,應該對測試時間段進行明確,選擇負載高峰期時完成測試工作,保證用戶請求數量,提高測試的準確性。endprint
3.2.5 壓力工具的選擇
在實際使用中,同一時間段,會有大量的用戶對Web應用程序發出請求,因此需要選擇合適的壓力工具完成檢測,以提高精準度。
4 壓力測試的目標參數
在進行壓力測試結果分析之前,應該確定一定的目標參數,從而正確對Web性能進行評估。從而通過一定的改進處理工作使應用程序滿足高標準的性能要求,這些關鍵目標參數主要體現在以下幾個方面:
4.1 服務器的錯誤率
服務器的錯誤是用戶在訪問中會碰到的一種問題,在壓力測試階段同樣也會出現同樣的問題,因此對其進行記錄,并分析原因,對于改善應用程序的性能具有重要意義。
4.2 CPU的承受率
這是壓力測試的重要方面,也會直接影響到后面Web網站的最大負荷。在不同的Web程序中也會有不同的尺度度量,因此在進行測試時,可以通過對Web層進行施壓,從而完成相關測試。
4.3 內存泄露
內存泄露會導致資源數量不足,影響用戶使用,因此在壓力測試時,應該對系統進行確認,并與系統簡單的超負荷情況進行區分。
4.4 延遲處理
執行復雜代碼構成的應用程序時,容易遇見延遲的問題。應該對延遲時間進行最小化處理,保證測試的準確性。
5 壓力測試的執行與結果分析
5.1 壓力測試的執行
測試策略完成后,壓力測試的執行是一個很簡單的過程。借助測試工具的作用,在執行之前對設備以及網絡情況進行檢查,檢查無誤后,就可以進行壓力測試。在測試數據的記錄過程,不僅要完成對數據的準確記錄,還應該進行一定的定性分析,從而判斷測試情況的準確性。
5.2 壓力測試的結果分析
硬件升級是提高吞吐量的有效手段,在這一過程中會增加成本,因此需要平衡。對數據庫的優化應該從設計入手,選擇優質的算法結構對于改善程序性能,正確指引用戶的訪問請求具有重要意義。在負載的配置上,應該做到不斷優化,避免用戶直接采用系統的默認屬性,可以通過一定的提示幫助用戶進行合理設置,另外在代碼的執行問題上,應該進行加密設置,提高安全訪問,降低響應時間。
6 結語
在Web程序的開發過程中,會面臨很多的安全性問題,如果得不到及時處理,用戶在使用過程中就會暴露其中的安全隱患,不僅降低了用戶體驗度,嚴重時會造成用戶的隱私泄露、財產損失等嚴重問題。通過指定合理科學的測試方案,采用壓力測試的方式對系統進行安全性檢測,可以有效改善Web應用程序的性能,進而不斷滿市場對Web應用的需求。
參考文獻
[1]李媛.Web應用程序的壓力負載測試[J].科技信息(科學教研),2016,(21):123-124.
[2]楊萍,李杰.利用LoadRunner實現Web負載測試的自動化[J].計算機技術與發展,2017,(01):42.
[3]桑圣洪,胡飛.性能測試工具LoadRunner的工作機理及關鍵技術研究[J].科學技術與工程,2017,(06):81.
[4]李克文,蘇波.基于Web應用的快速壓力測試研究[J].微計算機應用,2016,(09):45.
[5]李東昱,苗放.LoadRunner在Web應用程序性能測試中的應用[J].軟件導刊,2007,(19):124-125.endprint