版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
性能測試
性能測試是通過自動化的測試工具模擬多種正常、峰值以及異常
負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓力測試
都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定在各種
工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時一,系統(tǒng)各項
性能指標(biāo)的變化情況。壓力測試是通過確定一個系統(tǒng)的瓶頸或者不
能接收的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測試。
一、概述
性能測試在軟件的質(zhì)量保證中起著重要的作用,它包括的測試
內(nèi)容豐富多樣。中國軟件評測中心將性能測試概括為三個方面:應(yīng)
用在客戶端性能的測試、應(yīng)用在網(wǎng)絡(luò)上性能的測試和應(yīng)用在服務(wù)器
端性能的測試。通常情況下,三方面有效、合理的結(jié)合,可以達(dá)到
對系統(tǒng)性能全面的分析和瓶頸的預(yù)測。
?應(yīng)用在客戶端性能的測試
應(yīng)用在客戶端性能測試的目的是考察客戶端應(yīng)用的性能,測試
的入口是客戶端。它主要包括并發(fā)性能測試、疲勞強度測試、大數(shù)
據(jù)量測試和速度測試等,其中并發(fā)性能測試是重點。
并發(fā)性能測試是重點
并發(fā)性能測試的過程是一個負(fù)載測試和壓力測試的過程,即逐
漸增加負(fù)載,直到系統(tǒng)的瓶頸或者不能接收的性能點,通過綜合分
析交易執(zhí)行指標(biāo)和資源監(jiān)控指標(biāo)來確定系統(tǒng)并發(fā)性能的過程。負(fù)載
測試(LoadTesting)是確定在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)
是測試當(dāng)負(fù)載逐漸增加時.,系統(tǒng)組成部分的相應(yīng)輸出項,例如通過
量、響應(yīng)時間、CPU負(fù)載、內(nèi)存使用等來決定系統(tǒng)的性能。負(fù)載
測試是一個分析軟件應(yīng)用程序和支撐架構(gòu)、模擬真實環(huán)境的使用,
從而來確定能夠接收的性能過程。壓力測試(StressTesting)是
通過確定一個系統(tǒng)的瓶頸或者不能接收的性能點,來獲得系統(tǒng)能提
供的最大服務(wù)級別的測試。
并發(fā)性能測試的目的主要體現(xiàn)在三個方面:以真實的業(yè)務(wù)為依
據(jù),選擇有代表性的、關(guān)鍵的業(yè)務(wù)操作設(shè)計測試案例,以評價系統(tǒng)
的當(dāng)前性能;當(dāng)擴展應(yīng)用程序的功能或者新的應(yīng)用程序?qū)⒁徊渴?/p>
時一,負(fù)載測試會幫助確定系統(tǒng)是否還能夠處理期望的用戶負(fù)載,以
預(yù)測系統(tǒng)的未來性能;通過模擬成百上千個用戶,重復(fù)執(zhí)行和運行
測試,可以確認(rèn)性能瓶頸并優(yōu)化和調(diào)整應(yīng)用,目的在于尋找到瓶頸
問題。
當(dāng)一家企業(yè)自己組織力量或委托軟件公司代為開發(fā)一套應(yīng)用
系統(tǒng)的時候,尤其是以后在生產(chǎn)環(huán)境中實際使用起來,用戶往往會產(chǎn)
生疑問,這套系統(tǒng)能不能承受大量的并發(fā)用戶同時訪問?這類問題
最常見于采用聯(lián)機事務(wù)處理(OLTP)方式數(shù)據(jù)庫應(yīng)用、Web瀏覽和
視頻點播等系統(tǒng)。這種問題的解決要借助于科學(xué)的軟件測試手段和
先進(jìn)的測試工具。
舉例說明:電信計費軟件
眾所周知,每月20日左右是市話交費的高峰期,全市兒千個收
費網(wǎng)點同時啟動。收費過程一般分為兩步,首先要根據(jù)用戶提出的
電話號碼來查詢出其當(dāng)月產(chǎn)生費用,然后收取現(xiàn)金并將此用戶修改
為已交費狀態(tài)。一個用戶看起來簡單的兩個步驟,但當(dāng)成百上千的
終端,同時執(zhí)行這樣的操作時,情況就大不一樣了,如此眾多的交
易同時發(fā)生,對應(yīng)用程序本身、操作系統(tǒng)、中心數(shù)據(jù)庫服務(wù)器、中
間件服務(wù)器、網(wǎng)絡(luò)設(shè)備的承受力都是一個嚴(yán)峻的考驗。決策者不可
能在發(fā)生問題后才考慮系統(tǒng)的承受力,預(yù)見軟件的并發(fā)承受力,這
是在軟件測試階段就應(yīng)該解決的問題。
目前,大多數(shù)公司企業(yè)需要支持成百上千名用戶,各類應(yīng)用環(huán)
境以及由不同供應(yīng)商提供的元件組裝起來的復(fù)雜產(chǎn)品,難以預(yù)知的
用戶負(fù)載和愈來愈復(fù)雜的應(yīng)用程序,使公司擔(dān)憂會發(fā)生投放性能
差、用戶遭受反應(yīng)慢、系統(tǒng)失靈等問題。其結(jié)果就是導(dǎo)致公司收益
的損失。
如何模擬實際情況呢?找若干臺電腦和同樣數(shù)目的操作人員
在同一時刻進(jìn)行操作,然后拿秒表記錄下反應(yīng)時間?這樣的手工
作坊式的測試方法不切實際,且無法捕捉程序內(nèi)部變化情況,這樣
就需要壓力測試工具的輔助。
測試的基本策略是自動負(fù)載測試,通過在一臺或兒臺PC機上
模擬成百或上千的虛擬用戶同時執(zhí)行業(yè)務(wù)的情景,對應(yīng)用程序進(jìn)行
測試,同時記錄下每一事務(wù)處理的時間、中間件服務(wù)器峰值數(shù)據(jù)、
數(shù)據(jù)庫狀態(tài)等。通過可重復(fù)的、真實的測試能夠徹底地度量應(yīng)用的
可擴展性和性能,確定問題所在以及優(yōu)化系統(tǒng)性能。預(yù)先知道了系
統(tǒng)的承受力,就為最終用戶規(guī)劃整個運行環(huán)境的配置提供了有力的
依據(jù)。
并發(fā)性能測試前的準(zhǔn)備工作
測試環(huán)境:配置測試環(huán)境是測試實施的一個重要階段,測試環(huán)
境的適合與否會嚴(yán)重影響測試結(jié)果的真實性和正確性。測試環(huán)境包
括硬件環(huán)境和軟件環(huán)境,硬件環(huán)境指測試必需的服務(wù)器、客戶端、
網(wǎng)絡(luò)連接設(shè)備以及打印機/掃描儀等輔助硬件設(shè)備所構(gòu)成的環(huán)境;
軟件環(huán)境指被測軟件運行時的操作系統(tǒng)、數(shù)據(jù)庫及其他應(yīng)用軟件構(gòu)
成的環(huán)境。
一個充分準(zhǔn)備好的測試環(huán)境有三個優(yōu)點:一個穩(wěn)定、可重復(fù)的
測試環(huán)境,能夠保證測試結(jié)果的正確;保證達(dá)到測試執(zhí)行的技術(shù)需
求;保證得到正確的、可重復(fù)的以及易理解的測試結(jié)果。
測試工具:并發(fā)性能測試是在客戶端執(zhí)行的黑盒測試,一般不
采用手工方式,而是利用工具采用自動化方式進(jìn)行。目前,成熟的
并發(fā)性能測試工具有很多,選擇的依據(jù)主要是測試需求和性能價格
比。著名的并發(fā)性能測試工具有QALoad、LoadRunner、
BenchmarkFactory和Webstress等。這些測試工具都是自動化負(fù)
載測試工具,通過可重復(fù)的、真實的測試,能夠徹底地度量應(yīng)用的
可擴展性和性能,可以在整個開發(fā)生命周期、跨越多種平臺、自動
執(zhí)行測試任務(wù),可以模擬成百上千的用戶并發(fā)執(zhí)行關(guān)鍵業(yè)務(wù)而完成
對應(yīng)用程序的測試。
測試數(shù)據(jù):在初始的測試環(huán)境中需要輸入一些適當(dāng)?shù)臏y試數(shù)
據(jù),目的是識別數(shù)據(jù)狀態(tài)并且驗證用于測試的測試案例,在正式的
測試開始以前對測試案例進(jìn)行調(diào)試,將正式測試開始時的錯誤降到
最低。在測試進(jìn)行到關(guān)鍵過程環(huán)節(jié)時,非常有必要進(jìn)行數(shù)據(jù)狀態(tài)的
備份。制造初始數(shù)據(jù)意味著將合適的數(shù)據(jù)存儲下來,需要的時候恢
復(fù)它,初始數(shù)據(jù)提供了一個基線用來評估測試執(zhí)行的結(jié)果。
在測試正式執(zhí)行時,還需要準(zhǔn)備業(yè)務(wù)測試數(shù)據(jù),比如測試并發(fā)
查詢業(yè)務(wù),那么要求對應(yīng)的數(shù)據(jù)庫和表中有相當(dāng)?shù)臄?shù)據(jù)量以及數(shù)據(jù)
的種類應(yīng)能覆蓋全部業(yè)務(wù)。
模擬真實環(huán)境測試,有些軟件,特別是面向大眾的商品化軟件,
在測試時常常需要考察在真實環(huán)境中的表現(xiàn)。如測試殺毒軟件的掃
描速度時一,硬盤上布置的不同類型文件的比例要盡量接近真實環(huán)
境,這樣測試出來的數(shù)據(jù)才有實際意義。
并發(fā)性能測試的種類與指標(biāo)
并發(fā)性能測試的種類取決于并發(fā)性能測試工具監(jiān)控的對象,以
QALoad自動化負(fù)載測試工具為例。軟件針對各種測試目標(biāo)提供了
DB2、DCOM、ODBC、ORACLE、NETLoad、Corba.QARun、
SAP、SQLServer、Sybase>Telnet、TUXEDO、UNIFACE、
WinSock、WWW>JavaScript等不同的監(jiān)控對象,支持Windows
和UNIX測試環(huán)境。
最關(guān)鍵的仍然是測試過程中對監(jiān)控對象的靈活應(yīng)用,例如目前
三層結(jié)構(gòu)的運行模式廣泛使用,對中間件的并發(fā)性能測試作為問題
被提到議事日程上來,許多系統(tǒng)都采用了國產(chǎn)中間件,選擇Java
Script監(jiān)控對象,手工編寫腳本,可以達(dá)到測試目的。
采用自動化負(fù)載測試工具執(zhí)行的并發(fā)性能測試,基本遵循的測
試過程有:測試需求與測試內(nèi)容,測試案例制定,測試環(huán)境準(zhǔn)備,
測試腳本錄制、編寫與調(diào)試,腳本分配、回放配置與加載策略,測
試執(zhí)行跟蹤,結(jié)果分析與定位問題所在,測試報告與測試評估。
并發(fā)性能測試監(jiān)控的對象不同,測試的主要指標(biāo)也不相同,主
要的測試指標(biāo)包括交易處理性能指標(biāo)和UNIX資源監(jiān)控。其中,交
易處理性能指標(biāo)包括交易結(jié)果、每分鐘交易數(shù)、交易響應(yīng)時間(Min:
最小服務(wù)器響應(yīng)時間;Mean:平均服務(wù)器響應(yīng)時間;Max:最大
服務(wù)器響應(yīng)時間;StdDev:事務(wù)處理服務(wù)器響應(yīng)的偏差,值越大,
偏差越大;Median:中值響應(yīng)時間;90%:90%事務(wù)處理的服務(wù)
器響應(yīng)時間)、虛擬并發(fā)用戶數(shù)。
應(yīng)用實例:“新華社多媒體數(shù)據(jù)庫V1.0”性能測試
中國軟件評測中心(CSTC)根據(jù)新華社技術(shù)局提出的《多媒
體數(shù)據(jù)庫(一期)性能測試需求》和GB/T17544《軟件包質(zhì)量要
求和測試》的國家標(biāo)準(zhǔn),使用工業(yè)標(biāo)準(zhǔn)級負(fù)載測試工具對新華社使
用的“新華社多媒體數(shù)據(jù)庫V1.0”進(jìn)行了性能測試。
性能測試的目的是模擬多用戶并發(fā)訪問新華社多媒體數(shù)據(jù)庫,
執(zhí)行關(guān)鍵檢索業(yè)務(wù),分析系統(tǒng)性能。
性能測試的重點是針對系統(tǒng)并發(fā)壓力負(fù)載較大的主要檢索業(yè)
務(wù),進(jìn)行并發(fā)測試和疲勞測試,系統(tǒng)采用B/S運行模式。并發(fā)測試
設(shè)計了特定時間段內(nèi)分別在中文庫、英文庫、圖片庫中進(jìn)行單檢索
詞、多檢索詞以及變檢索式、混合檢索業(yè)務(wù)等并發(fā)測試案例。疲勞
測試案例為在中文庫中并發(fā)用戶數(shù)200,進(jìn)行測試周期約8小時的
單檢索詞檢索。在進(jìn)行并發(fā)和疲勞測試的同時,監(jiān)測的測試指標(biāo)包
括交易處理性能以及UNIX(Linux)、Oracle>Apache資源等。
測試結(jié)論:在新華社機房測試環(huán)境和內(nèi)網(wǎng)測試環(huán)境中,100M
帶寬情況下,針對規(guī)定的各并發(fā)測試案例,系統(tǒng)能夠承受并發(fā)用戶
數(shù)為200的負(fù)載壓力,最大交易數(shù)/分鐘達(dá)到78.73,運行基本穩(wěn)
定,但隨著負(fù)載壓力增大,系統(tǒng)性能有所衰減。
系統(tǒng)能夠承受200并發(fā)用戶數(shù)持續(xù)周期約8小時的疲勞壓力,
基本能夠穩(wěn)定運行。
通過對系統(tǒng)UNIX(Linux)、Oracle和Apache資源的監(jiān)控,
系統(tǒng)資源能夠滿足上述并發(fā)和疲勞性能需求,且系統(tǒng)硬件資源尚有
較大利用余地。
當(dāng)并發(fā)用戶數(shù)超過200時-,監(jiān)控至I」HTTP500、connect和超
時錯誤,且Web服務(wù)器報內(nèi)存溢出錯誤,系統(tǒng)應(yīng)進(jìn)一步提高性能,
以支持更大并發(fā)用戶數(shù)。
建議進(jìn)一步優(yōu)化軟件系統(tǒng),充分利用硬件資源,縮短交易響應(yīng)
時間。
疲勞強度與大數(shù)據(jù)量測試
疲勞測試是采用系統(tǒng)穩(wěn)定運行情況下能夠支持的最大并發(fā)用
戶數(shù),持續(xù)執(zhí)行一段時間業(yè)務(wù),通過綜合分析交易執(zhí)行指標(biāo)和資源
監(jiān)控指標(biāo)來確定系統(tǒng)處理最大工作量強度性能的過程。
疲勞強度測試可以采用工具自動化的方式進(jìn)行測試,也可以手
工編寫程序測試,其中后者占的比例較大。
一般情況下以服務(wù)器能夠正常穩(wěn)定響應(yīng)請求的最大并發(fā)用戶
數(shù)進(jìn)行一定時間的疲勞測試,獲取交易執(zhí)行指標(biāo)數(shù)據(jù)和系統(tǒng)資源監(jiān)
控數(shù)據(jù)。如出現(xiàn)錯誤導(dǎo)致測試不能成功執(zhí)行,則及時調(diào)整測試指標(biāo),
例如降低用戶數(shù)、縮短測試周期等。還有一種情況的疲勞測試是對
當(dāng)前系統(tǒng)性能的評估,用系統(tǒng)正常業(yè)務(wù)情況下并發(fā)用戶數(shù)為基礎(chǔ),
進(jìn)行一定時間的疲勞測試。
大數(shù)據(jù)量測試可以分為兩種類型:針對某些系統(tǒng)存儲、傳輸、
統(tǒng)計、查詢等業(yè)務(wù)進(jìn)行大數(shù)據(jù)量的獨立數(shù)據(jù)量測試;與壓力性能測
試、負(fù)載性能測試、疲勞性能測試相結(jié)合的綜合數(shù)據(jù)量測試方案。
大數(shù)據(jù)量測試的關(guān)鍵是測試數(shù)據(jù)的準(zhǔn)備,可以依靠工具準(zhǔn)備測試數(shù)
據(jù)。
速度測試目前主要是針對關(guān)鍵有速度要求的業(yè)務(wù)進(jìn)行手工測
速度,可以在多次測試的基礎(chǔ)上求平均值,可以和工具測得的響應(yīng)
時間等指標(biāo)做對比分析。
?應(yīng)用在網(wǎng)絡(luò)上性能的測試
應(yīng)用在網(wǎng)絡(luò)上性能的測試重點是利用成熟先進(jìn)的自動化技術(shù)
進(jìn)行網(wǎng)絡(luò)應(yīng)用性能監(jiān)控、網(wǎng)絡(luò)應(yīng)用性能分析和網(wǎng)絡(luò)預(yù)測。
網(wǎng)絡(luò)應(yīng)用性能分析
網(wǎng)絡(luò)應(yīng)用性能分析的目的是準(zhǔn)確展示網(wǎng)絡(luò)帶寬、延遲、負(fù)載和
TCP端口的變化是如何影響用戶的響應(yīng)時間的。利用網(wǎng)絡(luò)應(yīng)用性
能分析工具,例如ApplicationExpert,能夠發(fā)現(xiàn)應(yīng)用的瓶頸,我
們可知應(yīng)用在網(wǎng)絡(luò)上運行時在每個階段發(fā)生的應(yīng)用行為,在應(yīng)用線
程級分析應(yīng)用的問題??梢越鉀Q多種問題:客戶端是否對數(shù)據(jù)庫服
務(wù)器運行了不必要的請求?當(dāng)服務(wù)器從客戶端接受了一個查詢,應(yīng)
用服務(wù)器是否花費了不可接受的時間聯(lián)系數(shù)據(jù)庫服務(wù)器?在投產(chǎn)
前預(yù)測應(yīng)用的響應(yīng)時間;利用ApplicationExpert調(diào)整應(yīng)用在廣域
網(wǎng)上的性能;ApplicationExpert能夠讓你快速、容易地仿真應(yīng)用
性能,根據(jù)最終用戶在不同網(wǎng)絡(luò)配置環(huán)境下的響應(yīng)時間,用戶可以
根據(jù)自己的條件決定應(yīng)用投產(chǎn)的網(wǎng)絡(luò)環(huán)境。
網(wǎng)絡(luò)應(yīng)用性能監(jiān)控
在系統(tǒng)試運行之后,需要及時準(zhǔn)確地了解網(wǎng)絡(luò)上正在發(fā)生什么
事情;什么應(yīng)用在運行,如何運行;多少PC正在訪問LAN或WAN;
哪些應(yīng)用程序?qū)е孪到y(tǒng)瓶頸或資源競爭,這時網(wǎng)絡(luò)應(yīng)用性能監(jiān)控以
及網(wǎng)絡(luò)資源管理對系統(tǒng)的正常穩(wěn)定運行是非常關(guān)鍵的。利用網(wǎng)絡(luò)應(yīng)
用性能監(jiān)控工具,可以達(dá)到事半功倍的效果,在這方面我們可以提
供的工具是NetworkVantage。通俗地講,它主要用來分析關(guān)鍵應(yīng)
用程序的性能,定位問題的根源是在客戶端、服務(wù)器、應(yīng)用程序還
是網(wǎng)絡(luò)。在大多數(shù)情況下用戶較關(guān)心的問題還有哪些應(yīng)用程序占用
大量帶寬,哪些用戶產(chǎn)生了最大的網(wǎng)絡(luò)流量,這個工具同樣能滿足
要求。
網(wǎng)絡(luò)預(yù)測
考慮到系統(tǒng)未來發(fā)展的擴展性,預(yù)測網(wǎng)絡(luò)流量的變化、網(wǎng)絡(luò)結(jié)
構(gòu)的變化對用戶系統(tǒng)的影響非常重要。根據(jù)規(guī)劃數(shù)據(jù)進(jìn)行預(yù)測并及
時提供網(wǎng)絡(luò)性能預(yù)測數(shù)據(jù)。我們利用網(wǎng)絡(luò)預(yù)測分析容量規(guī)劃工具
PREDICTOR可以作到:設(shè)置服務(wù)水平、完成日網(wǎng)絡(luò)容量規(guī)劃、離
線測試網(wǎng)絡(luò)、網(wǎng)絡(luò)失效和容量極限分析、完成日常故障診斷、預(yù)測
網(wǎng)絡(luò)設(shè)備遷移和網(wǎng)絡(luò)設(shè)備升級對整個網(wǎng)絡(luò)的影響。
從網(wǎng)絡(luò)管理軟件獲取網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、從現(xiàn)有的流量監(jiān)控軟件獲
取流量信息(若沒有這類軟件可人工生成流量數(shù)據(jù)),這樣可以得
到現(xiàn)有網(wǎng)絡(luò)的基本結(jié)構(gòu)。在基本結(jié)構(gòu)的基礎(chǔ)上,可根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)的
變化、網(wǎng)絡(luò)流量的變化生成報告和圖表,說明這些變化是如何影響
網(wǎng)絡(luò)性能的。PREDICTOR提供如下信息:根據(jù)預(yù)測的結(jié)果幫助
用戶及時升級網(wǎng)絡(luò),避免因關(guān)鍵設(shè)備超過利用閥值導(dǎo)致系統(tǒng)性能下
降;哪個網(wǎng)絡(luò)設(shè)備需要升級,這樣可減少網(wǎng)絡(luò)延遲、避免網(wǎng)絡(luò)瓶頸;
根據(jù)預(yù)測的結(jié)果避免不必要的網(wǎng)絡(luò)升級。
?應(yīng)用在服務(wù)器上性能的測試
對于應(yīng)用在服務(wù)器上性能的測試,可以采用工具監(jiān)控,也可以
使用系統(tǒng)本身的監(jiān)控命令,例如Tuxedo中可以使用Top命令監(jiān)控
資源使用情況。實施測試的目的是實現(xiàn)服務(wù)器設(shè)備、服務(wù)器操作系
統(tǒng)、數(shù)據(jù)庫系統(tǒng)、應(yīng)用在服務(wù)器上性能的全面監(jiān)控,測試原理如下
圖。
UNIX資源監(jiān)控指標(biāo)和描述
監(jiān)控指標(biāo)描述
平均負(fù)載系統(tǒng)正常狀態(tài)下,最后60秒同步進(jìn)程的平均個數(shù)
沖突率在以太網(wǎng)上監(jiān)測到的每秒沖突數(shù)
進(jìn)程/線程交換率進(jìn)程和線程之間每秒交換次數(shù)
CPU利用率CPU占用率(%)
磁盤交換率磁盤交換速率
接收包錯誤率接收以太網(wǎng)數(shù)據(jù)包時每秒錯誤數(shù)
包輸入率每秒輸入的以太網(wǎng)數(shù)據(jù)包數(shù)目
中斷速率CPU每秒處理的中斷數(shù)
輸出包錯誤率發(fā)送以太網(wǎng)數(shù)據(jù)包時每秒錯誤數(shù)
包輸入率每秒輸出的以太網(wǎng)數(shù)據(jù)包數(shù)目
讀入內(nèi)存頁速率物理內(nèi)存中每秒讀入內(nèi)存頁的數(shù)目
寫出內(nèi)存頁速率每秒從物理內(nèi)存中寫到頁文件中的內(nèi)存頁數(shù)
目或者從物理內(nèi)存中刪掉的內(nèi)存頁數(shù)目
內(nèi)存頁交換速率每秒寫入內(nèi)存頁和從物理內(nèi)存中讀出頁的個
數(shù)
進(jìn)程入交換率交換區(qū)輸入的進(jìn)程數(shù)目
進(jìn)程出交換率交換區(qū)輸出的進(jìn)程數(shù)目
系統(tǒng)CPU利用率系統(tǒng)的CPU占用率(%)
用戶CPU利用率用戶模式下的CPU占用率(%)
磁盤阻塞磁盤每秒阻塞的字節(jié)數(shù)
二、為什么進(jìn)行性能測試?
目的是驗證軟件系統(tǒng)是否能夠達(dá)到用戶提出的性能指標(biāo)(需求
規(guī)格說明書),同時發(fā)現(xiàn)軟件系統(tǒng)中存在的性能瓶頸,優(yōu)化軟件,
最后起到優(yōu)化系統(tǒng)的目的。
包括以下兒個方面
1.評估系統(tǒng)的能力,測試中得到的負(fù)荷和響應(yīng)時間數(shù)據(jù)可以被用
于驗證所計劃的模型的能力,并幫助作出決策。
2.識別體系中的弱點:受控的負(fù)荷可以被增加到一個極端的水平
(峰值),并突破它,從而修復(fù)體系的瓶頸或薄弱的地方。
3.系統(tǒng)調(diào)優(yōu):重復(fù)運行測試,驗證調(diào)整系統(tǒng)的活動得到了預(yù)期的
結(jié)果,從而改進(jìn)性能。
檢測軟件中的問題:長時間的測試執(zhí)行可導(dǎo)致程序發(fā)生由于內(nèi)存泄
露引起的失敗,揭示程序中的隱含的問題或沖突。
4.驗證穩(wěn)定性(resilience)可靠性(reliability):在一個生產(chǎn)
負(fù)荷下執(zhí)行測試一定的時間是評估系統(tǒng)穩(wěn)定性和可靠性是否滿足
要求的唯一方法。
性能測試類型包括負(fù)載測試,強度測試,容量測試等
負(fù)載測試:負(fù)載測試是一種性能測試指數(shù)據(jù)在超負(fù)荷環(huán)境中運
行,程序是否能夠承擔(dān)。
強度測試:強度測試是一種性能測試,他在系統(tǒng)資源特別低
的情況下軟件系統(tǒng)運行情況。
容量測試:確定系統(tǒng)可處理同時在線的最大用戶數(shù)(對服務(wù)器
有請求和無請求)
觀察指標(biāo):
性能測試主要是通過自動化的測試工具模擬多種正常、峰值以
及異常負(fù)載條件來對系統(tǒng)的各項性能指標(biāo)進(jìn)行測試。負(fù)載測試和壓
力測試都屬于性能測試,兩者可以結(jié)合進(jìn)行。通過負(fù)載測試,確定
在各種工作負(fù)載下系統(tǒng)的性能,目標(biāo)是測試當(dāng)負(fù)載逐漸增加時,系
統(tǒng)各項性能指標(biāo)的變化情況。壓力測試是通過確定一個系統(tǒng)的瓶頸
或者不能接收的性能點,來獲得系統(tǒng)能提供的最大服務(wù)級別的測
試。
在實際中作中我們經(jīng)常會對兩種類型軟件進(jìn)行測試:bs和cs,
這兩方面的性能指標(biāo)一般需要哪些內(nèi)容呢?
Bs結(jié)構(gòu)程序一般會關(guān)注的通用指標(biāo)如下(簡):
Web服務(wù)器指標(biāo):
*AvgRps:平均每秒鐘響應(yīng)次數(shù)=總請求時間/秒數(shù);
*Avgtimetolastbyteperterstion(mstes):平均每秒業(yè)務(wù)角本
的迭代次數(shù),有人會把這兩者混淆;
*SuccessfulRounds:成功的請求;
*FailedRounds:失敗的請求;
*SuccessfulHits:成功的點擊次數(shù);
*FailedHits:失敗的點擊次數(shù);
*HitsPerSecond:每秒點擊次數(shù);
*SuccessfulHitsPerSecond:每秒成功的點擊次數(shù);
*FailedHitsPerSecond:每秒失敗的點擊次數(shù);
*AttemptedConnections:嘗試鏈接數(shù);
CS結(jié)構(gòu)程序,由于一般軟件后臺通常為數(shù)據(jù)庫,所以我們更注重
數(shù)據(jù)庫的測試指標(biāo):
*User0Connections:用戶連接數(shù),也就是數(shù)據(jù)庫的連接數(shù)量;
*Numberofdeadlocks:數(shù)據(jù)庫死鎖;
*ButterCachehit:數(shù)據(jù)庫Cache的命中情況
當(dāng)然,在實際中我們還會察看多用戶測試情況下的內(nèi)存,
CPU,系統(tǒng)資源調(diào)用情況。這些指標(biāo)其實是引申出來性能測試中的
一種:競爭測試。什么是競爭測試,軟件競爭使用各種資源(數(shù)據(jù)
紀(jì)錄,內(nèi)存等),看他與其他相關(guān)系統(tǒng)對資源的爭奪能力。
我們知道軟件架構(gòu)在實際測試中制約著測試策略和工具的選
擇。如何選擇性能測試策略是我們在實際工作中需要了解的。一般
軟件可以按照系統(tǒng)架構(gòu)分成兒種類型:
c/s
client/server客戶端/服務(wù)器架構(gòu)
基于客戶端/服務(wù)器的三層架構(gòu)
基于客戶端/服務(wù)器的分布式架構(gòu)
b/s
基于瀏覽器/Web服務(wù)器的三層架構(gòu)
基于中間件應(yīng)用服務(wù)器的三層架構(gòu)I
基于Web服務(wù)器和中間件的多層架構(gòu)I
三、性能測試的步驟
在每種不同的系統(tǒng)架構(gòu)的實施中,開發(fā)人員可能選擇不同的實
現(xiàn)方式,造成實際情況紛繁復(fù)雜。我們不可能對每種技術(shù)都詳細(xì)解
說,這里只是介紹一種方法提供給你如何選擇測試策略,從而幫助
分析軟件不同部分的性能指標(biāo),進(jìn)而分析出整體架構(gòu)的性能指標(biāo)和
性能瓶頸。
由于工程和項目的不同,所選用的度量,評估方法也有不同之
處。不過仍然有一些通用的步驟幫助我們完成一個性能測試項目。
步驟如下
1.制定目標(biāo)和分析系統(tǒng)(用戶訪問量大、數(shù)據(jù)量比較大、,重點
功能模塊)
2.選擇測試度量的方法
3.學(xué)習(xí)的相關(guān)技術(shù)和工具
4.制定評估標(biāo)準(zhǔn)
5.設(shè)計測試用例
6.運行測試用例
7.分析測試結(jié)果
?制定目標(biāo)和分析系統(tǒng)
每一個性能測試計劃中第一步都會制定目標(biāo)和分析系統(tǒng)構(gòu)成。
只有明確目標(biāo)和了解系統(tǒng)構(gòu)成才會澄清測試范圍,知道在測試中要
掌握什么樣的技術(shù)。
目標(biāo):
1.確定客戶需求和期望
2.實際業(yè)務(wù)需求
3.系統(tǒng)需求
系統(tǒng)組成
系統(tǒng)組成這里包含兒方面含義:系統(tǒng)類別,系統(tǒng)構(gòu)成,系統(tǒng)功
能等。了解這些內(nèi)容的本質(zhì)其實是幫助我們明確測試的范圍,選者
適當(dāng)?shù)臏y試方法來進(jìn)行測試。
系統(tǒng)類別:分清系統(tǒng)類別是我們掌握什么樣的技術(shù)的前提,掌
握相應(yīng)技術(shù)做性能測試才可能成功。例如:系統(tǒng)類別是bs結(jié)構(gòu),
需要掌握http協(xié)議,java,html等技術(shù)?;蛘呤莄s結(jié)構(gòu),可能
要了解操作系統(tǒng),winsock,com等。所以甄別系統(tǒng)類別對于我們
來說很重要。
系統(tǒng)構(gòu)成:硬件設(shè)置,操作系統(tǒng)設(shè)置是性能測試的制約條件,
一般性能測試都是利用測試工具模仿大量的實際用戶操作,系統(tǒng)在
超負(fù)荷情形下運作。不同的系統(tǒng)構(gòu)成性能測試就會得到不同的結(jié)
果。
系統(tǒng)功能:系統(tǒng)功能指系統(tǒng)提供的不同子系統(tǒng),辦公管理系統(tǒng)
中的公文子系統(tǒng),會議子系統(tǒng)等,系統(tǒng)工能是性能測試中要模擬的
環(huán)節(jié),了解這些是必要的。
?選擇測試度量的方法
經(jīng)過第一步,將會對系統(tǒng)有清醒的認(rèn)識。接下來我們將把精力放在
軟件度量上,收集系統(tǒng)相關(guān)的數(shù)據(jù)。
度量的相關(guān)方面:
*制定規(guī)范
*制定相關(guān)流程,角色,職責(zé)
*制定改進(jìn)策略
*制定結(jié)果對比標(biāo)準(zhǔn)
?學(xué)習(xí)的相關(guān)技術(shù)和工具
性能測試是通過工具,模擬大量用戶操作,對系統(tǒng)增加負(fù)載。
所以需要掌握一定的工具知識才能進(jìn)行性能測試。大家都知道性能
測試工具一般通過winsock,http等協(xié)議紀(jì)錄用戶操作。而協(xié)議選擇
是基于軟件的系統(tǒng)架構(gòu)實現(xiàn)(web一般選擇http協(xié)議,cs選擇
winsock協(xié)議),不同的性能測試工具,腳本語言也不同,比如
rationalrobot中vu腳本用類c語言實現(xiàn)。
開展性能測試需要對各種性能測試工具進(jìn)行評估,因為每一種
性能測試工具都有自身的特點,只有經(jīng)過工具評估,才能選擇符合
現(xiàn)有軟件架構(gòu)的性能測試工具。確定測試工具后,需要組織測試人
員進(jìn)行工具的學(xué)習(xí),培訓(xùn)相關(guān)技術(shù)。
?制定評估標(biāo)準(zhǔn)
任何測試的目的都是確保軟件符合預(yù)先規(guī)定的目標(biāo)和要求。
性能測試也不例外。所以必須制定一套標(biāo)準(zhǔn)。
通常性能測試有四種模型技術(shù)可用于評估:
*線性投射:用大量的過去的,擴展的或者將來可能發(fā)生的
數(shù)據(jù)組成散布圖,利用這個圖表不斷和系統(tǒng)的當(dāng)前狀況對比。
*分析模型:用排隊論公式和算法預(yù)測響應(yīng)時間,利用描述
工作量的數(shù)據(jù)和系統(tǒng)本質(zhì)關(guān)聯(lián)起來
*模仿:模仿實際用戶的使用方法測試你的系統(tǒng)
*基準(zhǔn):定義測試和你最初的測試作為標(biāo)準(zhǔn),利用它和所有
后來進(jìn)行的測試結(jié)果進(jìn)行對比
?設(shè)計測試用例
設(shè)計測試用例是在了解軟件業(yè)務(wù)流程的基礎(chǔ)上。設(shè)計測試用例
的原則是受最小的影響提供最多的測試信息,設(shè)計測試用例的目標(biāo)
是一次盡可能的包含多個測試要素。這些測試用例必須是測試工具
可以實現(xiàn)的,不同的測試場景將測試不同的功能。因為性能測試不
同于平時的測試用例,盡可能把性能測試用例設(shè)計的復(fù)雜,才有可
能發(fā)現(xiàn)軟件的性能瓶頸。
?運行測試用例
通過性能測試工具運行測試用例。同一環(huán)境下作的性能測試得
到的測試結(jié)果是不準(zhǔn)確的,所以在運行這些測試用例的時候,需要
用不同的測試環(huán)境,不同的機器配置上運行。
?分析測試結(jié)果
運行測試用例后,收集相關(guān)信息,進(jìn)行數(shù)據(jù)統(tǒng)計分析,找到性
能瓶頸。通過排除誤差和其他因素,讓測試結(jié)果體現(xiàn)接近真實情況。
不同的體系結(jié)構(gòu)分析測試結(jié)果的方法也不同,bs結(jié)構(gòu)我們會分析
網(wǎng)絡(luò)帶寬,流量對用戶操作響應(yīng)的影響,而CS結(jié)構(gòu)我們可能更關(guān)
心會系統(tǒng)整體配置對用戶操作的影響。
四、性能測試方法
對于企業(yè)應(yīng)用程序,有許多進(jìn)行性能測試的方法,其中一些方
法實行起來要比其他方法困難。所要進(jìn)行的性能測試的類型取決于
想要達(dá)到的結(jié)果。例如,對于可再現(xiàn)性,基準(zhǔn)測試是最好的方法。
而要從當(dāng)前用戶負(fù)載的角度測試系統(tǒng)的上限,則應(yīng)該使用容量規(guī)劃
測試。本文將介紹兒種設(shè)置和運行性能測試的方法,并討論這些方
法的區(qū)別。
如果不進(jìn)行合理的規(guī)劃,對J2EE應(yīng)用程序進(jìn)行性能測試將會
是一項令人望而生畏且有些混亂的任務(wù)。因為對于任何的軟件開發(fā)
流程,都必須收集需求、理解業(yè)務(wù)需要,并在進(jìn)行實際測試之前設(shè)
計出正式的進(jìn)度表。性能測試的需求由業(yè)務(wù)需要驅(qū)動,并由一組用
例闡明。這些用例可以基于歷史數(shù)據(jù)(例如,服務(wù)器一周的負(fù)載模
式)或預(yù)測的近似值。弄清楚需要測試的內(nèi)容之后,就需要知道如
何進(jìn)行測試了。
在開發(fā)階段前期,應(yīng)該使用基準(zhǔn)測試來確定應(yīng)用程序中是否出
現(xiàn)性能倒退?;鶞?zhǔn)測試可以在一個相對短的時間內(nèi)收集可重復(fù)的結(jié)
果。進(jìn)行基準(zhǔn)測試的最好方法是,每次測試改變一個且只改變一個
參數(shù)。例如,如果想知道增加JVM內(nèi)存是否會影響應(yīng)用程序的性
能,就逐次遞增JVM內(nèi)存(例如,從1024MB增至1224MB,
然后是1524MB,最后是2024MB),在每個階段收集結(jié)果和環(huán)
境數(shù)據(jù),記錄信息,然后轉(zhuǎn)到下一階段。這樣在分析測試結(jié)果時就
有跡可循.。下一小節(jié)我將介紹什么是基準(zhǔn)測試,以及運行基準(zhǔn)測試
的最佳參數(shù)。
開發(fā)階段后期,在應(yīng)用程序中的bug已經(jīng)被解決,應(yīng)用程序達(dá)
到一種穩(wěn)定狀態(tài)之后,可以運行更為復(fù)雜的測試,確定系統(tǒng)在不同
的負(fù)載模式下的表現(xiàn)。這些測試被稱為容量規(guī)劃測試、滲入測試
(soaktest)>峰谷測試(peak-resttest),它們旨在通過測試應(yīng)用程
序的可靠性、健壯性和可伸縮性來測試接近于現(xiàn)實世界的場景。對
于下面的描述應(yīng)該從抽象的意義上理解,因為每個應(yīng)用程序的使用
模式都是不同的。例如,容量規(guī)劃測試通常都使用較緩慢的
ramp-up(下文有定義),但是如果應(yīng)用程序在一天之中的某個時
段中有快速突發(fā)的流量,那么自然應(yīng)該修改測試以反映這種情況。
但是,要記住,因為更改了測試參數(shù)(比如ramp-up周期或用戶
的考慮時間-hink-time)),測試的結(jié)果肯定也會改變。一個不錯的
方法是,運行一系列的基準(zhǔn)測試,確立一個已知的可控環(huán)境,然后
再對變化進(jìn)行比較。
基準(zhǔn)測試
基準(zhǔn)測試的關(guān)鍵是要獲得一致的、可再現(xiàn)的結(jié)果??稍佻F(xiàn)的結(jié)
果有兩個好處:減少重新運行測試的次數(shù);對測試的產(chǎn)品和產(chǎn)生的
數(shù)字更為確信。使用的性能測試工具可能會對測試結(jié)果產(chǎn)生很大影
響。假定測試的兩個指標(biāo)是服務(wù)器的響應(yīng)時間和吞吐量,它們會受
到服務(wù)器上的負(fù)載的影響。服務(wù)器上的負(fù)載受兩個因素影響:同時
與服務(wù)器通信的連接(或虛擬用戶)的數(shù)目,以及每個虛擬用戶請
求之間的考慮時間的長短。很明顯,與服務(wù)器通信的用戶越多,負(fù)
載就越大。同樣,請求之間的考慮時間越短,負(fù)載也越大。這兩個
因素的不同組合會產(chǎn)生不同的服務(wù)器負(fù)載等級。記住,隨著服務(wù)器
上負(fù)載的增加,吞吐量會不斷攀升,直到到達(dá)一個點。
注意,吞吐量以穩(wěn)定的速度增長,然后在某一個點上穩(wěn)定下來。
在某一點上,執(zhí)行隊列開始增長,因為服務(wù)器上所有的線程都
已投入使用,傳入的請求不再被立即處理,而是放入隊列中,當(dāng)線
程空閑時再處理。
注意,最初的一段時間,執(zhí)行隊列的長度為零,然后就開始以
穩(wěn)定的速度增長。這是因為系統(tǒng)中的負(fù)載在穩(wěn)定增長,雖然最初系
統(tǒng)有足夠的空閑線程去處理增加的負(fù)載,最終它還是不能承受,而
必須將其排入隊列。
當(dāng)系統(tǒng)達(dá)到飽和點,服務(wù)器吞吐量保持穩(wěn)定后,就達(dá)到了給定
條件下的系統(tǒng)上限。但是,隨著服務(wù)器負(fù)載的繼續(xù)增長,系統(tǒng)的響
應(yīng)時間也隨之延長,雖然吞吐量保持穩(wěn)定。
注意,在執(zhí)行隊列(圖2)開始增長的同時,響應(yīng)時間也開始
以遞增的速度增長。這是因為請求不能被及時處理。
為了獲得真正可再現(xiàn)的結(jié)果,應(yīng)該將系統(tǒng)置于相同的高負(fù)載
下。為此,與服務(wù)器通信的虛擬用戶應(yīng)該將請求之間的考慮時間設(shè)
為零。這樣服務(wù)器會立即超載,并開始構(gòu)建執(zhí)行隊列。如果請求(虛
擬用戶)數(shù)保持一致,基準(zhǔn)測試的結(jié)果應(yīng)該會非常精確,完全可以
再現(xiàn)。
您可能要問的一個問題是:“如何度量結(jié)果?”對于一次給定的
測試,應(yīng)該取響應(yīng)時間和吞吐量的平均值。精確地獲得這些值的唯
一方法是一次加載所有的用戶,然后在預(yù)定的時間段內(nèi)持續(xù)運行。
這稱為“flat”測試。
與此相對應(yīng)的是“ramp-up”測試。
ramp-up測試中的用戶是交錯上升的(每兒秒增加一些新用
戶)。ramp-up測試不能產(chǎn)生精確和可重現(xiàn)的平均值,這是因為由
于用戶的增加是每次一部分,系統(tǒng)的負(fù)載在不斷地變化。因此,flat
運行是獲得基準(zhǔn)測試數(shù)據(jù)的理想模式。
這不是在貶低ramp-up測試的價值。實際上,ramp-up測試
對找出以后要運行的flat測試的范圍非常有用。ramp-up測試的優(yōu)
點是,可以看出隨著系統(tǒng)負(fù)載的改變,測量值是如何改變的。然后
可以據(jù)此選擇以后要運行的flat測試的范圍。
Flat測試的問題是系統(tǒng)會遇到“波動”效果。
)
注意波動的出現(xiàn),吞吐量不再是平滑的。
這在系統(tǒng)的各個方面都有所體現(xiàn),包括CPU的使用量。
注意,每隔一段時間就會出現(xiàn)一個波形。CPU使用量不再是
平滑的,而是有了像吞吐量圖那樣的尖峰。
此外,執(zhí)行隊列也承受著不穩(wěn)定的負(fù)載,因此可以看到,隨著
系統(tǒng)負(fù)載的增加和減少,執(zhí)行隊列也在增長和縮減。
注意,每隔一段時間就會出現(xiàn)一個波形。執(zhí)行隊列曲線與上面
的CPU使用量圖非常相似。
最后,系統(tǒng)中事務(wù)的響應(yīng)時間也遵循著這個波動模式。
注意,每隔一段時間就會出現(xiàn)一個波形。事務(wù)的響應(yīng)時間也與
上面的圖類似,只不過其效果隨著時間的推移逐漸減弱。
當(dāng)測試中所有的用戶都同時執(zhí)行兒乎相同的操作時,就會發(fā)生
這種現(xiàn)象。這將會產(chǎn)生非常不可靠和不精確的結(jié)果,所以必須采取
一些措施防止這種情況的出現(xiàn)。有兩種方法可以從這種類型的結(jié)果
中獲得精確的測量值。如果測試可以運行相當(dāng)長的時間(有時是兒
個小時,取決于用戶的操作持續(xù)的時間),最后由于隨機事件的本
性使然,服務(wù)器的吞吐量會被“拉平”。或者,可以只選取波形中兩
個平息點之間的測量值。該方法的缺點是可以捕獲數(shù)據(jù)的時間非常
短。
性能規(guī)劃測試
對于性能規(guī)劃類型的測試來說,其目標(biāo)是找出,在特定的環(huán)境
下,給定應(yīng)用程序的性能可以達(dá)到何種程度。此時可重現(xiàn)性就不如
在基準(zhǔn)測試中那么重要了,因為測試中通常都會有隨機因子。引入
隨機因子的目的是為了盡量模擬具有真實用戶負(fù)載的現(xiàn)實世界應(yīng)
用程序。通常,具體的目標(biāo)是找出系統(tǒng)在特定的服務(wù)器響應(yīng)時間下
支持的當(dāng)前用戶的最大數(shù)。例如,您可能想知道:如果要以5秒或
更少的響應(yīng)時間支持8,000個當(dāng)前用戶,需要多少個服務(wù)器?要回
答這個問題,需要知道系統(tǒng)的更多信息。
要確定系統(tǒng)的容量,需要考慮兒個因素。通常,服務(wù)器的用戶
總數(shù)非常大(以十萬計),但是實際上,這個數(shù)字并不能說明什么。
真正需要知道的是,這些用戶中有多少是并發(fā)與服務(wù)器通信的。其
次要知道的是,每個用戶的“考慮時間”即請求間時間是多少。這非
常重要,因為考慮時間越短,系統(tǒng)所能支持的并發(fā)用戶越少。例如,
如果用戶的考慮時間是1秒,那么系統(tǒng)可能只能支持?jǐn)?shù)百個這樣的
并發(fā)用戶。但是,如果用戶的考慮時間是30秒,那么系統(tǒng)則可能
支持?jǐn)?shù)萬個這樣的并發(fā)用戶(假定硬件和應(yīng)用程序都是相同的)。
在現(xiàn)實世界中,通常難以確定用戶的確切考慮時間。還要注意,在
現(xiàn)實世界中,用戶不會精確地按照間隔時間發(fā)出請求。
于是就引入了隨機性。如果知道普通用戶的考慮時間是5秒,
誤差為20%,那么在設(shè)計負(fù)載測試時,就要確保請求間的時間為5x
(1+/-20%)秒。此外,可以利用“調(diào)步”的理念向負(fù)載場景中引入
更多的隨機性。它是這樣的:在一個虛擬用戶完成一整套的請求后,
該用戶暫停一個設(shè)定的時間段,或者一個小的隨機時間段(例如,
2x(1+/-25%)秒),然后再繼續(xù)執(zhí)行下一套請求。將這兩種隨
機化方法運用到測試中,可以提供更接近于現(xiàn)實世界的場景。
現(xiàn)在該進(jìn)行實際的容量規(guī)劃測試了。接下來的問題是:如何加
載用戶以模擬負(fù)載狀態(tài)?最好的方法是模擬高峰時間用戶與服務(wù)
器通信的狀況。這種用戶負(fù)載狀態(tài)是在一段時間內(nèi)逐步達(dá)到的嗎?
如果是,應(yīng)該使用ramp-up類型的測試,每隔兒秒增加x個用戶。
或者,所有用戶是在一個非
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年離婚財產(chǎn)分割及孩子撫養(yǎng)協(xié)議書
- 施工勞務(wù)承包合同協(xié)議書樣本
- 產(chǎn)業(yè)孵化基地入住協(xié)議
- 使用授權(quán)協(xié)議書要點解析
- 房屋互換合同格式
- 員工實習(xí)期勞務(wù)協(xié)議
- 中外專有技術(shù)轉(zhuǎn)讓協(xié)議
- 標(biāo)準(zhǔn)版委托檢驗檢測協(xié)議書
- 5.2 凝聚價值追求 (大單元教學(xué)設(shè)計) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級上冊
- 建筑項目施工合同書范本
- GB/T 25217.7-2019沖擊地壓測定、監(jiān)測與防治方法第7部分:采動應(yīng)力監(jiān)測方法
- 《幼兒衛(wèi)生學(xué)》配套教學(xué)課件
- 《大體積混凝土》課件
- 中國電力工業(yè)發(fā)展史課件
- 五年級上冊數(shù)學(xué)課件-第5單元 6.解方程(1)∣人教新課標(biāo) (共14張PPT)
- 大學(xué)生畢業(yè)論文寫作指導(dǎo)課件
- 新達(dá)摩盤產(chǎn)品操作手冊
- 公共營養(yǎng)師四級理論試卷及答案
- 人教版地理必修一熱力環(huán)流課件
- 出境旅游合同范本(中英文版)
- 會計師事務(wù)所驗資工作底稿模板
評論
0/150
提交評論