版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、銀行付款實(shí)例講解測(cè)試設(shè)計(jì)測(cè)試設(shè)計(jì)測(cè)試實(shí)現(xiàn)測(cè)試實(shí)現(xiàn)測(cè)試執(zhí)行測(cè)試執(zhí)行現(xiàn)在要針對(duì)銀行付款業(yè)務(wù)設(shè)計(jì)一個(gè)測(cè)試用例,進(jìn)行功能的覆蓋1 劃分業(yè)務(wù)功能、畫(huà)出業(yè)務(wù)流程圖1 新增2復(fù)核3 取消復(fù)核4 修改5 刪除2 根據(jù)流程圖,寫(xiě)出測(cè)試方案根據(jù)流程圖,寫(xiě)出測(cè)試方案銀行付款有一個(gè)起始點(diǎn),兩個(gè)結(jié)束點(diǎn),按照功能覆蓋的思想,選擇兩銀行付款有一個(gè)起始點(diǎn),兩個(gè)結(jié)束點(diǎn),按照功能覆蓋的思想,選擇兩條路徑即可。如果要考量到動(dòng)作之間的關(guān)聯(lián)性,路徑就比較多了。條路徑即可。如果要考量到動(dòng)作之間的關(guān)聯(lián)性,路徑就比較多了?;谝酝慕?jīng)驗(yàn),取消復(fù)核、二次復(fù)核比較容易出現(xiàn)問(wèn)題,因此兩條基于以往的經(jīng)驗(yàn),取消復(fù)核、二次復(fù)核比較容易出現(xiàn)問(wèn)題,因此兩條
2、路徑分別為:路徑分別為:路徑一:新增路徑一:新增-復(fù)核復(fù)核-取消復(fù)核取消復(fù)核-修改修改-復(fù)核復(fù)核路徑二:新增路徑二:新增-復(fù)核復(fù)核-取消復(fù)核取消復(fù)核-刪除刪除3 確定業(yè)務(wù)功能確定業(yè)務(wù)功能在流程圖中,可以得出,本業(yè)務(wù)可以劃分成以下業(yè)務(wù)功能:在流程圖中,可以得出,本業(yè)務(wù)可以劃分成以下業(yè)務(wù)功能:新增、復(fù)核、取消復(fù)核、修改、刪除新增、復(fù)核、取消復(fù)核、修改、刪除4 確定業(yè)務(wù)數(shù)據(jù)確定業(yè)務(wù)數(shù)據(jù)由于只要進(jìn)行流程的覆蓋,所以暫時(shí)可以把業(yè)務(wù)數(shù)據(jù)作的簡(jiǎn)單一點(diǎn)。由于只要進(jìn)行流程的覆蓋,所以暫時(shí)可以把業(yè)務(wù)數(shù)據(jù)作的簡(jiǎn)單一點(diǎn)。5 在在TD中錄入測(cè)試用例中錄入測(cè)試用例訪問(wèn)訪問(wèn)TD服務(wù)器,如:服務(wù)器,如:stc-hrye/td
3、bin/start_a.htm在“Test Plan新建一個(gè)文件夾,用來(lái)存放測(cè)試腳本新建一個(gè)測(cè)試腳本,這個(gè)腳本是用來(lái)存放銀行付款的標(biāo)準(zhǔn)業(yè)務(wù)功能的。新建一個(gè)測(cè)試腳本,這個(gè)腳本是用來(lái)存放銀行付款的標(biāo)準(zhǔn)業(yè)務(wù)功能的。下階段的測(cè)試實(shí)現(xiàn),主要就是實(shí)現(xiàn)這個(gè)腳本的內(nèi)容。下階段的測(cè)試實(shí)現(xiàn),主要就是實(shí)現(xiàn)這個(gè)腳本的內(nèi)容。添加對(duì)腳本的描述說(shuō)明文字。說(shuō)明腳本實(shí)現(xiàn)的內(nèi)容、目的錄入所有的步驟。如果是業(yè)務(wù)功能的基礎(chǔ)腳本,每一個(gè)step,就對(duì)應(yīng)一個(gè)業(yè)務(wù)功能。如果該腳本是用來(lái)描述一個(gè)測(cè)試用例的,則一個(gè)step就是一個(gè)操作。Step錄入完成后,自動(dòng)生成QTP的測(cè)試腳本。如果不能生成,請(qǐng)檢查是否安裝了TDPlus生成的腳本中,只包含
4、說(shuō)明信息。測(cè)試設(shè)計(jì)測(cè)試設(shè)計(jì)測(cè)試實(shí)現(xiàn)測(cè)試實(shí)現(xiàn)測(cè)試執(zhí)行測(cè)試執(zhí)行測(cè)試實(shí)現(xiàn),需要實(shí)現(xiàn)兩部分的內(nèi)容1 測(cè)試用例的實(shí)現(xiàn) (testCase Action的實(shí)現(xiàn))2 基礎(chǔ)業(yè)務(wù)功能的實(shí)現(xiàn)reusable Action的實(shí)現(xiàn))其中,testCase Action只調(diào)用reusable Action,每個(gè)業(yè)務(wù)功能如何實(shí)現(xiàn),都放在了resuable Action中。1 使用QTP連接TD2 輸入TD服務(wù)器的信息,并連接。3 打開(kāi)要編輯的基礎(chǔ)業(yè)務(wù)功能的腳本。4 按照腳本的說(shuō)明信息,將基礎(chǔ)的業(yè)務(wù)功能腳本分割成多個(gè)resuable的Action。注意:分割了的Action,不能再合并。依次的,將所有的Action分割完成
5、。5 修改基礎(chǔ)業(yè)務(wù)功能Action的屬性,使其可重用。6 修改Action的傳入、傳出參數(shù)。傳入傳出參數(shù)的數(shù)據(jù)類型建議只使用String型,且各只有1個(gè)。傳入的參數(shù),是將數(shù)組轉(zhuǎn)成字符串傳入的,需要經(jīng)過(guò)解析后才能使用。7 基礎(chǔ)的業(yè)務(wù)功能的Action暫時(shí)就完成了?,F(xiàn)在開(kāi)始編寫(xiě)testCase的Action。打開(kāi)測(cè)試用例的腳本payment018 切換到Expert View,調(diào)用“銀行付款-新增的Action說(shuō)明:說(shuō)明:insert call to copy 與與 insert call to Exists假設(shè)要在假設(shè)要在ActionA中調(diào)用中調(diào)用ActionB call 是獲得是獲得Actio
6、nB的引用,只是引用,如果原本的的引用,只是引用,如果原本的ActionB的內(nèi)容發(fā)生了的內(nèi)容發(fā)生了變化,那么變化,那么ActionA中的內(nèi)容也跟著變化,且不能在中的內(nèi)容也跟著變化,且不能在ActionA中對(duì)中對(duì)ActionB修修改。改。copy 是把是把ActionB的腳本復(fù)制到的腳本復(fù)制到ActionA中,得到中,得到ActionB的一個(gè)的一個(gè)copy,修,修改改ActionB_copy不對(duì)不對(duì)ActionB造成影響,修改造成影響,修改ActionB也不對(duì)也不對(duì)ActionB_copy造成影響。造成影響。有點(diǎn)像有點(diǎn)像C語(yǔ)言中的傳指針和傳值的意思。語(yǔ)言中的傳指針和傳值的意思。另外,還可以去看編
7、寫(xiě)的腳本,一個(gè)沒(méi)有分割另外,還可以去看編寫(xiě)的腳本,一個(gè)沒(méi)有分割A(yù)ction的腳本,默認(rèn)會(huì)生成的腳本,默認(rèn)會(huì)生成Action0和和Action1兩個(gè)兩個(gè)Action,其中,其中Action0中一般只有一句話:中一般只有一句話:RunAction Action1,oneIteration當(dāng)運(yùn)行腳本時(shí),實(shí)際上,只是運(yùn)行了當(dāng)運(yùn)行腳本時(shí),實(shí)際上,只是運(yùn)行了Action0,其他的,其他的Action都是被都是被Action0調(diào)用的。調(diào)用的。copy過(guò)來(lái)的過(guò)來(lái)的Action,如果沒(méi)有使用,如果沒(méi)有使用RunAction的方法來(lái)調(diào)用,應(yīng)該的方法來(lái)調(diào)用,應(yīng)該是不會(huì)被運(yùn)行的,因?yàn)闆](méi)有被是不會(huì)被運(yùn)行的,因?yàn)闆](méi)有被A
8、ction0直接或間接調(diào)用。直接或間接調(diào)用。 9 確定要調(diào)用的新增的Action的傳入?yún)?shù)根據(jù)頁(yè)面的信息,新增銀行付款業(yè)務(wù)時(shí),需要輸入以下數(shù)據(jù):付款方客戶編號(hào) 付款方賬戶號(hào) 開(kāi)戶行編號(hào)收款方賬戶編號(hào)收款方名稱匯入行所在省匯入行所在市匯入行名稱金額支票號(hào)報(bào)單號(hào)摘要10 將傳入?yún)?shù)和數(shù)據(jù)寫(xiě)入到一個(gè)Excel表格中,并保存同時(shí),填寫(xiě)0 ThenrowData(i)=replace(temp_value, ,)elseif temp_value= ThenrowData(i)=elserowData(i)=temp_valueEnd IfNextgetLocalDTData=join(rowData)
9、End Function13 繼續(xù)調(diào)用“復(fù)核的Action,方法與之前的類似。不過(guò)復(fù)核時(shí),需要把交易號(hào)傳出來(lái),有一個(gè)傳出參數(shù)的問(wèn)題。形成的腳本如下:dataList=getLocalDTData(3,12)RunAction 新增 payment, oneIteration,dataListRunAction “復(fù)核 payment, oneIteration,dataList,transNO這樣一個(gè)簡(jiǎn)單的“制單-復(fù)核的流程就完成了。當(dāng)然,在這之前要調(diào)用“登陸”、“選擇模塊”、“選擇幣種”、“選擇菜單”、“退出系統(tǒng)的Action。完成后的腳本如下圖:傳入?yún)?shù)與傳出參數(shù)的使用:傳入?yún)?shù)與傳出參數(shù)
10、的使用:如果所調(diào)用的操作已定義了輸入和如果所調(diào)用的操作已定義了輸入和/ 或輸出參數(shù),您還可以提供輸入?yún)?shù)的值以或輸出參數(shù),您還可以提供輸入?yún)?shù)的值以及輸出參數(shù)的存儲(chǔ)位置,作為及輸出參數(shù)的存儲(chǔ)位置,作為 RunAction 語(yǔ)句的參數(shù)。輸入?yún)?shù)列在輸出參數(shù)語(yǔ)句的參數(shù)。輸入?yún)?shù)列在輸出參數(shù)之前。之前。對(duì)于輸入?yún)?shù),可以指定一個(gè)固定值,也可以指定另一個(gè)已定義的參數(shù)數(shù)據(jù)表對(duì)于輸入?yún)?shù),可以指定一個(gè)固定值,也可以指定另一個(gè)已定義的參數(shù)數(shù)據(jù)表參數(shù)、環(huán)境參數(shù)或調(diào)用操作的操作輸入?yún)?shù)的名稱,輸入?yún)?shù)將采用該已定義參數(shù)、環(huán)境參數(shù)或調(diào)用操作的操作輸入?yún)?shù)的名稱,輸入?yún)?shù)將采用該已定義參數(shù)的值。參數(shù)的值。對(duì)于輸出參
11、數(shù),可以指定一個(gè)用于存儲(chǔ)值的變量,或者是一個(gè)已定義參數(shù)數(shù)據(jù)對(duì)于輸出參數(shù),可以指定一個(gè)用于存儲(chǔ)值的變量,或者是一個(gè)已定義參數(shù)數(shù)據(jù)表參數(shù)、環(huán)境參數(shù)或調(diào)用操作的操作輸出參數(shù)的名稱。表參數(shù)、環(huán)境參數(shù)或調(diào)用操作的操作輸出參數(shù)的名稱。帶有參數(shù)的操作調(diào)用使用以下語(yǔ)法:帶有參數(shù)的操作調(diào)用使用以下語(yǔ)法:RunAction ActionName,=IterationQuantity,=Parameters例如,假設(shè)從例如,假設(shè)從 Action1 調(diào)用調(diào)用 Action2,并且,并且 Action2 有一個(gè)已定義的輸入?yún)?shù)和有一個(gè)已定義的輸入?yún)?shù)和一個(gè)已定義的輸出參數(shù)。一個(gè)已定義的輸出參數(shù)。 RunAction A
12、ction2, oneIteration, “MyValue” , MyVariable為輸入?yún)?shù)提供為輸入?yún)?shù)提供 MyValue 的字符串值,并將輸出參數(shù)生成的值存儲(chǔ)在名為的字符串值,并將輸出參數(shù)生成的值存儲(chǔ)在名為MyVariable 的變量中。的變量中。 摘自摘自QTP用戶手冊(cè)第用戶手冊(cè)第308頁(yè)頁(yè)測(cè)試實(shí)現(xiàn),需要實(shí)現(xiàn)兩部分的內(nèi)容1 測(cè)試用例的實(shí)現(xiàn) (testCase Action的實(shí)現(xiàn))2 基礎(chǔ)業(yè)務(wù)功能的實(shí)現(xiàn)reusable Action的實(shí)現(xiàn))其中,testCase Action只調(diào)用reusable Action,每個(gè)業(yè)務(wù)功能如何實(shí)現(xiàn),都放在了resuable Action中。如今,
13、開(kāi)始實(shí)現(xiàn)“銀行付款-新增的功能。打開(kāi)payment腳本,編輯“新增的Action解析傳入?yún)?shù)。因?yàn)閭魅雲(yún)?shù)是一個(gè)字符串,需要將其轉(zhuǎn)換成數(shù)組。仍然是在函數(shù)庫(kù)中添加一個(gè)方法,具體的腳本如下:Function stringToArray(bizDatas)與getBizData()方法相對(duì),解析字符串成數(shù)組返回。myString=split(bizDatas, ,-1,1)For i=LBound(myString) to UBound(myString)temp_value=myString(i)If instr(temp_value,)0 ThenmyString(i)=replace(temp
14、_value, )elseif temp_value= ThenmyString(i)=elsemyString(i)=temp_valueEnd IfNextstringToArray=myStringEnd Function解析傳入?yún)?shù)bizData=stringToArray(dataList)那么bizData就是一個(gè)數(shù)組,為了查看方便,在注釋中寫(xiě)明每個(gè)參數(shù)的含義:識(shí)別第一個(gè)放大鏡識(shí)別第一個(gè)放大鏡客戶編號(hào)的放大鏡。客戶編號(hào)的放大鏡。對(duì)于放大鏡,為了統(tǒng)一識(shí)別,采用以下兩步操作來(lái)完成:對(duì)于放大鏡,為了統(tǒng)一識(shí)別,采用以下兩步操作來(lái)完成:1 點(diǎn)擊放大鏡的圖標(biāo)點(diǎn)擊放大鏡的圖標(biāo)2 在彈出框中選擇編
15、號(hào)的鏈接在彈出框中選擇編號(hào)的鏈接第一步,識(shí)別放大鏡的圖標(biāo)第一步,識(shí)別放大鏡的圖標(biāo)先用先用object Spy查看一下圖標(biāo)的屬性。查看一下圖標(biāo)的屬性。對(duì)于靜態(tài)對(duì)于靜態(tài)Web對(duì)象的識(shí)別,在對(duì)象的識(shí)別,在的的PPT中有一個(gè)常用屬性的列表,可以參考。這里使用中有一個(gè)常用屬性的列表,可以參考。這里使用name屬性來(lái)識(shí)別圖片。屬性來(lái)識(shí)別圖片。頁(yè)面上有頁(yè)面上有4個(gè)放大鏡的圖標(biāo),所以僅僅靠個(gè)放大鏡的圖標(biāo),所以僅僅靠name屬性是不能唯一屬性是不能唯一識(shí)別的,這里需要使用識(shí)別的,這里需要使用index屬性來(lái)輔助識(shí)別。屬性來(lái)輔助識(shí)別。完成后的腳本就是這樣的:完成后的腳本就是這樣的:Browser(“creatio
16、nTime:=1”).Page(“index:=0”).Image(“name:=button”,”index:=0”).Click第二步,在彈出窗口中點(diǎn)擊客戶編號(hào)的超鏈接腳本如下:Browser(creationTime:=2).Page(index:=0).Link(text:=&bizData(0).Click這句話的意思是:在第3個(gè)被打開(kāi)的IE窗口中,點(diǎn)擊一個(gè)超鏈接,超鏈接的內(nèi)容是bizData(0)。bizData(0)就是解析出來(lái)的數(shù)組,第一個(gè)數(shù)據(jù)是客戶編號(hào)。注意這里的特殊寫(xiě)法,因?yàn)閎izData(0)是一個(gè)變量,連接字符串需要使用“&”。考慮到傳入的參數(shù)可能為空,
17、所以在這之前加一個(gè)判斷:如果客戶編號(hào)的值不為空,那么才點(diǎn)擊客戶編號(hào)的放大鏡,否則不點(diǎn)擊。腳本如下:If bizData(0) ThenBrowser(creationTime:=1).Page(index:=0).Image(name:=button,index:=0).ClickBrowser(creationTime:=2).Page(index:=0).Link(text:=&bizData(0).ClickEnd If依次的,寫(xiě)出付款賬戶編號(hào),及開(kāi)戶行的腳本:然后是收款方外部賬戶的信息。采取每次都重新錄入的原則,來(lái)輸入收款方外部賬戶的信息。由于是輸入框,就不需要判斷是否為空了。
18、腳本如下:接著,錄入付款金額等信息,并點(diǎn)擊“保管按鈕。注意保存按鈕的文字的前后均有空格,描述這個(gè)button時(shí),也要保留空格。關(guān)閉彈出對(duì)話框。注意:彈出對(duì)話框中的對(duì)象,屬于windows對(duì)象,不是Web對(duì)象,因此其屬性的識(shí)別也不一樣。如彈出框的“確定按鈕,其類別就是WinButton, 而不是WebButton,識(shí)別的屬性也改成text了。在這里,是假設(shè)了銀行付款業(yè)務(wù)通過(guò)了所有的頁(yè)面和后臺(tái)的校驗(yàn)。如果要檢查輸入的數(shù)據(jù)是否能夠通過(guò)程序校驗(yàn),需要寫(xiě)一些腳本來(lái)實(shí)現(xiàn)。到此,一個(gè)簡(jiǎn)單的銀行付款-新增的功能就完成了。最后再加上一句話:Reporter.ReportEvent micPass,銀行付款-新增
19、,完成“最終輸出的報(bào)告就會(huì)顯示“銀行付款-新增功能成功完成的字樣。其中,micPass是表示事件的狀態(tài):0或micPass 表示該事件通過(guò)1或micFail 表示該事件失敗2或micDone 表示該事件完成注意,完成與通過(guò)的區(qū)別)3或micWarning 表示生成警告信息編寫(xiě)“銀行付款-復(fù)核的腳本銀行付款-復(fù)核的頁(yè)面分兩個(gè),一個(gè)是匹配復(fù)核信息,一個(gè)是復(fù)核頁(yè)面。首先還是解析傳入?yún)?shù):現(xiàn)在開(kāi)始要使用傳出參數(shù)了。輸入匹配信息,點(diǎn)擊“匹配按鈕:由于匹配時(shí),有時(shí)能完全匹配,有時(shí)又不能完全匹配。這里就需要增加一個(gè)判斷。分析事件:如果匹配上的話,那么就直接顯示單據(jù)信息,如果不能匹配的話,就要彈出提示框顯示。
20、而且如果是腳本的話,大多數(shù)時(shí)候是能匹配上的。因而,判斷條件為,如果頁(yè)面上存在交易編號(hào)的輸入框,那么就認(rèn)為匹配上了,如果有彈出框,且彈出框的內(nèi)容為“無(wú)匹配信息的話,那么就認(rèn)為沒(méi)有匹配上。具體的腳本如下:這段腳本中有如下內(nèi)容需要解釋:If browser(creationTime:=1).Page(index:=0).WebEdit(name:=textfield2352).Exist Then這句話的意思是說(shuō),如果存在name屬性為textfield2352的輸入框就是交易編號(hào)的輸入框,開(kāi)發(fā)人員在寫(xiě)jsp頁(yè)面時(shí),沒(méi)有把這個(gè)輸入框的名稱改過(guò)來(lái)的話,那么Exist: 指示 QuickTest 等待打開(kāi)窗口或顯示對(duì)象。Exist 語(yǔ)句返回一個(gè)布爾值,指示對(duì)象當(dāng)前是否存在。如果使用.Exist(20),就表示等待20秒,不加入等待時(shí)間,取系統(tǒng)默認(rèn)的等待時(shí)間。等待時(shí)間的設(shè)置在File-Setting菜單中。如下圖。如果在無(wú)人值守的情況下,還需要使用場(chǎng)景恢復(fù)機(jī)制。這個(gè)需要另外的PPT說(shuō)明。parameter(outStr)=Browser(creationTime:=1).Page(index:=0).WebEdit(name:=textfield2352).GetROProperty(value)這句話的意思是說(shuō),把交易編號(hào)的值賦給本Action的傳出參數(shù)ou
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度橋梁工程包清工承包合同范本2篇
- 年度高硅氧玻璃纖維紗競(jìng)爭(zhēng)策略分析報(bào)告
- 2024屆黑龍江省伊春市中考二模英語(yǔ)試題含答案
- 2024年預(yù)制混凝土構(gòu)件安裝合同
- 二零二五年度建筑工程債權(quán)轉(zhuǎn)讓與竣工驗(yàn)收協(xié)議3篇
- 2025年巴中貨運(yùn)從業(yè)資格證考試題庫(kù)答案
- 2024版建筑工程勞務(wù)分包協(xié)議
- 2024煤炭購(gòu)銷運(yùn)輸與綠色運(yùn)輸體系建設(shè)服務(wù)合同2篇
- 二零二五年度建筑腳手架租賃與安裝勞務(wù)分包合同樣本3篇
- 2024-2025年二級(jí)建造師之二建水利水電實(shí)務(wù)考試題庫(kù)及答案(真題匯編)
- 2022年外交學(xué)院輔導(dǎo)員招聘筆試題庫(kù)及答案解析
- 磁致伸縮液位傳感器KYDM-路線設(shè)置使用
- (完整版)建筑業(yè)10項(xiàng)新技術(shù)(2017年最新版)
- 收割機(jī)轉(zhuǎn)讓協(xié)議
- 中學(xué)歷史教育中的德育狀況調(diào)查問(wèn)卷
- 煤礦煤業(yè)掘進(jìn)工作面班組安全確認(rèn)工作記錄表 模板
- 第8期監(jiān)理月報(bào)(江蘇版)
- 建筑工程質(zhì)量管理體系文件
- 乙丙橡膠電力電纜絕緣一步法硅烷交聯(lián)工藝
- 中止施工安全監(jiān)督申請(qǐng)書(shū)(范例)
- 世界各國(guó)標(biāo)準(zhǔn)鋼號(hào)對(duì)照表
評(píng)論
0/150
提交評(píng)論