㈠ 性能測試的內容
性能測試 在軟體的質量保證中起著重要的作用,它包括的測試內容豐富多樣。中國軟體評測中心將性能測試概括為三個方面:應用在客戶端性能的測試、應用在網路上性能的測試和應用在伺服器端性能的測試。通常情況下,三方面有效、合理的結合,可以達到對系統性能全面的分析和瓶頸的預測。 應用在客戶端性能測試的目的是考察客戶端應用的性能,測試的入口是客戶端。它主要包括並發性能測試、疲勞強度測試、大數據量測試和速度測試等,其中並發性能測試是重點。
並發性能測試是重點
並發性能測試的過程是一個負載測試和壓力測試的過程,即逐漸增加負載,直到系統的瓶頸或者不能接收的性能點,通過綜合分析交易執行指標和資源監控指標來確定系統並發性能的過程。負載測試(Load Testing)是確定在各種工作負載下系統的性能,目標是測試當負載逐漸增加時,系統組成部分的相應輸出項,例如通過量、響應時間、CPU負載、內存使用等來決定系統的性能。負載測試是一個分析軟體應用程序和支撐架構、模擬真實環境的使用,從而來確定能夠接收的性能過程。壓力測試(Stress Testing)是通過確定一個系統的瓶頸或者不能接收的性能點,來獲得系統能提供的最大服務級別的測試。
並發性能測試的目的主要體現在三個方面:以真實的業務為依據,選擇有代表性的、關鍵的業務操作設計測試案例,以評價系統的當前性能;當擴展應用程序的功能或者新的應用程序將要被部署時,負載測試會幫助確定系統是否還能夠處理期望的用戶負載,以預測系統的未來性能;通過模擬成百上千個用戶,重復執行和運行測試,可以確認性能瓶頸並優化和調整應用,目的在於尋找到瓶頸問題。
當一家企業自己組織力量或委託軟體公司代為開發一套應用系統的時候,尤其是以後在生產環境中實際使用起來,用戶往往會產生疑問,這套系統能不能承受大量的並發用戶同時訪問? 這類問題最常見於採用聯機事務處理(OLTP)方式資料庫應用、Web瀏覽和視頻點播等系統。這種問題的解決要藉助於科學的軟體測試手段和先進的測試工具。
舉例說明:電信計費軟體
眾所周知,每月20日左右是市話交費的高峰期,全市幾千個收費網點同時啟動。收費過程一般分為兩步,首先要根據用戶提出的電話號碼來查詢出其當月產生費用,然後收取現金並將此用戶修改為已交費狀態。一個用戶看起來簡單的兩個步驟,但當成百上千的終端,同時執行這樣的操作時,情況就大不一樣了,如此眾多的交易同時發生,對應用程序本身、操作系統、中心資料庫伺服器、中間件伺服器、網路設備的承受力都是一個嚴峻的考驗。決策者不可能在發生問題後才考慮系統的承受力,預見軟體的並發承受力,這是在軟體測試階段就應該解決的問題。
大多數公司企業需要支持成百上千名用戶,各類應用環境以及由不同供應商提供的元件組裝起來的復雜產品,難以預知的用戶負載和愈來愈復雜的應用程序,使公司擔憂會發生投放性能差、用戶遭受反應慢、系統失靈等問題。其結果就是導致公司收益的損失。
如何模擬實際情況呢? 找若乾颱電腦和同樣數目的操作人員在同一時刻進行操作,然後拿秒錶記錄下反應時間? 這樣的手工作坊式的測試方法不切實際,且無法捕捉程序內部變化情況,這樣就需要壓力測試工具的輔助。
測試的基本策略是自動負載測試,通過在一台或幾台PC機上模擬成百或上千的虛擬用戶同時執行業務的情景,對應用程序進行測試,同時記錄下每一事務處理的時間、中間件伺服器峰值數據、資料庫狀態等。通過可重復的、真實的測試能夠徹底地度量應用的可擴展性和性能,確定問題所在以及優化系統性能。預先知道了系統的承受力,就為最終用戶規劃整個運行環境的配置提供了有力的依據。
並發性能測試前的准備工作
測試環境:配置測試環境是測試實施的一個重要階段,測試環境的適合與否會嚴重影響測試結果的真實性和正確性。測試環境包括硬體環境和軟體環境,硬體環境指測試必需的伺服器、客戶端、網路連接設備以及列印機/掃描儀等輔助硬體設備所構成的環境;軟體環境指被測軟體運行時的操作系統、資料庫及其他應用軟體構成的環境。
一個充分准備好的測試環境有三個優點:一個穩定、可重復的測試環境,能夠保證測試結果的正確;保證達到測試執行的技術需求;保證得到正確的、可重復的以及易理解的測試結果。
測試工具:並發性能測試是在客戶端執行的黑盒測試,一般不採用手工方式,而是利用工具採用自動化方式進行。成熟的並發性能測試工具有很多,選擇的依據主要是測試需求和性能價格比。著名的並發性能測試工具有QALoad、LoadRunner、Benchmark Factory和Webstress等。這些測試工具都是自動化負載測試工具,通過可重復的、真實的測試,能夠徹底地度量應用的可擴展性和性能,可以在整個開發生命周期、跨越多種平台、自動執行測試任務,可以模擬成百上千的用戶並發執行關鍵業務而完成對應用程序的測試。
測試數據:在初始的測試環境中需要輸入一些適當的測試數據,目的是識別數據狀態並且驗證用於測試的測試案例,在正式的測試開始以前對測試案例進行調試,將正式測試開始時的錯誤降到最低。在測試進行到關鍵過程環節時,非常有必要進行數據狀態的備份。製造初始數據意味著將合適的數據存儲下來,需要的時候恢復它,初始數據提供了一個基線用來評估測試執行的結果。
在測試正式執行時,還需要准備業務測試數據,比如測試並發查詢業務,那麼要求對應的資料庫和表中有相當的數據量以及數據的種類應能覆蓋全部業務。
模擬真實環境測試,有些軟體,特別是面向大眾的商品化軟體,在測試時常常需要考察在真實環境中的表現。如測試殺毒軟體的掃描速度時,硬碟上布置的不同類型文件的比例要盡量接近真實環境,這樣測試出來的數據才有實際意義。
並發性能測試的種類與指標
並發性能測試的種類取決於並發性能測試工具監控的對象,以QALoad自動化負載測試工具為例。軟體針對各種測試目標提供了DB2、DCOM、ODBC、ORACLE、NETLoad、Corba、QARun、SAP、SQLServer、Sybase、Telnet、TUXEDO、UNIFACE、WinSock、WWW、Java Script等不同的監控對象,支持Windows和UNIX測試環境。
最關鍵的仍然是測試過程中對監控對象的靈活應用,例如三層結構的運行模式廣泛使用,對中間件的並發性能測試作為問題被提到議事日程上來,許多系統都採用了國產中間件,選擇Java Script監控對象,手工編寫腳本,可以達到測試目的。
採用自動化負載測試工具執行的並發性能測試,基本遵循的測試過程有:測試需求與測試內容,測試案例制定,測試環境准備,測試腳本錄制、編寫與調試,腳本分配、回放配置與載入策略,測試執行跟蹤,結果分析與定位問題所在,測試報告與測試評估。
並發性能測試監控的對象不同,測試的主要指標也不相同,主要的測試指標包括交易處理性能指標和UNIX資源監控。其中,交易處理性能指標包括交易結果、每分鍾交易數、交易響應時間(Min:最小伺服器響應時間;Mean:平均伺服器響應時間;Max:最大伺服器響應時間;StdDev:事務處理伺服器響應的偏差,值越大,偏差越大;Median:中值響應時間;90%:90%事務處理的伺服器響應時間)、虛擬並發用戶數。
應用實例:「新華社多媒體資料庫 V1.0」性能測試
中國軟體評測中心(CSTC)根據新華社技術局提出的《多媒體資料庫(一期)性能測試需求》和GB/T 17544《軟體包質量要求和測試》的國家標准,使用工業標准級負載測試工具對新華社使用的「新華社多媒體資料庫 V1.0」進行了性能測試。
性能測試的目的是模擬多用戶並發訪問新華社多媒體資料庫,執行關鍵檢索業務,分析系統性能。
性能測試的重點是針對系統並發壓力負載較大的主要檢索業務,進行並發測試和疲勞測試,系統採用B/S運行模式。並發測試設計了特定時間段內分別在中文庫、英文庫、圖片庫中進行單檢索詞、多檢索詞以及變檢索式、混合檢索業務等並發測試案例。疲勞測試案例為在中文庫中並發用戶數200,進行測試周期約8小時的單檢索詞檢索。在進行並發和疲勞測試的同時,監測的測試指標包括交易處理性能以及UNIX(Linux)、Oracle、Apache資源等。
測試結論:在新華社機房測試環境和內網測試環境中,100M帶寬情況下,針對規定的各並發測試案例,系統能夠承受並發用戶數為200的負載壓力,最大交易數/分鍾達到78.73,運行基本穩定,但隨著負載壓力增大,系統性能有所衰減。
系統能夠承受200並發用戶數持續周期約8小時的疲勞壓力,基本能夠穩定運行。
通過對系統UNIX(Linux)、Oracle和Apache資源的監控,系統資源能夠滿足上述並發和疲勞性能需求,且系統硬體資源尚有較大利用餘地。
當並發用戶數超過200時,監控到HTTP 500、connect和超時錯誤,且Web伺服器報內存溢出錯誤,系統應進一步提高性能,以支持更大並發用戶數。
建議進一步優化軟體系統,充分利用硬體資源,縮短交易響應時間。
疲勞強度與大數據量測試
疲勞測試是採用系統穩定運行情況下能夠支持的最大並發用戶數,持續執行一段時間業務,通過綜合分析交易執行指標和資源監控指標來確定系統處理最大工作量強度性能的過程。
疲勞強度測試可以採用工具自動化的方式進行測試,也可以手工編寫程序測試,其中後者占的比例較大。
一般情況下以伺服器能夠正常穩定響應請求的最大並發用戶數進行一定時間的疲勞測試,獲取交易執行指標數據和系統資源監控數據。如出現錯誤導致測試不能成功執行,則及時調整測試指標,例如降低用戶數、縮短測試周期等。還有一種情況的疲勞測試是對當前系統性能的評估,用系統正常業務情況下並發用戶數為基礎,進行一定時間的疲勞測試。
大數據量測試可以分為兩種類型:針對某些系統存儲、傳輸、統計、查詢等業務進行大數據量的獨立數據量測試;與壓力性能測試、負載性能測試、疲勞性能測試相結合的綜合數據量測試方案。大數據量測試的關鍵是測試數據的准備,可以依靠工具准備測試數據。
速度測試主要是針對關鍵有速度要求的業務進行手工測速度,可以在多次測試的基礎上求平均值,可以和工具測得的響應時間等指標做對比分析。 應用在網路上性能的測試重點是利用成熟先進的自動化技術進行網路應用性能監控、網路應用性能分析和網路預測。
網路應用性能分析
網路應用性能分析的目的是准確展示網路帶寬、延遲、負載和TCP埠的變化是如何影響用戶的響應時間的。利用網路應用性能分析工具,例如Application Expert,能夠發現應用的瓶頸,我們可知應用在網路上運行時在每個階段發生的應用行為,在應用線程級分析應用的問題。可以解決多種問題:客戶端是否對資料庫伺服器運行了不必要的請求?當伺服器從客戶端接受了一個查詢,應用伺服器是否花費了不可接受的時間聯系資料庫伺服器?在投產前預測應用的響應時間;利用Application Expert調整應用在廣域網上的性能;Application Expert能夠讓你快速、容易地模擬應用性能,根據最終用戶在不同網路配置環境下的響應時間,用戶可以根據自己的條件決定應用投產的網路環境。
網路應用性能監控
在系統試運行之後,需要及時准確地了解網路上正在發生什麼事情;什麼應用在運行,如何運行;多少PC正在訪問LAN或WAN;哪些應用程序導致系統瓶頸或資源競爭,這時網路應用性能監控以及網路資源管理對系統的正常穩定運行是非常關鍵的。利用網路應用性能監控工具,可以達到事半功倍的效果,在這方面我們可以提供的工具是Network Vantage。通俗地講,它主要用來分析關鍵應用程序的性能,定位問題的根源是在客戶端、伺服器、應用程序還是網路。在大多數情況下用戶較關心的問題還有哪些應用程序佔用大量帶寬,哪些用戶產生了最大的網路流量,這個工具同樣能滿足要求。
網路預測
考慮到系統未來發展的擴展性,預測網路流量的變化、網路結構的變化對用戶系統的影響非常重要。根據規劃數據進行預測並及時提供網路性能預測數據。我們利用網路預測分析容量規劃工具PREDICTOR可以作到:設置服務水平、完成日網路容量規劃、離線測試網路、網路失效和容量極限分析、完成日常故障診斷、預測網路設備遷移和網路設備升級對整個網路的影響。
從網路管理軟體獲取網路拓撲結構、從現有的流量監控軟體獲取流量信息(若沒有這類軟體可人工生成流量數據),這樣可以得到現有網路的基本結構。在基本結構的基礎上,可根據網路結構的變化、網路流量的變化生成報告和圖表,說明這些變化是如何影響網路性能的。PREDICTOR提供如下信息:根據預測的結果幫助用戶及時升級網路,避免因關鍵設備超過利用閥值導致系統性能下降;哪個網路設備需要升級,這樣可減少網路延遲、避免網路瓶頸;根據預測的結果避免不必要的網路升級。 對於應用在伺服器上性能的測試,可以採用工具監控,也可以使用系統本身的監控命令,例如Tuxedo中可以使用Top命令監控資源使用情況。實施測試的目的是實現伺服器設備、伺服器操作系統、資料庫系統、應用在伺服器上性能的全面監控,測試原理如下圖。
UNIX資源監控指標和描述
監控指標 描述
平均負載 系統正常狀態下,最後60秒同步進程的平均個數
沖突率 在乙太網上監測到的每秒沖突數
進程/線程交換率 進程和線程之間每秒交換次數
CPU利用率 CPU佔用率(%)
磁碟交換率 磁碟交換速率
接收包錯誤率 接收乙太網數據包時每秒錯誤數
包輸入率 每秒輸入的乙太網數據包數目
中斷速率 CPU每秒處理的中斷數
輸出包錯誤率 發送乙太網數據包時每秒錯誤數
包輸入率 每秒輸出的乙太網數據包數目
讀入內存頁速率 物理內存中每秒讀入內存頁的數目
寫出內存頁速率 每秒從物理內存中寫到頁文件中的內存頁數
目或者從物理內存中刪掉的內存頁數目
內存頁交換速率 每秒寫入內存頁和從物理內存中讀出頁的個數
進程入交換率 交換區輸入的進程數目
進程出交換率 交換區輸出的進程數目
系統CPU利用率 系統的CPU佔用率(%)
用戶CPU利用率 用戶模式下的CPU佔用率(%)
磁碟阻塞 磁碟每秒阻塞的位元組數
㈡ 西門子PLC各種數據的輸入格式是怎麼樣的,比如計時器是s5T#S,長整數是L#之類的盡量詳細點
s5T#?S,是time(類雙整形)的,HMI的設定需要轉化才能應用,L#???都是直接配在管腳上的,上班後我來看看。