性能測(cè)試之場(chǎng)景設(shè)計(jì)_第1頁(yè)
性能測(cè)試之場(chǎng)景設(shè)計(jì)_第2頁(yè)
性能測(cè)試之場(chǎng)景設(shè)計(jì)_第3頁(yè)
性能測(cè)試之場(chǎng)景設(shè)計(jì)_第4頁(yè)
性能測(cè)試之場(chǎng)景設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

叮叮小文庫(kù)叮叮小文庫(kù)#性能測(cè)試之場(chǎng)景設(shè)計(jì)前言性能測(cè)試中的場(chǎng)景設(shè)計(jì)是實(shí)施性能測(cè)試的基礎(chǔ),只有合理的設(shè)計(jì)測(cè)試場(chǎng)景才能獲得有價(jià)值的測(cè)試數(shù)據(jù),為接下來(lái)的確認(rèn)瓶頸、系統(tǒng)調(diào)優(yōu)打下基礎(chǔ)。場(chǎng)景(Scenario)是一種用來(lái)模擬大量用戶操作的技術(shù)手段,通過(guò)配置和執(zhí)行場(chǎng)景向服務(wù)器產(chǎn)生負(fù)載,驗(yàn)證系統(tǒng)的各項(xiàng)性能指標(biāo)是否達(dá)到用戶要求,而Controller可以幫助我們對(duì)場(chǎng)景的設(shè)計(jì)、執(zhí)行以及監(jiān)控進(jìn)行管理。LoadrunnerController來(lái)管理和維護(hù)場(chǎng)景,可以在一臺(tái)工作站控制一個(gè)場(chǎng)景中的所有虛擬用戶(Vuser)。執(zhí)行場(chǎng)景時(shí),Controller會(huì)將該場(chǎng)景中的每個(gè)Vuser分配給一個(gè)負(fù)載生成器。負(fù)載生成器執(zhí)行Vuser腳本,從而使Vuser可以模擬真實(shí)用戶操作的計(jì)算機(jī)。場(chǎng)景的分類人工場(chǎng)景(手動(dòng)場(chǎng)景)所謂人工場(chǎng)景,實(shí)際就是自定義模式,各因素完全由我們來(lái)設(shè)置的創(chuàng)建場(chǎng)景的方法。相比面向目標(biāo)場(chǎng)景,人工場(chǎng)景在實(shí)際工作中應(yīng)用的更為廣泛。用賽車游戲來(lái)比喻,這種方法類似常規(guī)比賽,不同的汽車從同一起點(diǎn)出發(fā),到同一終點(diǎn)結(jié)束,最終按照時(shí)間排出名次。面向目標(biāo)場(chǎng)景面向目標(biāo)場(chǎng)景則與人工場(chǎng)景有所不同,它預(yù)先定義了一個(gè)測(cè)試目標(biāo),LoadRunner將根據(jù)這個(gè)目標(biāo)自動(dòng)構(gòu)建場(chǎng)景,有點(diǎn)類似向?qū)J?。這種方法對(duì)于驗(yàn)證在項(xiàng)目性能說(shuō)明書(shū)中列出、需要達(dá)到的性能目標(biāo)很方便。還是用賽車游戲來(lái)比喻,面向目標(biāo)場(chǎng)景有點(diǎn)類似計(jì)時(shí)賽或者追逐賽,不同的汽車從同一起點(diǎn)出發(fā),在規(guī)定的時(shí)間內(nèi),走的最遠(yuǎn)者獲勝。在面向目標(biāo)場(chǎng)景的“向?qū)J健敝?,設(shè)定了一個(gè)或者多個(gè)測(cè)試目標(biāo),比如要求系統(tǒng)達(dá)到每秒處理5個(gè)事務(wù),LoadRunner再根據(jù)這些目標(biāo)自動(dòng)創(chuàng)建場(chǎng)景。目前,LoadRunner支持的測(cè)試目標(biāo)有如下幾種:>虛擬用戶數(shù)量。>每秒點(diǎn)擊次數(shù)(只對(duì)WebVuser有效)>每秒事務(wù)數(shù)量>每分鐘訪問(wèn)頁(yè)面數(shù)量(也僅對(duì)WebVuser有效)>事務(wù)響應(yīng)時(shí)間場(chǎng)景設(shè)置描述㈠.新場(chǎng)景設(shè)置對(duì)話框

字段解釋:>SelectScenarioType(選擇場(chǎng)景類型):此選項(xiàng)區(qū)域列出了場(chǎng)景的兩種類型:①M(fèi)anualScenario(手動(dòng)場(chǎng)景或人工場(chǎng)景):手動(dòng)場(chǎng)景設(shè)置我們可以設(shè)置不同的業(yè)務(wù)組用戶數(shù)量,同時(shí)編輯計(jì)劃指定相關(guān)的運(yùn)行時(shí)刻,虛擬用戶加載策略等完成場(chǎng)景設(shè)計(jì)工作。在創(chuàng)建腳本的過(guò)程中若選擇了“UsethePercentageModetodistributetheVusersamongthescripts”選項(xiàng),則可以指定虛擬用戶總體數(shù)量,而后針對(duì)每個(gè)業(yè)務(wù)組設(shè)置用戶數(shù)百分比的形式完成場(chǎng)景設(shè)置。未勾選UsethePercentageModetodistributetheVusersamongthescripts:勾選UsethePercentageModetodistributetheVusersamongthescripts:②Goal-OrientedScenario(面向目標(biāo)場(chǎng)景):AllowLosdRunnerControllertocreateascenariobasedontheg口目總y口uspecif允許LoadRunner控制器根據(jù)具體的目標(biāo)創(chuàng)建一個(gè)場(chǎng)景>Selectthescript]ycuwouldlikelou錨inwscenaric腳本選擇由于Web應(yīng)用比較復(fù)雜,在實(shí)際工作中需要?jiǎng)?chuàng)建一系列的腳本,比如登陸腳本、訂票腳本、回復(fù)帖子腳本等。因此,可以通過(guò)選擇不同的腳本組合來(lái)模擬不同虛擬用戶的不同操作。AvailableScript(可用腳本):首先可以從此處選擇可用的腳本。ScriptsinScenario(場(chǎng)景中的腳本):選擇一個(gè)可用腳本后通過(guò)【Add】按鈕將其添加到此處。Remove(移除):在ScriptsinScenario 中選中一個(gè)在場(chǎng)景中的腳本,然后

單擊n0口0丫?】按鈕從ScriptsinScenario列表中移除。>Record(錄制):?jiǎn)螕粜?。0區(qū)】按鈕可以錄制腳本,彈出腳本錄制界面:>史|HPVirtualUserGenerator■[StartPage]Browse>Record(錄制):?jiǎn)螕粜?。0區(qū)】按鈕可以錄制腳本,彈出腳本錄制界面:>史|HPVirtualUserGenerator■[StartPage]QualityCenter...:連接服務(wù)器>㈡.手動(dòng)設(shè)置場(chǎng)景FileViewToolsWindowHelp國(guó)▼*T號(hào)|量,?StartFiecordA■II翳|整I命制群j>圖的最下方,有兩個(gè)選項(xiàng)卡,分別是Design(設(shè)計(jì))和Run(運(yùn)行)。它們清楚地描述了手動(dòng)場(chǎng)景的設(shè)置步驟就是:先設(shè)計(jì),再執(zhí)行。在此我們只討論場(chǎng)景的設(shè)計(jì)。左上方界面顯示ScenarioGroups為場(chǎng)景用戶組設(shè)置界面>.A:開(kāi)始執(zhí)行場(chǎng)景."?:場(chǎng)景中的虛擬用戶設(shè)置.睥:增加用戶組.??■:刪除用戶組. 今運(yùn)行時(shí)設(shè)置,且詳細(xì)信息設(shè)置. 國(guó)查看腳本>右上方界面顯示ServiceLevelAgreement為服務(wù)協(xié)議界面>左下方界面顯示ScenarioSchedule為場(chǎng)景計(jì)劃界面①首先看此界面的主菜單設(shè)置:ScenarioSchedule>X―%INewScenario可以新建一個(gè)場(chǎng)景DeleteScenario刪除一個(gè)場(chǎng)景Savenewname保存更改的場(chǎng)景名StartTime場(chǎng)景開(kāi)始時(shí)間包括:Withoutdelay(立刻執(zhí)行)、Withadelayof(延時(shí)執(zhí)行)可以設(shè)置具體時(shí)間之后再運(yùn)行場(chǎng)景、At(定時(shí)執(zhí)行)可以設(shè)置在何時(shí)(具體日期、小時(shí))運(yùn)行場(chǎng)景。②場(chǎng)景計(jì)劃主體包括:ScheduleName:123更改場(chǎng)景名Scheduleby:?ScheduleName:123更改場(chǎng)景名Scheduleby:?Scenario國(guó)口卬計(jì)劃按場(chǎng)景或用戶組場(chǎng)景方式中所有用戶組虛擬用戶增長(zhǎng)方式一致,用學(xué)?;顒?dòng)來(lái)比喻,類似全校所有班級(jí)參加團(tuán)體體操比賽。用戶組方式中各用戶組中的虛擬用戶增長(zhǎng)方式可以不同,類似全校各班級(jí)自報(bào)節(jié)目的匯演。?RunMode: ?Real-worldscheduleBasicschedule運(yùn)行方式選擇.真實(shí)情況計(jì)劃這種方式可以修改持續(xù)運(yùn)行(Duration)與停止虛擬用戶(StopVuser)這兩種在啟動(dòng)虛擬用戶之后發(fā)生的場(chǎng)景操作屬性,它相對(duì)第二種執(zhí)行方式更接近真實(shí)情況。.按腳本設(shè)置運(yùn)行直到結(jié)束,這種方式則無(wú)法設(shè)置用戶組啟動(dòng)后的各操作屬性數(shù)值,腳本運(yùn)行開(kāi)始后,用戶組的屬性就維持不變了。以上三個(gè)為設(shè)置執(zhí)行場(chǎng)景的總體規(guī)則以下為設(shè)置執(zhí)行場(chǎng)景過(guò)程中各個(gè)分步操作的屬性GlobalSchedule>尸g??Total:20VusersActionPropertiesIniti;ilizrIniti;ilizer;±chyuserjustbeforeitrurtsVu^ersStart20Vuserz:2every00:00:15(HK:HH:SS)Em-atioilRunfor00:05:00FStopYuzsrEStopallVuzers:5airery00:00:30(HK:MH:SS)米>主菜單分別為“添加”、“編輯”、“刪除”、“上移”、“下移"Action>編輯Initialize初始化操作屬性:

包括:.InitializeallVuserssimultaneously(同時(shí)初始化所有的虛擬用戶).Initialize-Vusersevery(每隔一段時(shí)間初始化一定數(shù)目的虛擬用戶).InitializeeachVuserjustbeforeitruns(在運(yùn)行之前初始化每一個(gè)虛擬用戶)包括:Start—Vusers:總共啟動(dòng)多少個(gè)虛擬用戶然后選擇這些需要啟動(dòng)的虛擬用戶的啟動(dòng)方式:.Simultaneously:同時(shí)啟動(dòng)包括:Start—Vusers:總共啟動(dòng)多少個(gè)虛擬用戶然后選擇這些需要啟動(dòng)的虛擬用戶的啟動(dòng)方式:.Simultaneously:同時(shí)啟動(dòng).--VuserseveryHH:MM:SS:每隔一段時(shí)間加載一定數(shù)目的虛擬用戶>編輯Duration持續(xù)時(shí)間操作屬性包括:.Rununtilcompletion:場(chǎng)景持續(xù)運(yùn)行直到完成. Runfor-dayandHH:MM:SS:場(chǎng)景運(yùn)行指定的時(shí)間>編輯StopVusers停止虛擬用戶操作屬性包括:Stop—Vusers:總共停止多少個(gè)虛擬用戶然后選擇這些需要停止的虛擬用戶的停止方式:.Simultaneously:同時(shí)停止.--VuserseveryHH:MM:SS:每隔一段時(shí)間停止指定數(shù)目的虛擬用戶>右下方界面顯示InteractiveScheduleGraph為運(yùn)行當(dāng)前場(chǎng)景,達(dá)到場(chǎng)景目標(biāo)所歷經(jīng)的過(guò)程趨勢(shì)圖㈢.面向目標(biāo)的場(chǎng)景設(shè)置SCOMPO(J44lSAfwEibLHVfilAyiggisilM_jhwmi->"!i'Zr-i'Kr--,giUiwid沁口|丁酒1Agar*|pKdE3_AiiiwmriAwdbhkolkrtQd-物SCOMPO(J44lSAfwEibLHVfilAyiggisilM_jhwmi->"!i'Zr-i'Kr--,giUiwid沁口|丁酒1Agar*|pKdE3_AiiiwmriAwdbhkolkrtQd-物mmtau'iuKuoamlJ匕5nm工£■第:■rxFB>>ij■川加于LR”1 W*-3.鄧giBl-li'EilJKl'>左上方界面顯示ScenarioScripts為當(dāng)前場(chǎng)景中的腳本列表>右上方界面顯示ServiceLevelAgreement為服務(wù)協(xié)議界面>右下方界面顯示圖片區(qū)域?yàn)檫\(yùn)行當(dāng)前場(chǎng)景,達(dá)到場(chǎng)景目標(biāo)所經(jīng)歷的過(guò)程趨勢(shì)圖>左下方界面顯示ScenarioGoal為場(chǎng)景目標(biāo)信息顯示和編輯(EditScenarioGoal)區(qū)域ScenarioGoalGoalProfileName:|HitsperSecond10CiGoalProfileName:|HitsperSecond10CiGoal:100.00HitsperSecondGoal:100.00HitsperSecondMinNumberofVusers:MaKNumberofVusers;150MaKNumberofVusers;150ScenarioDuration二LoadBehavior:ScenarioDuration二LoadBehavior:Reachtargethitspersecondusingautomatic:rampup旃EditScenarioGoal...由圖可知:系統(tǒng)默認(rèn)選擇了場(chǎng)景目標(biāo)為 每秒點(diǎn)擊次數(shù)100其他屬性為:.MinNumberofVusers:50最小虛擬用戶50.MaxNumberofVusers:150最大虛擬用戶150

.ScenarioDuration:30minafterthetargethasbeenachieved場(chǎng)景持續(xù)時(shí)間:目標(biāo)完成后30min.LoadBehavior:Reachtargethitspersecondusingautomaticrampup性能負(fù)載:目標(biāo)每秒點(diǎn)擊自動(dòng)增加EditScenarioGoal編輯場(chǎng)景目標(biāo)通EditScenarioQoal...I>GoalProfileName選擇不同的目標(biāo)通EditScenarioQoal...I>GoalProfileName選擇不同的目標(biāo):GoalProfileName:HitsperSecond100DefineScenarioGoal修改場(chǎng)景目標(biāo)具體數(shù)值:□elineScenaiioGoal_LReachgoalolGwlTiipe|HitspeiSecondpersecond_LReachgoalolGwlTiipe|HitspeiSecondpersecondandamaKrnumof|15OUusers包括:GoalType:目標(biāo)類型Reachgoalof...hitspersecond:目標(biāo)每秒點(diǎn)擊數(shù)Usingaminimumof…andamaximumof…Vuser:虛擬用戶的最小值和最大值ScenarioSetting場(chǎng)景設(shè)置RunTimeafterthetargethasbeerischieyedRunfor|000:30:00^afterthetargethasbeerischieyed此為達(dá)到目標(biāo)后系統(tǒng)繼續(xù)運(yùn)行時(shí)間

Iftargetcannotbereached「Stepscenariomndsaveresuhff*Continuescenariowithoutreachinggoal*Fl已cbMbnotificatior此為【如果目標(biāo)無(wú)法達(dá)到,系統(tǒng)的處理方式:(Iftargetcannotbereached)】Stopscenarioandsaveresults停止場(chǎng)景并保存結(jié)果Continuescenariowithoutreachinggoal繼續(xù)運(yùn)行場(chǎng)景、無(wú)須達(dá)到目標(biāo)另外,還可以選中接受通知(Receivenotification)使得測(cè)試人員了解測(cè)試目標(biāo)無(wú)法達(dá)到這一情況>LoadBehavior負(fù)載行為設(shè)置為達(dá)到當(dāng)前目標(biāo)而增加負(fù)載RampUpGAutomatic「Reachtargetnumberofhitspersecondafter| 日{(diào)Stepupby| 日hitspersecondeveiv|00:02:00Q負(fù)載增加的行為方式有3種:.Automatic自動(dòng):默認(rèn)方式,無(wú)須設(shè)置.Reachtargetnumberofhitspersecondafter..時(shí)間間隔:這種方式可以設(shè)置當(dāng)前場(chǎng)景在達(dá)到目標(biāo)之前需要運(yùn)行多長(zhǎng)時(shí)間,以小時(shí):分鐘:秒為單位。.Stepupby...hitspersecondevery…:漸進(jìn)式:這種方式可以采取一種漸進(jìn)增加的策略執(zhí)行場(chǎng)景,比如上圖為每隔2分鐘增加20個(gè)虛擬用戶。其他的目標(biāo)具體設(shè)置內(nèi)容和數(shù)值有所不同。>Donotchangerecordedthinktime不修改錄制的思考時(shí)間Dqnotchangerecordedthinktime思考時(shí)間是用戶在Web應(yīng)用各操作之間的時(shí)間。因此,在與事務(wù)相關(guān)的場(chǎng)景目標(biāo)設(shè)置中,若維持每秒事務(wù)數(shù)量不變,如果選中了此項(xiàng),則虛擬用戶數(shù)量要相應(yīng)的增加。>面向目標(biāo)的場(chǎng)景設(shè)置,同樣可以設(shè)置場(chǎng)景的啟動(dòng)時(shí)間:

與手動(dòng)場(chǎng)景設(shè)置一樣同樣包括:Withoutdelay(立刻執(zhí)行)、Withadelayof(延時(shí)執(zhí)行)可以設(shè)置具體時(shí)間之后再運(yùn)行場(chǎng)景、At(定時(shí)執(zhí)行)可以設(shè)置在何時(shí)(具體日期、小時(shí))運(yùn)行場(chǎng)景。㈣.控制器的全局設(shè)置前面了解的是創(chuàng)建手動(dòng)場(chǎng)景和面向目標(biāo)的場(chǎng)景的各種設(shè)置,這些設(shè)置都是針對(duì)具體的特定測(cè)試場(chǎng)景的,如果場(chǎng)景不同或者測(cè)試類型不同,數(shù)值一般不同。此處描述的控制器的全局設(shè)置則有些特殊,其中的數(shù)值對(duì)于該控制器下管理和實(shí)現(xiàn)的所有場(chǎng)景都有效。>打開(kāi)控制器全局設(shè)置的方法:[Tools]Help騏QualityCenterConnection..,ScriptNameflights_t&st3Expert迎tod已CALoadRunnerSscnptsC:\LoadRunnBr\scriptsTools——Options打開(kāi)如圖

>Timeout超時(shí)設(shè)置當(dāng)網(wǎng)絡(luò)狀況不好、場(chǎng)景中機(jī)器較多時(shí),可以修改窗體中各個(gè)微調(diào)框的數(shù)值(單位均為秒)以免LoadRunner返回錯(cuò)誤。CijmrriTimeout〔w豈u口ndPEniLletimeoutchec-LoadGeneratorCc.rmn。+: |120目DiscorLTiecl|1工口VUE工nit|180-上Rim:|1201Fauae:|120 -.Stop:|120 -此為控制器與虛擬用戶初始化等活動(dòng)的超時(shí)設(shè)置①可選框Enabletimeoutchecks為允許超時(shí)設(shè)置,如果禁用超時(shí)限制,LoadRunner將無(wú)限長(zhǎng)地等待負(fù)載生成器進(jìn)行連接和斷開(kāi)連接,并等待其執(zhí)行“初始化”、“運(yùn)行”、“暫停”和“停止”命令。②LoadGenerator負(fù)載產(chǎn)生器:可以設(shè)置連接(Connect)和斷開(kāi)連接(Disconnect)超時(shí)時(shí)間。連接超時(shí)可以輸入等待其他連接到任何負(fù)載生成器的時(shí)間限制。如果在指定的時(shí)間內(nèi)連接不成功,負(fù)載生成器的狀態(tài)將變?yōu)椤笆 薄嚅_(kāi)連接超時(shí)可以輸入等待從其他任何負(fù)載生成器斷開(kāi)連接的時(shí)間限制。如果在指定的時(shí)間內(nèi)斷開(kāi)連接不成功,負(fù)載生成器的狀態(tài)將變?yōu)椤笆 薄"圻€可以輸入Init、Run、Pause、Stop命令的最長(zhǎng)時(shí)間限制Upiahe%2mi小期七小4 :?每4刷新虛擬用戶狀態(tài)一次。>Run-TimeSettings運(yùn)行時(shí)設(shè)置

虛擬用戶配額(VuserQuote):要防止系統(tǒng)過(guò)載,可以為Vuser活動(dòng)設(shè)置配額,用來(lái)設(shè)置負(fù)載生成器一次可以初始化的最大Vuser數(shù)。停止運(yùn)行時(shí)虛擬用戶執(zhí)行策略(WhenstoppingVusers):1.等待當(dāng)前腳本迭代結(jié)束2.等待當(dāng)前腳本操作結(jié)束3.立即結(jié)束Uesr:=LTLdci[Tizeiiuence*ithsi允許使用種子值來(lái)產(chǎn)生隨機(jī)順序。每個(gè)種子值代表一個(gè)用于測(cè)試執(zhí)行的隨機(jī)值順序。只要使用同一個(gè)種子值,就會(huì)為場(chǎng)景中的Vuser分配相同順序的值。該設(shè)置將應(yīng)用于使用Random方法從數(shù)據(jù)文件分配值的參數(shù)化Vuser腳本。>Run-TimeFileStorage運(yùn)行時(shí)文件存儲(chǔ)位置可以設(shè)置腳本和結(jié)果存儲(chǔ)的位置:保存在本機(jī)保存在共享網(wǎng)路驅(qū)動(dòng)盤(pán)(利于別人查看和分析)>PathTranslationTable路徑轉(zhuǎn)換表Mode:Rete J1ath:C:'\Lo erMatippath.mnti:.rLtf.ill口st>LirLtroil口、七h(yuǎn):)<上口tath>[<r巨m□七口e+>]e>[:inijile!wint:\ /horTie.i'1uzeri/goo uni工w111i:<w g:V ]:''i.xittlla'^uEfSE''i.-|shet wltl|7ConverttoUUC路徑轉(zhuǎn)換表是一種映射,將控制器上的文件路徑轉(zhuǎn)換為遠(yuǎn)程主機(jī)上的文件路徑。這樣的設(shè)置對(duì)于網(wǎng)路中包含異類系統(tǒng)(比如既有Windows,也有Unix)是很有用的。

選擇“ConverttoUNC”復(fù)選框,指示LoadRunner忽略路徑轉(zhuǎn)換表并將所有路徑都轉(zhuǎn)換為通用命名約定格式。路徑翻譯表中的每一條記錄應(yīng)該類似如下的語(yǔ)句:<Controllerhost><controllerpath><remotepath>[<remotehost>]>Monitors監(jiān)視器監(jiān)視器好像公路上的電子眼,用于隨時(shí)報(bào)告場(chǎng)景的各項(xiàng)信息,他可以按照規(guī)定的時(shí)間(也叫做數(shù)據(jù)采樣率,單位為秒)獲得服務(wù)器資源信息,并反映到控制器界面當(dāng)中。Tr:=ltleacticmData審EriablhTr:irLEactiotlMuTlitJreqniency:NOTE:Ferthez

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論