999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ANTLR的Web應(yīng)用測(cè)試腳本自動(dòng)重構(gòu)方法

2017-10-26 09:28:42周輝錢(qián)巨

周輝 錢(qián)巨

摘要:Web應(yīng)用在各個(gè)領(lǐng)域得到廣泛應(yīng)用,為保證Web應(yīng)用程序質(zhì)量,需要對(duì)它進(jìn)行詳盡的測(cè)試。基于腳本的自動(dòng)化測(cè)試越來(lái)越流行,逐漸的被應(yīng)用在了Web應(yīng)用程序測(cè)試中。功能測(cè)試腳本一般用于Web應(yīng)用的功能和接口測(cè)試,很難發(fā)現(xiàn)Web應(yīng)用中可能存在的缺陷或者性能瓶頸。很多研究人員通過(guò)擴(kuò)展功能測(cè)試腳本或者重新編寫(xiě)性能測(cè)試腳本來(lái)測(cè)試Web應(yīng)用程序的缺陷問(wèn)題。這種方式效率低下,資源開(kāi)銷大。為此,我們提出了一種基于ANTLR開(kāi)源庫(kù)的測(cè)試腳本自動(dòng)重構(gòu)方法,首先對(duì)測(cè)試腳本進(jìn)行優(yōu)化,加速測(cè)試腳本執(zhí)行速度,然后對(duì)測(cè)試腳本進(jìn)行增強(qiáng),從而構(gòu)造出一個(gè)快速暴露Web應(yīng)用程序缺陷的性能測(cè)試腳本。

關(guān)鍵詞:Web應(yīng)用;軟件測(cè)試;ANTLR;腳本重構(gòu)

中圖分類號(hào):TP311文獻(xiàn)標(biāo)識(shí)碼:A

Abstract:

Web applications have been widely used in various fields,in order to guarantee the quality of Web applications,it is necessary to test Web applications in detailScriptbased automated testing is becoming more and more popular,and it has gradually been applied in Web applications testFunctional test scripts usually used to test the functionality and interfaces of Web applicationsIt is difficult to find the memory defects or performance defects that may exist in the Web applicationsSo many researchers test the defect of the Web applications by extending the functional test script or rewriting the performance test script,however it is inefficientIn order to solve this problem,we propose an automatically refactoring approach of test scripts based on ANTLRThe approach was used to optimize the test script and accelerate test script execution speedIt can expose defects of Web applications by executing enhanced the test script.

Key words:web application;software test;ANTLR;script refactoring

1引言

近年來(lái),隨著信息技術(shù)的飛速發(fā)展,基于網(wǎng)絡(luò)的Web應(yīng)用軟件以及云應(yīng)用風(fēng)靡全球,并被廣泛的應(yīng)用到社會(huì)的各個(gè)領(lǐng)域,成為當(dāng)前和未來(lái)的軟件系統(tǒng)開(kāi)發(fā)的主流。Web應(yīng)用軟件具有的異構(gòu)、分布、并發(fā)和平臺(tái)無(wú)關(guān)的特性要求測(cè)試人員需要對(duì)其進(jìn)行更加詳盡和審慎的測(cè)試[1]。研究人員從多個(gè)角度對(duì)Web應(yīng)用測(cè)試進(jìn)行研究主要包括用例生成[7][8]、結(jié)果分析[9]、故障注入[7]等。Lei Xu等[4]提出了一個(gè)Web應(yīng)用測(cè)試框架,描述了Web應(yīng)用測(cè)試流程。然而,隨著Web應(yīng)用軟件變得越來(lái)越復(fù)雜,傳統(tǒng)的人工測(cè)試方法不僅耗時(shí)耗力而且效率低下,因此自動(dòng)化測(cè)試方法被越來(lái)越多的應(yīng)用于Web應(yīng)用程序的測(cè)試。Nadia Alshahwan等[5]使用SBST方法對(duì)Web應(yīng)用進(jìn)行自動(dòng)化測(cè)試和回歸測(cè)試。基于腳本驅(qū)動(dòng)的自動(dòng)化測(cè)試方法是比較主流的自動(dòng)化測(cè)試方式。通過(guò)測(cè)試工具錄制自動(dòng)化執(zhí)行腳本或者測(cè)試人員編寫(xiě)測(cè)試腳本,并驅(qū)動(dòng)測(cè)試腳本運(yùn)行Web應(yīng)用。基于腳本的自動(dòng)化測(cè)試方法不僅節(jié)約時(shí)間,而且可以將測(cè)試人員從繁雜的手工測(cè)試中解放出來(lái),大大提高Web應(yīng)用程序的測(cè)試效率。但是測(cè)試工具錄制的測(cè)試腳本一般都是功能測(cè)試腳本,主要用來(lái)測(cè)試Web應(yīng)用程序的功能和接口。因此普通的功能測(cè)試腳本很難發(fā)現(xiàn)Web應(yīng)用程序中內(nèi)存缺陷問(wèn)題或者性能瓶頸。現(xiàn)階段,驅(qū)動(dòng)測(cè)試腳本來(lái)發(fā)現(xiàn)和檢測(cè)Web應(yīng)用中的缺陷,大部分是通過(guò)測(cè)試人員的手動(dòng)循環(huán)執(zhí)行功能測(cè)試腳本,或者在測(cè)試腳本中添加一些與性能測(cè)試相關(guān)的腳本語(yǔ)句。手動(dòng)的循環(huán)執(zhí)行測(cè)試腳本需要過(guò)多的人工干預(yù),可能會(huì)由于人為因素導(dǎo)致測(cè)試結(jié)果的不穩(wěn)定。而在測(cè)試腳本中手動(dòng)的添加代碼,對(duì)于海量測(cè)試腳本來(lái)說(shuō),工作量是巨大的。

本文提出了一種基于ANTLR[3]開(kāi)源庫(kù)的Web應(yīng)用程序測(cè)試腳本自動(dòng)重構(gòu)方法,對(duì)功能測(cè)試腳本進(jìn)行自動(dòng)重構(gòu),通過(guò)刪除Web應(yīng)用測(cè)試不相關(guān)的語(yǔ)句對(duì)測(cè)試腳本進(jìn)行優(yōu)化,加速測(cè)試腳本的執(zhí)行,減少測(cè)試時(shí)間。可以為功能測(cè)試腳本自動(dòng)添加循環(huán)操作、并發(fā)操作代碼實(shí)現(xiàn)對(duì)測(cè)試腳本的增強(qiáng)。從而將普通的功能測(cè)試腳本重構(gòu)為Web應(yīng)用性能測(cè)試腳本。通過(guò)執(zhí)行重構(gòu)后的性能測(cè)試腳本,可以更快的發(fā)現(xiàn)Web應(yīng)用中可能存在的缺陷和性能瓶頸,并提高測(cè)試效率,節(jié)約測(cè)試資源。

2Web應(yīng)用測(cè)試腳本自動(dòng)優(yōu)化方法

測(cè)試腳本自動(dòng)優(yōu)化是通過(guò)將Web應(yīng)用測(cè)試腳本中與Web事件不相關(guān)的測(cè)試語(yǔ)句移除。主要包括兩個(gè)步驟:腳本代碼狀態(tài)收集和測(cè)試腳本優(yōu)化處理。我們是通過(guò)將測(cè)試腳本中的語(yǔ)句劃分為Web事件語(yǔ)句和非Web事件語(yǔ)句,所謂Web事件就是真正和Web應(yīng)用程序執(zhí)行相關(guān)的腳本部分。而非Web事件是那些不用于測(cè)試執(zhí)行的代碼例如對(duì)測(cè)試執(zhí)行結(jié)果進(jìn)行驗(yàn)證或者將測(cè)試執(zhí)行日志保存等。endprint

21運(yùn)行時(shí)聯(lián)網(wǎng)狀態(tài)收集

在測(cè)試腳本發(fā)起自動(dòng)化測(cè)試執(zhí)行之前,利用ANTLR工具對(duì)測(cè)試腳本進(jìn)行插樁處理。然后再執(zhí)行插樁后的測(cè)試腳本來(lái)收集測(cè)試腳本中語(yǔ)句聯(lián)網(wǎng)信息。 首先,我們需要構(gòu)建一個(gè)測(cè)試腳本運(yùn)行時(shí)聯(lián)網(wǎng)狀態(tài)收集模型,如圖1所示。

下面對(duì)運(yùn)行時(shí)聯(lián)網(wǎng)狀態(tài)信息收集模型的構(gòu)建步驟進(jìn)行詳細(xì)的說(shuō)明。

1)測(cè)試腳本運(yùn)行時(shí)插樁。

輸入數(shù)據(jù)是一個(gè)原始的正常Web應(yīng)用自動(dòng)化測(cè)試腳本。輸出數(shù)據(jù)是插入聯(lián)網(wǎng)信息跟蹤監(jiān)控語(yǔ)句的測(cè)試腳本。具體流程如圖2所示。

2)測(cè)試腳本跟蹤執(zhí)行

使用Selenium[6]自動(dòng)化執(zhí)行引擎執(zhí)行測(cè)試腳本,在第一步測(cè)試腳本插樁中,我們?cè)跍y(cè)試腳本中插入了啟用全局代理語(yǔ)句。因此測(cè)試方法執(zhí)行時(shí)并不直接將執(zhí)行請(qǐng)求發(fā)送給Web服務(wù)器,而是先將請(qǐng)求發(fā)送給代理服務(wù)器,通過(guò)代理服務(wù)器攔截執(zhí)行請(qǐng)求,并進(jìn)行聯(lián)網(wǎng)狀態(tài)判斷,執(zhí)行測(cè)試腳本中的某條語(yǔ)句時(shí),如果代理服務(wù)器有流量經(jīng)過(guò)說(shuō)明該執(zhí)行語(yǔ)句對(duì)應(yīng)的腳本語(yǔ)句是一個(gè)聯(lián)網(wǎng)腳本即該事件是一個(gè)Web事件。由于代理服務(wù)器不僅要接收測(cè)試腳本執(zhí)行請(qǐng)求,同時(shí)還要與測(cè)試腳本中插入的腳本行號(hào)信息進(jìn)行通信,因?yàn)楫?dāng)我們知道某條語(yǔ)句是Web事件時(shí),如果此時(shí)我們不清楚該條語(yǔ)句的行號(hào),那么就無(wú)法將聯(lián)網(wǎng)信息與執(zhí)行語(yǔ)句對(duì)應(yīng)起來(lái),為此,我們將代理服務(wù)器的Web事件消息轉(zhuǎn)發(fā)和普通的消息通信隔離,我們重新啟用一個(gè)端口。并使用線程隔離的方式來(lái)共享測(cè)試腳本聯(lián)網(wǎng)狀態(tài)。上文介紹,在每一條執(zhí)行語(yǔ)句后面都插入了一個(gè)語(yǔ)句行號(hào), 因此在每條測(cè)試腳本執(zhí)行之后都會(huì)將該語(yǔ)句的行號(hào)發(fā)送給代理服務(wù),向代理服務(wù)器詢問(wèn)剛剛執(zhí)行的語(yǔ)句是否聯(lián)網(wǎng),代理服務(wù)器會(huì)根據(jù)腳本信息是否聯(lián)網(wǎng)發(fā)送給執(zhí)行前端。我們定義了一個(gè)數(shù)據(jù)結(jié)構(gòu)來(lái)保存每行腳本聯(lián)網(wǎng)信息。

T = {[Line,F(xiàn)lag],...,[Line,F(xiàn)lag]}

Line表示正在執(zhí)行的語(yǔ)句行號(hào),F(xiàn)lag表示正在執(zhí)行的語(yǔ)句是否是Web事件,例如行號(hào)為20的測(cè)試語(yǔ)句被判定是一個(gè)Web事件那么就被以[20,true]的格式被保存起來(lái),所有的語(yǔ)句的聯(lián)網(wǎng)狀態(tài)會(huì)都會(huì)持久化作為測(cè)試腳本自動(dòng)優(yōu)化重構(gòu)的輸入數(shù)據(jù)。

22測(cè)試腳本自動(dòng)優(yōu)化

運(yùn)行時(shí)聯(lián)網(wǎng)狀態(tài)收集模型用來(lái)收集腳本聯(lián)網(wǎng)狀態(tài)數(shù)據(jù),而測(cè)試腳本優(yōu)化主要是去除那些與Web應(yīng)用程序測(cè)試執(zhí)行不相關(guān)的語(yǔ)句,也就是非Web事件語(yǔ)句,通過(guò)收集每行語(yǔ)句的聯(lián)網(wǎng)信息作為測(cè)試腳本語(yǔ)句去除的標(biāo)準(zhǔn),語(yǔ)句去除原則就是去除最后一條Web事件之后的所有語(yǔ)句。因?yàn)樵谡嬲cWeb應(yīng)用程序相關(guān)的語(yǔ)句已經(jīng)執(zhí)行完畢,后續(xù)的執(zhí)行語(yǔ)句將不會(huì)對(duì)Web應(yīng)用產(chǎn)生任何作用,只是用來(lái)記錄腳本執(zhí)行的附加信息或者對(duì)測(cè)試執(zhí)行結(jié)果進(jìn)行驗(yàn)證。

測(cè)試腳本優(yōu)化的輸入數(shù)據(jù)是原始腳本和腳本語(yǔ)句聯(lián)網(wǎng)狀態(tài)信息,輸出數(shù)據(jù)是優(yōu)化后的測(cè)試腳本。主要流程如圖3所示。我們利用ANTLR工具,在Python的文法下,構(gòu)建Python測(cè)試腳本的抽象語(yǔ)法樹(shù)。同時(shí)對(duì)聯(lián)網(wǎng)數(shù)據(jù)進(jìn)行判斷,找到最后一個(gè)Web事件對(duì)應(yīng)的語(yǔ)句行號(hào)。然后將行號(hào)與抽象語(yǔ)法樹(shù)進(jìn)行匹配,找到最后一個(gè)Web事件對(duì)應(yīng)的節(jié)點(diǎn),在測(cè)試方法的語(yǔ)句范圍內(nèi),刪除該節(jié)點(diǎn)之后的所有節(jié)點(diǎn)。最后將抽象語(yǔ)法樹(shù)還原成測(cè)試腳本。

3Web應(yīng)用測(cè)試腳本自動(dòng)增強(qiáng)

內(nèi)存膨脹測(cè)試腳本增強(qiáng)是指通過(guò)對(duì)測(cè)試腳本進(jìn)行自動(dòng)化重構(gòu),將普通功能測(cè)試腳本轉(zhuǎn)換成為性能測(cè)試腳本。典型的方式是通過(guò)為測(cè)試腳本填添加循環(huán)操作和并發(fā)操作。

31腳本循環(huán)引入策略

測(cè)試腳本循環(huán)是指通過(guò)為測(cè)試腳本中的測(cè)試方法添加循環(huán)語(yǔ)句實(shí)現(xiàn)對(duì)測(cè)試方法的循環(huán)執(zhí)行,從而達(dá)到Web應(yīng)用程序長(zhǎng)時(shí)間大劑量運(yùn)行效果,更快的發(fā)現(xiàn)Web應(yīng)用中可能存在的內(nèi)存膨脹問(wèn)題。傳統(tǒng)的方法是測(cè)試人員手動(dòng)不斷重復(fù)的循環(huán)執(zhí)行測(cè)試腳本,而人工循環(huán)操作測(cè)試腳本不僅耗時(shí)耗力,而且可能導(dǎo)致測(cè)試結(jié)果的不穩(wěn)定。另外,手動(dòng)的在測(cè)試腳本中添加循環(huán)操作也會(huì)導(dǎo)致人工的過(guò)度干預(yù),并且對(duì)每個(gè)測(cè)試腳本都添加循環(huán)操作會(huì)產(chǎn)生巨大的工作量,大大降低測(cè)試效率。我們提出了一個(gè)測(cè)試腳本自動(dòng)添加循環(huán)的方法,通過(guò)為測(cè)試方法設(shè)置循環(huán)次數(shù),自動(dòng)的在測(cè)試方法中的預(yù)定位置插入循環(huán)語(yǔ)句實(shí)現(xiàn)腳本循環(huán)執(zhí)行。

Web應(yīng)用程序試腳本循環(huán)的輸入是一個(gè)原始測(cè)試腳本和預(yù)定循環(huán)次數(shù),輸出是一個(gè)增加循環(huán)后的測(cè)試腳本。算法偽代碼如算法1所示。

首先給定一個(gè)原始測(cè)試腳本,利用ANTLR構(gòu)造測(cè)試腳本抽象語(yǔ)法樹(shù)AST,然后定位循環(huán)語(yǔ)句的插樁位置,由于循環(huán)是作用于整個(gè)測(cè)試方法,所以需要循環(huán)語(yǔ)句添加到整個(gè)方法體的外層。循環(huán)語(yǔ)句的插樁位置測(cè)試方法第一個(gè)直接子節(jié)點(diǎn)之前。插入循環(huán)語(yǔ)句節(jié)點(diǎn)之后,將抽象語(yǔ)法樹(shù)還原成測(cè)試腳本。完成循環(huán)語(yǔ)句自動(dòng)插入。

32腳本并發(fā)引入策略

為了模擬多用戶并發(fā)場(chǎng)景,增加Web應(yīng)用內(nèi)存膨脹問(wèn)題暴露的可能性,我們?yōu)闇y(cè)試腳本引入了并發(fā)執(zhí)行語(yǔ)句。手動(dòng)測(cè)試腳本并發(fā)執(zhí)行需要測(cè)試人員同時(shí)運(yùn)行多個(gè)測(cè)試腳本,操作復(fù)雜,效率低下。我們提出了一種測(cè)試腳本自動(dòng)重構(gòu)策略來(lái)為測(cè)試腳本添加并發(fā)執(zhí)行。為了避免同時(shí)運(yùn)行多個(gè)腳本,我們將多個(gè)不同的測(cè)試腳本通過(guò)外部引入的方式加入到原始測(cè)試腳本中。這樣,只需要發(fā)起一個(gè)測(cè)試腳本的執(zhí)行,會(huì)自動(dòng)執(zhí)行并發(fā)方法,并發(fā)執(zhí)行方法會(huì)再以并發(fā)的方式調(diào)用外部引用的測(cè)試腳本,從而實(shí)現(xiàn)多腳本并發(fā)執(zhí)行。

如圖4所示,腳本并發(fā)引入的輸入數(shù)據(jù)是原始測(cè)試腳本、并發(fā)線程數(shù)目以及待并發(fā)的測(cè)試腳本集合,輸出數(shù)據(jù)是自動(dòng)重構(gòu)的并發(fā)測(cè)試腳本。首先利用ANTLR在原始腳本中確定并發(fā)測(cè)試方法的插入位置。并使用ANTLR構(gòu)造測(cè)試腳本抽象語(yǔ)法樹(shù),然后將并發(fā)測(cè)試腳本通過(guò)外部引入的方式關(guān)聯(lián)到原始腳本上,將引入語(yǔ)句插入到抽象語(yǔ)法樹(shù)中。然后根據(jù)模板將并發(fā)線程數(shù)目以及運(yùn)行庫(kù)runtime封裝成并發(fā)方法。最后將并發(fā)方法插入到抽象語(yǔ)法樹(shù)中的預(yù)定插樁位置。然后將抽象語(yǔ)法樹(shù)還原成測(cè)試腳本,完成對(duì)測(cè)試腳本的并發(fā)執(zhí)行引入。

4原型工具實(shí)現(xiàn)endprint

為檢驗(yàn)本文方法的有效性,在Eclipse 平臺(tái)上實(shí)現(xiàn)了一個(gè)Web應(yīng)用程序測(cè)試腳本自動(dòng)重構(gòu)原型工具。 圖 5 給出了測(cè)試腳本自動(dòng)優(yōu)化界面,從圖中可以看出通過(guò)測(cè)試腳本自動(dòng)優(yōu)化后,原始測(cè)試方法中的print(“test acc log”)被去除,實(shí)現(xiàn)測(cè)試腳本優(yōu)化。

圖6給出了測(cè)試腳本自動(dòng)增強(qiáng)界面。以自動(dòng)為測(cè)試腳本添加循環(huán)為例,這里為測(cè)試腳本UpdateBook.py的test_update_book測(cè)試方法添加10輪循環(huán),自動(dòng)重構(gòu)后的測(cè)試腳本如圖中右邊編輯框所示,測(cè)試方法被自動(dòng)添加了循環(huán)語(yǔ)句,實(shí)現(xiàn)測(cè)試腳本增強(qiáng)。測(cè)試腳本并發(fā)過(guò)程同添加循環(huán)一樣。

5結(jié)論

本文提出了一種基于ANTLR的Web應(yīng)用測(cè)試腳本自動(dòng)重構(gòu)方法。通過(guò)構(gòu)建測(cè)試腳本運(yùn)行時(shí)聯(lián)網(wǎng)狀態(tài)模型收集腳本聯(lián)網(wǎng)狀態(tài),再利用ANTLR自動(dòng)去除測(cè)試腳本與Web事件不相關(guān)的語(yǔ)句實(shí)現(xiàn)腳本自動(dòng)優(yōu)化。通過(guò)為測(cè)試腳本添加循環(huán)、并發(fā)語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)測(cè)試腳本的增強(qiáng)。測(cè)試腳本的自動(dòng)重構(gòu)不僅提高了測(cè)試效率,節(jié)約了測(cè)試資源,而且能夠更快的發(fā)現(xiàn)Web應(yīng)用中存在的內(nèi)存缺陷和性能瓶頸。

參考文獻(xiàn)

[1]路曉麗Web應(yīng)用軟件的測(cè)試技術(shù)研究[D]西安:西北大學(xué),2006

[2]楊佩星面向能耗的測(cè)試用例生成技術(shù)研究[D],南京:南京航空航天大學(xué),2016.

[3]ANTLR.http://www.antlr.org/

[4]XU L,XU BA Framework for Web Applications Testing[C]// International Conference on CyberworldsIEEE Computer Society,2004:300-305.

[5]ALSHAHWAN N,HARMAN MAutomated web application testing using search based software engineering[J]2011,43(30):3-12.

[6]Seleniumhttp://docs.seleniumhq.org.

[7]HANNA S,MUNRO M,F(xiàn)aultbased Web services testing,5th International Conference on Information Technology[C] //New Generations (ITNG)USA,2008,471-476.

[8]LI Z J,ZHU J,ZHANG L J,et alTowards a Practical and EffectiveApproach for Web Services Test Case Generation[J]Automation of Software Test,2009,106-114.

[9]ATKINSON C,BRENNER D,F(xiàn)ALCONE G,et alSpecifying highassurance services[J]Computer,2008,41,64-71.endprint

主站蜘蛛池模板: 一边摸一边做爽的视频17国产| 国产综合无码一区二区色蜜蜜| 亚洲嫩模喷白浆| 中文字幕久久波多野结衣| 国产欧美日韩免费| 亚洲国产天堂在线观看| 一本大道香蕉高清久久| 中文字幕在线播放不卡| 99在线观看国产| 凹凸国产分类在线观看| 亚洲色婷婷一区二区| 精品国产一区91在线| 2020久久国产综合精品swag| a级毛片视频免费观看| 青青草欧美| 最新精品久久精品| 精品无码国产一区二区三区AV| 最新国产精品第1页| 青青热久免费精品视频6| 久久亚洲黄色视频| 女人18一级毛片免费观看| 国产成人1024精品下载| 亚洲人成网站色7799在线播放| 亚洲精品国产自在现线最新| 国产一级小视频| 亚洲高清在线天堂精品| 色老二精品视频在线观看| 秋霞国产在线| 亚洲成人77777| 99ri精品视频在线观看播放| 国产午夜精品一区二区三| 欧美在线视频不卡第一页| 欧美日韩国产在线人成app| AV片亚洲国产男人的天堂| 无码中文字幕加勒比高清| 国产成人高清在线精品| 国产啪在线91| 五月婷婷精品| 国产成人精品高清不卡在线 | 精品久久人人爽人人玩人人妻| 日韩视频精品在线| 亚洲色图在线观看| 一级毛片中文字幕 | 午夜国产在线观看| 91精品福利自产拍在线观看| 欧美日韩国产成人高清视频| 成人国产精品网站在线看| 欧美在线伊人| 欧美国产日韩在线观看| 久久香蕉国产线看观看精品蕉| 色悠久久久| 美女一级免费毛片| 中文毛片无遮挡播放免费| 国产福利微拍精品一区二区| 久久香蕉国产线看观| 九九香蕉视频| 国产麻豆va精品视频| 日韩毛片在线视频| 久久久久青草线综合超碰| 91福利国产成人精品导航| 成人毛片在线播放| 99久久这里只精品麻豆| 亚洲天堂免费| V一区无码内射国产| 国产对白刺激真实精品91| 伊人成色综合网| 一级香蕉视频在线观看| 欧美人在线一区二区三区| 久久久国产精品无码专区| 国产欧美日韩免费| 亚洲精品成人福利在线电影| 91精品免费高清在线| 国产区人妖精品人妖精品视频| 老熟妇喷水一区二区三区| 欧美日韩高清| 国产人成在线观看| 亚洲免费三区| 激情無極限的亚洲一区免费| 亚洲aⅴ天堂| 最新国产在线| 波多野结衣一级毛片| 久久婷婷综合色一区二区|