負載壓力測試工具實踐課件_第1頁
負載壓力測試工具實踐課件_第2頁
負載壓力測試工具實踐課件_第3頁
負載壓力測試工具實踐課件_第4頁
負載壓力測試工具實踐課件_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

負載壓力測試工具實踐February231目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐2負載壓力測試工具HP公司(原MI)LoadrunnerIBM公司(原Rational)RationalPerformanceTesterCompuware公司QAloadMicrosoft公司W(wǎng)AS3負載壓力測試工具體系結(jié)構(gòu)圖4負載壓力測試工具應(yīng)用組件5負載壓力測試工具VuGen虛擬用戶生成器(VUGen)完成腳本記錄。VUGen是在客戶桌面上運行的部件,它捕獲實際客戶應(yīng)用和服務(wù)器之間的通訊。VUGen通過將各種用戶請求發(fā)送至服務(wù)器來完全模擬一個真實用戶的實際行為。VUGen能支持Netscape和InternetExplorer瀏覽器,或任何其它第三方的支持代理服務(wù)器設(shè)置的瀏覽器。完成錄制后,一個測試腳本就生成了6負載壓力測試工具ControllerLoadRunner控制器提供一組性能監(jiān)測器,在負載測試過程中監(jiān)測系統(tǒng)各層面的每一部件的性能。通過記錄整個系統(tǒng)所有性能數(shù)據(jù),測試人員可以將這些信息對應(yīng)最終用戶的負載和響應(yīng)時間,以定位瓶頸所在。LoadRunner為網(wǎng)絡(luò)、網(wǎng)絡(luò)服務(wù)器和大多數(shù)的常規(guī)Web服務(wù)器,應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器提供性能監(jiān)測。性能監(jiān)測以一種完全不干擾被測系統(tǒng)的方式進行,最大限度地減少對性能的影響。所有的這些監(jiān)測器都與硬件、操作系統(tǒng)無關(guān),特別是不需要在目標(biāo)服務(wù)器上安裝任何探針軟件。7負載壓力測試工具AnalysisLoadRunner的Analysis提供一個集成環(huán)境,集中收集所有在測試周期中產(chǎn)生的數(shù)據(jù)。由于這個工具功能強大且使用簡單,測試人員可以創(chuàng)建跨場景的圖表數(shù)據(jù)比較,增強數(shù)據(jù)分析的能力和速度。8負載壓力測試工具LoadGeneratoragentLoadGenerator是負載生成器,在多臺機器上運行vuService方式運行agent可以運行全部類型(GUI(WinRunner,QuickTestProfessional,etc.)orGUI-likescripts(Citrix,SAPGUI,etc.)的vuser腳本,運行magentservice.exe程序。Process方式運行agent可以模擬更多vuser,但是不能夠運行(GUIandSAPVusers),運行magentproc.exe程序。兩種模式切換

cd\PROGRA~1\MERCUR~1\MERCUR~1\LAUNCH~1\bin

magentservice.exe-remove;asprocessmagentservice.exe-install;asserver9負載壓力測試工具recording&scripting生成的腳本文件位置缺省情況下.htm和資源文件存放在X:\ProgramFiles\MercuryInteractive\LoadRunner\scripts每個腳本運行設(shè)置的配置文件vuser.cfg放在每個vuser腳本目錄(thinktime,iterations,log,web)vuser.usp文件包括了腳本運行邏輯數(shù)據(jù)文件位置:缺省情況系統(tǒng)保存它們到腳本目錄運行結(jié)果文件C:\DocumentsandSettings\Tester.LOADTEST\LocalSettings\Temp--Tester.LOADTEST為當(dāng)前用戶名10負載壓力測試工具在“虛擬用戶發(fā)生器”中:執(zhí)行單用戶操作ServerClientApp在“控制臺”中運行已錄制的腳本,多個用戶并發(fā)訪問服務(wù)器VirtualUsersServer單用戶與并發(fā)用戶11目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐12負載壓力測試流程系統(tǒng)分析建立虛擬用戶腳本建立負載測試場景運行測試,同步監(jiān)測應(yīng)用性能分析結(jié)果13負載壓力測試流程系統(tǒng)分析性能測試需求分析測試數(shù)據(jù)分析測試用例制定系統(tǒng)結(jié)構(gòu)掌握,包括:網(wǎng)絡(luò)拓撲結(jié)構(gòu)服務(wù)器拓撲結(jié)構(gòu)服務(wù)器負載平衡測試機要求測試工具要求14創(chuàng)建腳本1、選擇VirtualUserGenerator,vugen主窗口打開2、選擇File>New3、從ProtocolType列表中選擇協(xié)議4、點StartRecording按狃負載壓力測試流程156、對于win32應(yīng)用程序:Programtorecord:輸入需要記錄的win32應(yīng)用程序ProgramArguments:對上面指定的應(yīng)用程序指定一個可執(zhí)行的命令參數(shù),例如:如果上面的應(yīng)用程序為plus32.exe,你在這里指定一個參數(shù)peter@neptune,這個將連接用戶peter到服務(wù)器neptune當(dāng)在開始plus32.exe的時候。WorkingDirectory:為應(yīng)用程序指定一個工作路徑

創(chuàng)建腳本5、對于internet應(yīng)用程序:Programtorecord:選擇瀏覽器或者需要記錄的internet應(yīng)用程序URLAddress:指定一個需要開始的url地址WorkingDirectory:為應(yīng)用程序指定一個工作路徑

負載壓力測試流程16創(chuàng)建腳本1、結(jié)束錄制,轉(zhuǎn)換到vuser_end,執(zhí)行關(guān)閉程序。2、在記錄工具條上點StopRecording3、點save來保存記錄的部分4、可以將整個腳本保存為壓縮文件;可以只保存runtime文件負載壓力測試流程17負載壓力測試流程知識點_Protocol正確的協(xié)議選擇將決定著測試能否正常執(zhí)行并且得到預(yù)期的測試結(jié)果18負載壓力測試流程知識點_transaction用于衡量某個事務(wù)的性能,需要在action的開始和結(jié)束位置插入這樣一個范圍,工具運行到該事務(wù)的開始點時,工具就會開始計時,直到運行到該事務(wù)的結(jié)束點,計時結(jié)束。19負載壓力測試流程知識點_rendezvous是一個并發(fā)訪問的點,在測試中,可能會要求系統(tǒng)能夠承受1000人同時提交數(shù)據(jù),可以通過在提交數(shù)據(jù)操作前面加入集合點,這樣當(dāng)虛擬用戶運行到提交數(shù)據(jù)的集合點時,工具就會檢查同時有多少用戶運行到集合點,如果不到1000人,工具就會命令已經(jīng)到集合點的用戶在此等待,當(dāng)在集合點等待的用戶達到1000人時,工具命令1000人同時去提交數(shù)據(jù),達到并發(fā)訪問的目的20負載壓力測試流程知識點_Parameter用變量代替常量,所有的性能測試盡可能考慮參數(shù)化,不參數(shù)化的測試結(jié)果將不能模擬實際運行情況,導(dǎo)致測試結(jié)果出現(xiàn)偏差21負載壓力測試流程關(guān)聯(lián)數(shù)據(jù)CorrelatedDataisdatawhichissenttotheclientformtheserver,andlatersendbacktotheserverbytheclient所謂的關(guān)聯(lián)就是把腳本中某些寫死的數(shù)據(jù),轉(zhuǎn)變成服務(wù)器所發(fā)送的、動態(tài)的、每次都不一樣的數(shù)據(jù)。工具提供二種方式找出需要做關(guān)聯(lián)的值:自動關(guān)聯(lián)和手動關(guān)聯(lián),包括:ManualcorrelationAutomaticcorrelationafterrecordingAutomaticcorrelationduringrecording關(guān)聯(lián)函數(shù):web_reg_save_param22負載壓力測試流程自動關(guān)聯(lián)VuGen內(nèi)建自動關(guān)聯(lián)引擎,可以自動找出需要關(guān)聯(lián)的值,并且使用關(guān)聯(lián)函數(shù)建立關(guān)聯(lián)自動關(guān)聯(lián)提供下列二種機制:RulesCorrelation:在錄制過程中VuGen會根據(jù)制定的規(guī)則,實時自動找出要關(guān)聯(lián)的值。規(guī)則來源有兩種:內(nèi)建、使用者自定CorrelationStudio:則是在執(zhí)行腳本后才會建立關(guān)聯(lián),也就是說當(dāng)錄制完腳本后,腳本至少須被執(zhí)行過一次才會作用。CorrelationStudio會嘗試找出錄制時與執(zhí)行時,服務(wù)器響應(yīng)內(nèi)容的差異部分,藉以找出需要關(guān)聯(lián)的數(shù)據(jù),并建立關(guān)聯(lián)23負載壓力測試流程自動關(guān)聯(lián)RuleCorrelation1、在RecordingOptions菜單,選擇InternetProtocol>Correlation,勾選Enablecorrelationduringrecording,啟用關(guān)聯(lián)2、假如錄制的應(yīng)用系統(tǒng)屬于內(nèi)建關(guān)聯(lián)規(guī)則的系統(tǒng),請勾選相對應(yīng)的應(yīng)用系統(tǒng)。或者也可以針對錄制的應(yīng)用系統(tǒng)加入新的關(guān)聯(lián)規(guī)則3、設(shè)定當(dāng)工具偵測到符合關(guān)聯(lián)規(guī)則的數(shù)據(jù)時,要如何處理:跳出一個訊息對話窗口,詢問您是否要建立關(guān)聯(lián)直接自動建立關(guān)聯(lián)錄制腳本24負載壓力測試流程自動關(guān)聯(lián)CorrelationStudioCorrelationStudio會嘗試找出錄制時與執(zhí)行時,服務(wù)器響應(yīng)內(nèi)容的差異部分,藉以找出需要關(guān)聯(lián)的數(shù)據(jù),建立關(guān)聯(lián)使用CorrelationStudio的步驟如下:1、錄制腳本并執(zhí)行2、執(zhí)行完畢后,VuGen會跳出下面的ScanActionforCorrelation窗口,詢問您是否要掃描腳本并建立關(guān)聯(lián),掃描完后,可以在腳本下方的CorrelationResults中看到掃描的結(jié)果3、對其中的掃描進行關(guān)聯(lián)如果沒有彈出,需要選擇【Tools】->【GeneralOption】選中的Correlation,選中ShowScanforcorrlerationspopupafterreplayofVuser即可25負載壓力測試流程手動關(guān)聯(lián)1、錄制兩份業(yè)務(wù)執(zhí)行過程的腳本2、使用WinDiff工具比較兩份腳本的區(qū)別3、使用web_reg_save_param函數(shù)手動建立關(guān)聯(lián)有時候手動關(guān)聯(lián)更可靠26負載壓力測試流程手動關(guān)聯(lián)舉例找出要捕捉的變量找出要捕捉的變量的左右邊界找出文本邊界在請求要捕捉變量的頁面前,增加web_reg_save_param函數(shù)增加parameter名,左右邊界等在腳本里對每次出現(xiàn)的該動態(tài)變量數(shù)值用該參數(shù)代替驗證是否能正確執(zhí)行27負載壓力測試流程如何找出要捕捉的變量用相同步驟錄制2個腳本若捕捉的動態(tài)變量是: --依賴于某輸入數(shù)據(jù),,重錄制時要改變該數(shù)據(jù) --不依賴于任何輸入數(shù)據(jù),則用相同數(shù)據(jù)重新錄制比較腳本 Tools>ComparewithVuser比較不同的行并高亮顯示(wdiff.exe)28負載壓力測試流程找出要捕捉的變量的左右邊界從wdiff里拷貝第1個腳本的動態(tài)變量到notepad中在執(zhí)行日志中,雙擊引起錯誤的行,則指針跳到腳本樹的相關(guān)行上并打開該html頁面找出邊界(推薦在TREEVIEW中的HTMLView中,而不是在SCRIPTVIEW):打開查找對話框(Ctrl+F),將wdiff中拷貝的字符串粘貼到查找對話框并進行查找LB應(yīng)盡可能的唯一,RB不應(yīng)出現(xiàn)在捕捉的字符串中在錄制日志中查找邊界29負載壓力測試流程找出文本邊界在ExecutionLog中查找出現(xiàn)位置:只在回放前Run-TimeSettings里選中了Datareturnedfromserver時生效30負載壓力測試流程在腳本中增加函數(shù)在請求變量值前增加函數(shù)web_reg_save_param()在回放中,當(dāng)VuGen執(zhí)行了web_reg_save_param(),發(fā)生3件事情:1.VuGen創(chuàng)建parameter2.當(dāng)下一步執(zhí)行時,VuGen搜索HTML頁面源代碼,尋找左右邊界中間的文本3.找到變量值后,VuGen將其存到指定parameter中,這樣,以后當(dāng)VuGen遇到腳本里引用了該parameter名后,就插入存儲的變量數(shù)值31負載壓力測試流程在腳本中增加函數(shù)如果你不確認在哪步獲取了變量值,那么:在ExecutionLog里,查找左邊界雙擊ExecutionLog里的該行,跳到對應(yīng)的ScripteView或TreeView里對應(yīng)的位置插入web_reg_save_param()輸入parameter名和屬性后,點OKVuGen就插入正確了32負載壓力測試流程增加函數(shù)參數(shù)Web_reg_save_param(“param_name”,”LB=“,”RB=“,ORD=“,LAST);命名parameter從HTML中拷貝邊界文本增加Executionlog里出現(xiàn)的序號到ORD參數(shù)中33負載壓力測試流程參數(shù)化腳本中的變量值選擇Edit>Replace.在FindWhat文本框里拷貝或輸入錄制時的變量值在ReplaceWith

文本框里輸入parameter名(必須和web_reg_save_param函數(shù)里定義的一樣,用{}包圍)點FindNext

查找當(dāng)工具找到后,點ReplaceAll

按鈕34負載壓力測試流程舉例web_reg_save_param("CpyID", "LB/IC=javascript:openInfo(window,", "RB/IC=,'{Company}',", "Ord=1", "NotFound=Error", LAST);Web_url(“”,”URL=/bdma/nextStep.do?cpyId={CpyID}&year={Year}&month={Mon}”,LAST);Web_submit_data(“”,”Name=companyId","Value={CpyID}",ENDITEM,LAST);35建立負載測試場景1、手動創(chuàng)建一個場景2、面向目標(biāo)的場景負載壓力測試流程36建立負載測試場景通過Schedule的設(shè)置完成對性能測試運行設(shè)計。如:模擬用戶遞增的情況;模擬用戶自動運行等負載壓力測試流程37建立負載測試場景帶寬、瀏覽器、網(wǎng)關(guān)等的設(shè)置負載壓力測試流程38建立負載測試場景測試用機的全面調(diào)用(別忘了“\\測試用機”用administrator登錄)負載壓力測試流程39建立負載測試場景對某個系統(tǒng)進行多個功能同時操作的性能測試同樣的腳本在多個測試用機上模擬運行….負載壓力測試流程40負載壓力測試流程建立負載測試場景可以增加包括服務(wù)器系統(tǒng)資源、應(yīng)用服務(wù)器的利用情況等的所有視圖41負載壓力測試流程執(zhí)行測試在Run選項卡中點擊StartScenario運行腳本,腳本運行時添加的計數(shù)器將顯示時實監(jiān)測的數(shù)據(jù),如圖:右上角出現(xiàn)紅色的區(qū)域,顯示有錯誤出現(xiàn),或者有失敗的事務(wù)處理點擊Errors行的紅色區(qū)域,則彈出所有錯誤信息的窗口42負載壓力測試流程結(jié)果分析事件統(tǒng)計報表錯誤匯總報告整體統(tǒng)計結(jié)果43負載壓力測試流程結(jié)果分析增加一個新的視圖:Web資源視圖系統(tǒng)資源視圖等等44負載壓力測試流程結(jié)果分析指標(biāo)的交叉擬合45目錄一、負載壓力測試工具二、負載壓力測試流程三、負載壓力測試心得四、負載壓力測試實踐46負載壓力測試心得

具體問題具體分析(由于不同的應(yīng)用系統(tǒng),不同的測試目的,不同的性能關(guān)注點)查找瓶頸時按以下順序,由易到難服務(wù)器硬件瓶頸-〉網(wǎng)絡(luò)瓶頸-〉操作系統(tǒng)瓶頸(參數(shù)配置)-〉服務(wù)器軟件瓶頸(參數(shù)配置,數(shù)據(jù)庫,web服務(wù)器等)-〉應(yīng)用瓶頸(SQL語句、數(shù)據(jù)庫設(shè)計、業(yè)務(wù)邏輯、算法等)以上過程并不是每個分析中都需要的,要根據(jù)測試目的和要求來確定分析的深度。對一些要求低的,我們分析到應(yīng)用系統(tǒng)在將來大的負載壓力(并發(fā)用戶數(shù)、數(shù)據(jù)量)下,系統(tǒng)的硬件瓶頸在哪兒就夠了。分段排除法很有效47負載壓力測試心得根據(jù)測試結(jié)果收集到的監(jiān)控指標(biāo)數(shù)據(jù)根據(jù)場景運行過程中的錯誤提示信息48負載壓力測試心得實例:Error:Failedtoconnecttoserver"0:8080":[10060]ConnectionError:timedoutError:Server"0"hasshutdowntheconnectionprematurely分析:A、應(yīng)用服務(wù)死掉:程序或者數(shù)據(jù)庫的問題B、應(yīng)用服務(wù)沒有死:應(yīng)用服務(wù)參數(shù)設(shè)置問題許多客戶端連接Weblogic應(yīng)用服務(wù)器被拒絕,而在服務(wù)器端沒有錯誤顯示,則有可能是Weblogic中的server元素的AcceptBacklog屬性值設(shè)得過低。如果連接時收到connectionrefused消息,說明應(yīng)提高該值,每次增加25%C、數(shù)據(jù)庫的連接:1、在應(yīng)用服務(wù)的性能參數(shù)可能太小了2、數(shù)據(jù)庫啟動的最大連接數(shù)(跟硬件的內(nèi)存有關(guān))49負載壓力測試心得最大并發(fā)用戶數(shù):應(yīng)用系統(tǒng)在當(dāng)前環(huán)境(硬件環(huán)境、網(wǎng)絡(luò)環(huán)境、軟件環(huán)境(參數(shù)配置))下能承受的最大并發(fā)用戶數(shù)如果出現(xiàn)了大于3個用戶的業(yè)務(wù)操作失敗,或出現(xiàn)了服務(wù)器shutdown的情況,則說明在當(dāng)前環(huán)境下,系統(tǒng)承受不了當(dāng)前并發(fā)用戶的負載壓力,那么最大并發(fā)用戶數(shù)就是前一個沒有出現(xiàn)這種現(xiàn)象的并發(fā)用戶數(shù)如果測得的最大并發(fā)用戶數(shù)到達了性能要求,且各服務(wù)器資源情況良好,業(yè)務(wù)操作響應(yīng)時間也達到了用戶要求,那么OK。否則,需根據(jù)各服務(wù)器的資源情況和業(yè)務(wù)操作響應(yīng)時間進一步分析原因所在50負載壓力測試心得業(yè)務(wù)操作響應(yīng)時間:分析運行情況應(yīng)從平均事務(wù)響應(yīng)時間圖和事務(wù)性能摘要圖開始。使用“事務(wù)性能摘要”圖,可以確定在方案執(zhí)行期間響應(yīng)時間過長的事務(wù)細分事務(wù)并分析每個頁面組件的性能。查看過長的事務(wù)響應(yīng)時間是由哪些頁面組件引起的?問題是否與網(wǎng)絡(luò)或服務(wù)器有關(guān)如果服務(wù)器耗時過長,使用相應(yīng)的服務(wù)器圖確定有問題的服務(wù)器度量并查明服務(wù)器性能下降的原因。如果網(wǎng)絡(luò)耗時過長,使用“網(wǎng)絡(luò)監(jiān)視器”圖確定導(dǎo)致性能瓶頸的網(wǎng)絡(luò)問題51負載壓力測試心得內(nèi)存:UNIX資源監(jiān)控中的內(nèi)存頁交換速率(Pagingrate),如果該值偶爾走高,表明當(dāng)時有線程競爭內(nèi)存。如果持續(xù)很高,則內(nèi)存可能是瓶頸。也可能是內(nèi)存訪問命中率低Windows資源監(jiān)控中,如果Process\PrivateBytes計數(shù)器和Process\WorkingSet計數(shù)器的值在長時間內(nèi)持續(xù)升高,同時Memory\Availablebytes計數(shù)器的值持續(xù)降低,則很可能存在內(nèi)存泄漏在Unix/linux操作系統(tǒng),當(dāng)CPU利用率低,但是事務(wù)響應(yīng)時間仍然較長時,還需要觀察I/OWait的變化,以鑒別是否因為I/O導(dǎo)致CPU利用率低52負載壓力測試心得內(nèi)存成為性能瓶頸的征兆:

很高的換頁率(highpageoutrate)進程進入不活動狀態(tài)交換區(qū)所有磁盤的活動次數(shù)過高很高的全局系統(tǒng)CPU利用率內(nèi)存不夠出錯(outofmemoryerrors)53負載壓力測試心得處理器:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中的指標(biāo)CPU占用率(CPUutilization),如果該值持續(xù)超過95%,表明瓶頸是CPU??梢钥紤]增加一個處理器或換一個更快的處理器。如果服務(wù)器專用于SQLServer,可接受的最大上限是80-85%,合理使用的范圍在60%至70%Windows資源監(jiān)控中,如果System\ProcessorQueueLength大于2,而處理器利用率(ProcessorTime)一直很低,則存在著處理器阻塞54負載壓力測試心得CPU成為性能瓶頸的征兆:

很慢的響應(yīng)時間(slowresponsetime)CPU空閑時間為零(zeropercentidleCPU)過高的用戶占用CPU時間(highpercentuserCPU)過高的系統(tǒng)占用CPU時間(highpercentsystemCPU)長時間的有很長的運行進程隊列(largerunqueuesizesustainedovertime)55負載壓力測試心得磁盤I/O:UNIX資源監(jiān)控(Windows操作系統(tǒng)同理)中的指標(biāo)磁盤交換率(Diskrate),如果該參數(shù)值一直很高,表明I/O有問題??煽紤]更換更快的硬盤系統(tǒng)Windows資源監(jiān)控中,如果DiskTime和Avg.DiskQueueLength的值很高,而PageReads/sec頁面讀取操作速率很低,則可能存在磁盤瓶頸56負載壓力測試心得I/O成為性能瓶頸的征兆:過高的磁盤利用率(highdiskutilization)太長的磁盤等待隊列(largediskqueuelength)等待磁盤I/O的時間所占的百分率太高(largepercentageoftimewaitingfordiskI/O)太高的物理I/O速率:largephysicalI/Orate(notsufficientinitself)過低的緩存命中率(lowbuffercachehitratio(notsufficientinitself))太長的運行進程隊列,但CPU卻空閑(largerunqueuewithidleCPU)57負載壓力測試心得1、如果自由內(nèi)存接近于0而且?guī)炜齑婊驍?shù)據(jù)字典快存的命中率小于0.90,那么需要增加SHARED_POOL_SIZE的大小快存(共享SQL區(qū))和數(shù)據(jù)字典快存的命中率:select(sum(pins-reloads))/sum(pins)fromv$l

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論