Loadrunner腳本優(yōu)化-關(guān)聯(lián)_第1頁(yè)
Loadrunner腳本優(yōu)化-關(guān)聯(lián)_第2頁(yè)
Loadrunner腳本優(yōu)化-關(guān)聯(lián)_第3頁(yè)
Loadrunner腳本優(yōu)化-關(guān)聯(lián)_第4頁(yè)
Loadrunner腳本優(yōu)化-關(guān)聯(lián)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 腳本優(yōu)化腳本優(yōu)化-關(guān)聯(lián)關(guān)聯(lián)主要內(nèi)容 一、關(guān)聯(lián)原理一、關(guān)聯(lián)原理 二、自動(dòng)關(guān)聯(lián)二、自動(dòng)關(guān)聯(lián) 三、手動(dòng)關(guān)聯(lián)三、手動(dòng)關(guān)聯(lián) 四、使用四、使用WinDiff手動(dòng)關(guān)聯(lián)手動(dòng)關(guān)聯(lián) 五、一邊錄制一邊關(guān)聯(lián)五、一邊錄制一邊關(guān)聯(lián) 六、關(guān)聯(lián)函數(shù)六、關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解2022-6-2522022-6-253一、關(guān)聯(lián)原理 為什么要使用關(guān)聯(lián)?為什么要使用關(guān)聯(lián)? 當(dāng)錄制腳本時(shí),VuGen會(huì)攔截client端(瀏覽器)與server端(網(wǎng)站服務(wù)器)之間的對(duì)話(huà),并且通通記錄下來(lái),產(chǎn)生腳本。 當(dāng)執(zhí)行腳本時(shí),可以把VuGen想象成是一個(gè)演員,它偽裝成瀏覽器,然后根據(jù)腳本,把當(dāng)初真的瀏覽器所說(shuō)過(guò)的話(huà),再

2、對(duì)網(wǎng)站向服器重新說(shuō)一遍,企圖騙過(guò)服務(wù)器,讓服務(wù)器把網(wǎng)站內(nèi)容傳送給VuGen 記錄在腳本中要跟服務(wù)器所說(shuō)的話(huà),完全與當(dāng)初錄制時(shí)所說(shuō)的一樣。這樣的作法在遇到有些服務(wù)器時(shí)還是會(huì)失效的。這時(shí)就需要關(guān)聯(lián)的做法騙過(guò)服務(wù)器一、關(guān)聯(lián)原理 什么是關(guān)聯(lián)?什么是關(guān)聯(lián)? 所謂的關(guān)聯(lián)(correlation)就是把腳本中某些寫(xiě)死的(hard-coded)數(shù)據(jù),轉(zhuǎn)變成是擷取自服務(wù)器所送的、動(dòng)態(tài)的、每次都不一樣的數(shù)據(jù)。 例如:我們?nèi)プ鲲w機(jī),登機(jī)之前要檢票(機(jī)票信息相對(duì)固定),通過(guò)可以登機(jī)。過(guò)了幾天拿著同一機(jī)票再去登機(jī),自然不能登機(jī)(機(jī)票信息已過(guò)期)。那怎樣才能順利登機(jī)?可以偽造機(jī)票信息這里我們通過(guò)收集別人返回的信息(機(jī)票)

3、偽造機(jī)票,從而滿(mǎn)足登機(jī)的驗(yàn)證策略。在腳本中也有類(lèi)似的情況 2022-6-254一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-錄制錄制 常見(jiàn)系統(tǒng)中的登陸功能,在登陸后服務(wù)器會(huì)返回SessionID,登陸后的操作都需要提交該ID確認(rèn)身份。使用VuGen錄制時(shí),將會(huì)記錄服務(wù)器返回的SessionID并原封不動(dòng)的在下個(gè)請(qǐng)求中發(fā)給服務(wù)器 2022-6-255一、關(guān)聯(lián)原理 舉例:登陸系統(tǒng)舉例:登陸系統(tǒng)-回放回放 待到回放時(shí),服務(wù)器會(huì)在接收到用戶(hù)名和密碼后返回一個(gè)新的SessionID,而腳本依然發(fā)送舊的SessionID給服務(wù)器,最終因SessionID錯(cuò)誤,導(dǎo)致腳本回放失敗。 2022-6-256二、自動(dòng)

4、關(guān)聯(lián) 自動(dòng)關(guān)聯(lián)原理:自動(dòng)關(guān)聯(lián)原理: 自動(dòng)關(guān)聯(lián)是VuGen提供的自動(dòng)掃描關(guān)聯(lián)處理策略,它的原理是對(duì)同一個(gè)腳本運(yùn)行和錄制時(shí)的服務(wù)器的返回進(jìn)行比較,來(lái)自動(dòng)查找變化部分,并且提示是否生成關(guān)聯(lián)。2022-6-257二、自動(dòng)關(guān)聯(lián) 自動(dòng)關(guān)聯(lián)舉例: 舉例:用LoadRunner自帶的Web Tours網(wǎng)站,錄制一個(gè)登陸的過(guò)程然后再回放。編譯時(shí)沒(méi)有錯(cuò),運(yùn)行時(shí)會(huì)報(bào)錯(cuò),通過(guò)Test Result看到錯(cuò)誤信息2022-6-258二、自動(dòng)關(guān)聯(lián) 問(wèn)題就出在腳本中 Web_submit_data()函數(shù)web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=

5、105473.508302957ftcfcQDpfiDDDDDDDcffVpHzVf, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, ENDITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-259二、自動(dòng)關(guān)聯(lián) 單擊Vuser菜單中Scan Script for Correlations選項(xiàng)(使用自動(dòng)關(guān)

6、聯(lián)前,腳本需運(yùn)行一次)運(yùn)行后會(huì)看到以下內(nèi)容,VuGen已識(shí)別出腳本中動(dòng)態(tài)內(nèi)容2022-6-2510二、自動(dòng)關(guān)聯(lián) 單擊Correlate按鈕后,便生成了一個(gè)關(guān)聯(lián)。關(guān)聯(lián)前后的內(nèi)容以及所屬的Action也被列了出來(lái)。2022-6-2511二、自動(dòng)關(guān)聯(lián) 此時(shí)切換到Script模式看看腳本發(fā)生了什么變化web_submit_data(login.pl, 。ITEMDATA, Name=userSession, Value=WCSParam_Diff1, ENDITEM, Name=username, Value=wfj, ENDITEM, Name=password, Value=111111, END

7、ITEM, Name=JSFormSubmit, Value=off, ENDITEM, Name=login.x, Value=64, ENDITEM, Name=login.y, Value=10, ENDITEM, LAST);2022-6-2512 三、三、 手工關(guān)聯(lián)的手工關(guān)聯(lián)的步驟步驟l設(shè)置設(shè)置“Runtime Setting”中的日志選項(xiàng)中的日志選項(xiàng)“Data return by server”,回放腳本,分析腳本運(yùn)行失敗的原因是否是因?yàn)殛P(guān)回放腳本,分析腳本運(yùn)行失敗的原因是否是因?yàn)殛P(guān)聯(lián)造成的。聯(lián)造成的。l在腳本中分析確定需要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容。在腳本中分析確定需要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容。l 確

8、定要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容的確定要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容的“左邊界左邊界”、 “右邊界右邊界”和發(fā)生和發(fā)生次數(shù)次數(shù)l 在腳本適當(dāng)?shù)奈恢貌迦朐谀_本適當(dāng)?shù)奈恢貌迦搿皐eb_reg_save_param”關(guān)聯(lián)函關(guān)聯(lián)函數(shù)數(shù)l在腳本中動(dòng)態(tài)內(nèi)容出現(xiàn)的地方,使用參數(shù)替換在腳本中動(dòng)態(tài)內(nèi)容出現(xiàn)的地方,使用參數(shù)替換“寫(xiě)死寫(xiě)死”的動(dòng)的動(dòng)態(tài)內(nèi)容。態(tài)內(nèi)容。l重新運(yùn)行腳本,確保關(guān)聯(lián)后的腳本能夠運(yùn)行成功。重新運(yùn)行腳本,確保關(guān)聯(lián)后的腳本能夠運(yùn)行成功。 三、三、 手工關(guān)聯(lián)手工關(guān)聯(lián)該選項(xiàng)可以把從該選項(xiàng)可以把從web服務(wù)器返回的服務(wù)器返回的數(shù)據(jù)顯示在執(zhí)行日數(shù)據(jù)顯示在執(zhí)行日志里面,你可以在志里面,你可以在里面分析確定動(dòng)態(tài)里面分析確定動(dòng)態(tài)內(nèi)容的左右邊

9、界內(nèi)容的左右邊界第一步第一步:設(shè)置運(yùn)行時(shí)刻設(shè)置運(yùn)行時(shí)刻三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)問(wèn)題問(wèn)題: 為什么該步驟會(huì)出錯(cuò)?為什么該步驟會(huì)出錯(cuò)? 1. 確定哪一步出錯(cuò)了確定哪一步出錯(cuò)了2. 在執(zhí)行日志里面去查找分析在執(zhí)行日志里面去查找分析.回放的時(shí)候表明某一步發(fā)生錯(cuò)誤回放的時(shí)候表明某一步發(fā)生錯(cuò)誤三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)執(zhí)行日志會(huì)顯示找不到請(qǐng)求。執(zhí)行日志會(huì)顯示找不到請(qǐng)求。 瀏覽器中被紅色選中的行顯示刪除操作的的確認(rèn)信息沒(méi)有得到反饋。瀏覽器中被紅色選中的行顯示刪除操作的的確認(rèn)信息沒(méi)有得到反饋。執(zhí)行日志清楚地顯示出出錯(cuò)原因執(zhí)行日志清楚地顯示出出錯(cuò)原因三、手工關(guān)聯(lián)三、手工關(guān)聯(lián) 這些值表示鼠標(biāo)在屏幕中的位置這些值表示

10、鼠標(biāo)在屏幕中的位置 這些值在腳本中會(huì)被使用,但不需要關(guān)聯(lián)這些值在腳本中會(huì)被使用,但不需要關(guān)聯(lián) 延遲時(shí)間也在腳本中會(huì)被使用,但不需要關(guān)聯(lián)延遲時(shí)間也在腳本中會(huì)被使用,但不需要關(guān)聯(lián)Name=buyFlights.x, Value=52, ENDITEM, Name=buyFlights.x, Value=23, ENDITEM,Name=buyFlights.y, Value=15, ENDITEM, Name=buyFlights.y, Value=17, ENDITEM,lr_think_time( 2 );lr_think_time( 1 );lr_think_time( 7 );lr_thi

11、nk_time( 11 );Name=flight_210, Value=on, ENDITEM,Name=flight_206, Value=on, ENDITEM,Name=removeSelected.x, Value=101, ENDITEM, Name=removeSelected.x, Value=80, ENDITEM,Name=removeSelected.y, Value=13, ENDITEM,Name=removeSelected.y, Value=10, ENDITEM,lr_think_time( 1 );12345航班號(hào)是動(dòng)態(tài)的,需要關(guān)聯(lián)航班號(hào)是動(dòng)態(tài)的,需要關(guān)聯(lián)三、

12、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第一個(gè)特征:該動(dòng)態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶(hù)端的。第一個(gè)特征:該動(dòng)態(tài)內(nèi)容一定是首先是從服務(wù)器端產(chǎn)生并返回到客戶(hù)端的。第二個(gè)特征:該客戶(hù)端在得到該動(dòng)態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。第二個(gè)特征:該客戶(hù)端在得到該動(dòng)態(tài)內(nèi)容后一定把它重新發(fā)送到服務(wù)器端。動(dòng)態(tài)內(nèi)容動(dòng)態(tài)內(nèi)容需要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容的兩個(gè)特征:需要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容的兩個(gè)特征:三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)LB: type=checkbox name=RB: 左邊界左邊界Left Boundary右邊界右邊界Right Boundary6第三步:第三步:確定需要關(guān)聯(lián)的動(dòng)態(tài)內(nèi)容的左右邊界 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)(par

13、am_name, *, LAST);用戶(hù)定義的參數(shù)名稱(chēng)表明后面沒(méi)有參數(shù)可選項(xiàng),表明動(dòng)態(tài)內(nèi)容出現(xiàn)的次數(shù)動(dòng)態(tài)內(nèi)容的左右邊界LB=, RB=, ORD=, *可以參閱LoadRunner的幫助文件,里面有詳盡的描述web_reg_save_param 具有如下參數(shù)具有如下參數(shù): 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)web_reg_save_param (param_name,LB=,RB=,ORD=,LAST);del_itinerarytype = “checkbox” name=“7第四步:增加第四步:增加web_reg_save_param函數(shù)函數(shù) 三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第五步:用參數(shù)替換腳本中的動(dòng)態(tài)內(nèi)

14、容第五步:用參數(shù)替換腳本中的動(dòng)態(tài)內(nèi)容三、手工關(guān)聯(lián)三、手工關(guān)聯(lián)第六步:回放腳本,驗(yàn)證關(guān)聯(lián)正確第六步:回放腳本,驗(yàn)證關(guān)聯(lián)正確四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)的主要步驟: 第一步:錄制測(cè)試腳本,錄制二遍 第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進(jìn)行關(guān)聯(lián) 第三步:確定插入關(guān)聯(lián)的位置 第四步:在View Script中使用web_reg_save_param函數(shù)手動(dòng)建立關(guān)聯(lián) 第五步:將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),用參數(shù)代替 第六步:驗(yàn)證關(guān)聯(lián)的正確性2022-6-2524四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)詳細(xì)介紹: 第一步:這一步就不用多說(shuō)了,相同的操作,錄制兩份,分別保存

15、 第二步:使用WinDiff工具找出兩次腳本的不同,判斷是否需要進(jìn)行關(guān)聯(lián) 1、在第二份腳本中,點(diǎn)選VuGen的【Tools】【 ComparewithVuser】,并選擇第一份腳本 2、接著WinDiff會(huì)開(kāi)啟,同時(shí)顯示二份腳本,并顯示有差異的地方。 3、查看二份腳本中差異的部份,每一個(gè)差異都可能是需要做關(guān)聯(lián)的地方。選取差異的腳本,然后復(fù)制。2022-6-2525四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)詳細(xì)介紹: 4、接著要在Recording Log或是Generation Log中找這個(gè)值。按下Ctrl+F,開(kāi)啟【Find】窗口,貼上剛剛復(fù)制的腳本,找出在Recording Log第一次出

16、現(xiàn)的位置。 5、現(xiàn)在已經(jīng)找到錄制二次都不一樣,而且是由服務(wù)器所產(chǎn)生的動(dòng)態(tài)數(shù)據(jù)了,而此數(shù)據(jù)極有可能需要做關(guān)聯(lián) 第三步:確定插入關(guān)聯(lián)的位置。重新執(zhí)行一遍腳本,而且這次會(huì)開(kāi)啟所有的Log。 1、在VuGen中點(diǎn)選【Vuser】【Run-Time Settings】。 2、點(diǎn)選【General】【Log】。 2022-6-2526四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)詳細(xì)介紹: 3、勾選【Enable logging】、 【Always sends messages】、【Extended log】,以及【Extended log】下的所有選項(xiàng)。 4、按下【OK】就可以執(zhí)行腳本了。 5、執(zhí)行完腳本之后

17、,在Replay Log 中搜尋剛剛復(fù)制的字符串。找到字符串后,在字符串前面會(huì)有vuser_init.c(18): ,這個(gè)18就是到時(shí)候要插入web_reg_save_param函數(shù)的位置,也就是要插入到腳本的第18行。也可以在 Replay Log右鍵選擇jump to source line跳到腳本中的位置。 2022-6-2527四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)詳細(xì)介紹: 第四步:在View Script中使用web_reg_save_param函數(shù)手動(dòng)建立關(guān)聯(lián) 1、在找到的代碼行的上方點(diǎn)擊鼠標(biāo)右鍵,選擇【insert】【New step】 2、在【Add Step】 窗口的【F

18、ind Function】中輸入Web_reg_save_param 函數(shù)并選中后點(diǎn)擊【OK】 3、Parameter Name處輸入?yún)?shù)名稱(chēng),建議有意義的名字。 4、在【Left Boundary】中輸入左邊界字符串 5、在【Right Boundary】中輸入右邊界字符串 6、點(diǎn)擊【OK】按鈕2022-6-2528四、使用WinDiff手動(dòng)關(guān)聯(lián) 手動(dòng)關(guān)聯(lián)詳細(xì)介紹: 第五步:將腳本中有用到關(guān)聯(lián)的數(shù)據(jù),用參數(shù)代替 1、當(dāng)使用web_reg_save_param建立參數(shù)后,接下來(lái)就是用“之前定義的參數(shù)名”參數(shù)去取代腳本中寫(xiě)死的(hard-coded)資料。 第六步:驗(yàn)證關(guān)聯(lián)的正確性 1、執(zhí)行腳本

19、,是否能成功運(yùn)行,假如還是有問(wèn)題,就要檢查看看是否還需要再做另一個(gè)關(guān)聯(lián)。 2022-6-2529 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 接著來(lái)看最后一種關(guān)聯(lián)方式,上面的關(guān)聯(lián)都需要進(jìn)行一定的操作,那么為什么錄制某些系統(tǒng),會(huì)得到一些自動(dòng)的關(guān)聯(lián)函數(shù)呢?這就是系統(tǒng)默認(rèn)提供的自動(dòng)關(guān)聯(lián)設(shè)置,打開(kāi)錄制選項(xiàng)。【Tools】【recording options】【Correlation】2022-6-2530五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 2022-6-2531 五、一邊錄制一邊關(guān)聯(lián) 一邊錄制一邊關(guān)聯(lián): 點(diǎn)擊 New Application,創(chuàng)建一個(gè)新的應(yīng)用 在之前的應(yīng)用上點(diǎn)擊New Rule 新

20、建一個(gè)規(guī)則 為該規(guī)則填寫(xiě)左右邊界后點(diǎn)擊保存 現(xiàn)在新建一個(gè)腳本,重新錄制一次Web Tours登錄的操作,錄制結(jié)束查看一下腳本,可以發(fā)現(xiàn)系統(tǒng)已經(jīng)自動(dòng)按照規(guī)則生成了關(guān)聯(lián)函數(shù),運(yùn)行腳本直接通過(guò)。2022-6-2532 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 打開(kāi)Add Step添加步驟選擇Web_reg_save_para 打開(kāi)關(guān)聯(lián)設(shè)置窗口,如下所示:打開(kāi)關(guān)聯(lián)設(shè)置窗口,如下所示:2022-6-2533 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Parameter Na

21、me :此處設(shè)置存放參數(shù)的名稱(chēng),關(guān)聯(lián)出來(lái)的內(nèi)容將會(huì)存放在該參數(shù)中,這里受到Instance選項(xiàng)的影響。例如: Parameter Name 為T(mén)emp,當(dāng)對(duì)應(yīng)的Instance選項(xiàng)是 任意一個(gè)數(shù)字的時(shí)候,只會(huì)關(guān)聯(lián)一個(gè)匹配的記錄,關(guān)聯(lián)值存放在Temp中。當(dāng)Instance是ALL的時(shí)候,關(guān)聯(lián)成功后的值將會(huì)依次存放在“Temp_數(shù)字”這樣的參數(shù)數(shù)組中,并且會(huì)添加一個(gè)temp_ count的參數(shù)存放關(guān)聯(lián)出來(lái)的記錄條數(shù)。 Left Boundary:此處設(shè)置左邊界,這里用來(lái)填寫(xiě)關(guān)聯(lián)對(duì)于數(shù)據(jù)處理的左匹配內(nèi)容規(guī)則。此處是一個(gè)字符串。注意:轉(zhuǎn)義字符為2022-6-2534 六、Web_reg_save_param詳解 關(guān)聯(lián)函數(shù)關(guān)聯(lián)函數(shù)Web_reg_save_param詳解詳解 Match case :默認(rèn)情況下邊界是Match case的,即檢查大小寫(xiě)的??梢匀∠旅娴倪x項(xiàng)來(lái)忽略大小寫(xiě)檢查。 Binary data:如果需要關(guān)聯(lián)的內(nèi)容是非ASC 字符的,需要使用該選項(xiàng)。 Use # for any digit:有些時(shí)候需要關(guān)聯(lián)的邊界中有些變動(dòng)的數(shù)字,并且由于這個(gè)數(shù)字導(dǎo)致關(guān)聯(lián)非常難以設(shè)置邊界,可以使用該選項(xiàng) Use as a wildcard for xxx alphanumerical characters :這里使用可以代替任何常用的字符。僅代表一個(gè)字符

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論