日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

史上最轻量​!阿里新型单元测试Mock工具开源了

發(fā)布時間:2024/9/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 史上最轻量​!阿里新型单元测试Mock工具开源了 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
簡介:為了探索更輕量易用的Mock測試手段,阿里云云效團(tuán)隊嘗試給工具減負(fù),在主流Mock工具的基礎(chǔ)上讓Mock的定義和置換干凈利落,最終設(shè)計了一款極簡風(fēng)格的測試輔助工具TestableMock,無需初始化,不挑測試框架,無論要換的是私有方法、靜態(tài)方法、構(gòu)造方法還是其他任何類的任何方法,也無需關(guān)注要換的對象是怎么創(chuàng)建的,只要寫好Mock定義,加個@MockMethod注解,就能統(tǒng)統(tǒng)搞定。本文分享TestableMock的實現(xiàn)原理。

最簡單舒適的Mock測試應(yīng)該是怎樣的?

指著源文件調(diào)用了外部依賴的那行代碼說:

“你,在測試的時候,換成這個假的調(diào)用!”

結(jié)束。

甭管他是私有方法、靜態(tài)方法,還是別的類的方法,直接換掉,不要有任何多余動作。

一 Mock測試八股文

Java的Mock工具伴隨著單元測試技術(shù)不斷迭代發(fā)展,可謂前仆后繼、歷久彌新,雖然原理各不相同,但核心的使用模式卻幾乎沒發(fā)生過多少變化。不論是當(dāng)下流行的Mockito和PowerMock,或是曾經(jīng)著名的JMockit、EasyMock、MockRunner等等,基本使用套路都是:先初始化、然后定義Mock對象,最后通過某種機(jī)制把定義好的Mock對象送回被測類,替換原本的被調(diào)用對象。

來個Mockito測試的實際代碼感受一下。

// 第一步:初始化 Mockito@RunWith(MockitoJUnitRunner.class) public class RecordServiceTest { // 第二步:定義Mock對象 @Mock DatabaseDAO databaseMock;// 第三步:定義測試用例 @Test public void saveTest() { // 第四步:定義替代方法 when(databaseMock.write()).thenReturn(4); // 第五步:注入Mock對象 RecordService recordService = new RecordService(databaseMock);// 第六步:執(zhí)行測試內(nèi)容 boolean saved = recordService.save("demo");// 第七步:驗證測試結(jié)果 assertEquals(true, saved); // 第八步:驗證Mock方法被執(zhí)行 verify(databaseMock, times(1)).write(); } }

根據(jù)不同的實現(xiàn)原理,將Mock對象送回被測方法的手段有許多種。

基于動態(tài)代理實現(xiàn)的Mockito比較符合直覺,但除了能用@InjectMocks支持 @Autowired注入的Spring Bean以外,幾乎沒提供太多黑魔法,因此要求用戶代碼要寫得“可測試”。若要換的對象沒用依賴注入機(jī)制,Mockito就幫不上忙了。

基于自定義類加載器的PowerMock能用@PrepareForTest繞進(jìn)被測類里去替換Mock對象,但副作用是會讓Jacoco默認(rèn)的on-the-fly模式測試覆蓋率會全部跌零。PowerMock的使用流程和Mockito十分 相似,只是功能更多了,開發(fā)者的學(xué)習(xí)曲線也變得更加陡峭。

基于動態(tài)字節(jié)碼修改實現(xiàn)的JMockit要技高一籌,它在不影響測試覆蓋率的情況下,僅通過“局部手術(shù)”就能讓被測方法里的Mock目標(biāo)“貍貓換太子”。不過,JMockit不僅要求每個用例的開頭和結(jié)尾采用固定結(jié)構(gòu),而且發(fā)明了一種并不太符合Java習(xí)慣的Mock定義語法,妥妥的將自己做成了一款“測試框架”。同樣看個例子。

// 第一步:初始化JMockit @RunWith(JMockit.class) public class PerformerTest { // 第二步:定義Mock對象 @Mocked private Collaborator collaborator; // 第三步:定義被測對象// 隱含注入Mock對象邏輯 @Tested private Performer performer; // 第四步:定義測試用例 @Test public void testThePerformMethod() { // 第五步:定義替代方法 new Expectations() {{ collaborator.work("bar"); result = 10; }};// 第六步:執(zhí)行測試內(nèi)容 boolean res = performer.perform("test"); // 第七步:驗證測試結(jié)果 assertEquals(true, res);// 第八步:驗證Mock方法被執(zhí)行 new Verifications() {{ collaborator.receive(true); }}; } }

其余幾款Mock工具使用流程基本雷同,不再列舉。這個神奇的規(guī)律表明,在任何完整的Mock測試過程里,我們都在習(xí)以為常的遵循一種固定的八段式結(jié)構(gòu)。而且這八個步驟里,有五個都與Mock相關(guān)。

本來只是讓Mock工具客串一下外部依賴,怎么它就喧賓奪主的掌控起整個測試結(jié)構(gòu)了呢?

二 極簡的TestableMock

為了探索更輕量易用的Mock測試手段,我們嘗試給工具減負(fù),讓Mock的定義和置換干凈利落,最終設(shè)計了一款極簡風(fēng)格的測試輔助工具TestableMock,開源地址:
https://github.com/alibaba/testable-mock。

在TestableMock的世界里,Mock就是指定目標(biāo)方法,定義替代實現(xiàn),然后看著它在測試運行的時候被自動換掉,從頭至尾只需一個注解:@MockMethod。若將前面的第一個例子改成用TestableMock來實現(xiàn),大概長這個樣子。

public class RecordServiceTest { // 定義Mock目標(biāo)和替代方法 // 約定Mock方法比原方法多一個參數(shù),傳入調(diào)用者本身 // 因此是替換DatabaseDAO類的int write()方法調(diào)用 @MockMethod int write(DatabaseDAO origin) { return 4; }// 定義測試用例 @Test public void saveTest() { // 執(zhí)行測試內(nèi)容 RecordService rs = new RecordService(); boolean saved = rs.save("demo");// 驗證測試結(jié)果 assertEquals(true, saved); // 驗證Mock方法被執(zhí)行 TestableTool.verify("write").times(1); } }

一共五個步驟,與Mock相關(guān)的只有兩處。無需初始化框架,且Mock定義無需侵入測試用例,更無需開發(fā)者操心Mock方法如何注入。一切被@MockMethod注解安排的明明白白:在被測類中凡是調(diào)用DatabaseDAO對象write()方法的地方,統(tǒng)統(tǒng)變成空調(diào)用并且返回數(shù)值“4”。

與以往Mock工具總是要替換整個對象的思路不同,TestableMock直接替換目標(biāo)方法,腦回路無比簡單,這種簡化設(shè)計主要基于兩條基本假設(shè):

  • 假設(shè)一:同一個測試類里,一個測試用例里需要Mock掉的方法,在其他測試用例里通常也都需要Mock。因為這些被Mock的方法往往訪問了不便于測試的外部依賴。
  • 假設(shè)二:需要Mock的調(diào)用都來自被測類的代碼。此假設(shè)是符合單元測試初衷的,即單元測試只應(yīng)該關(guān)注當(dāng)前單元的內(nèi)部行為,單元外的邏輯應(yīng)該被替換為Mock。

對于假設(shè)一,TestableMock允許有少量特例。比如上述Mock方法里,如果僅對從save方法里的write()調(diào)用進(jìn)行Mock,可以使用TestableTool工具類進(jìn)行輔助判斷。

@MockMethod int write(DatabaseDAO origin) { switch(TestableTool.SOURCE_METHOD) { case "save": return 10; default: return origin.write(); } }

假設(shè)二通常不應(yīng)該有特例,否則意味著是單元測試本身寫法有問題。

除此以外,TestableMock的“輕量”還體現(xiàn)在它不挑合作伙伴,代碼里沒有為任何運行框架或測試框架定制邏輯。不論項目使用Spring、JFinal還是Quarkus,不論測試使用JUnit4、JUnit5還是TestNG,不論覆蓋率統(tǒng)計使用Jacoco還是其他工具,都能輕松上崗。同時,除了Mock被測類中任意對象的方法調(diào)用,TestableMock還能Mock被測類自身的私有成員方法、靜態(tài)方法、以及new操作符。值得一提的是,new操作符的Mock方法返回的既可以是一個真實對象,也可以是一個經(jīng)過動態(tài)代理包裝的Mock對象。但TestableMock并不負(fù)責(zé)生成此類Mock對象,因為在這方面,Mockito等傳統(tǒng)Mock工具已經(jīng)做得足夠好了,可以直接拿來配合使用、取長補短。

同樣是Mock工具,TestableMock卻能將Mock所需的各種準(zhǔn)備工作極大簡化,那么它相比傳統(tǒng)Mock工具是否有什么缺點呢?TestableMock并未引入重大的底層新技術(shù),在軟件設(shè)計領(lǐng)域有一條不成名的定律:任何非顛覆式的改進(jìn)都是一種trade-off,有得必有失。在TestableMock極簡的體驗背后,舍棄的其實就是不符合上述兩點假設(shè)的非典型使用場景。由于將Mock方法和測試用例分開定義,倘若Mock方法里有太多需要區(qū)分調(diào)用來源的if和switch,就會使得代碼邏輯被打散、不便于閱讀。所幸,作為一位資深踩坑員,我可以告訴大家,這類特例并不常見。反而更常見的情況是有許多測試用例需要使用相同的Mock方法,此時將Mock定義獨立出來更加有助于減少重復(fù)代碼,因此結(jié)果通常都是利大于弊的。

三 TestableMock的原理

簡單來說,TestableMock利用了運行時字節(jié)碼修改技術(shù),在單元測試啟動時掃描測試類和被測類的字節(jié)碼,完成Mock方法替換。

這一看似理所當(dāng)然的技術(shù)選型背后,濃縮了TestableMock對功能齊備和極致輕量的雙重追求。

現(xiàn)實中的Java單元測試Mock工具原理主要有三類,其典型代表列舉如下:

  • 動態(tài)代理:Mockito、EasyMock、MockRunner
  • 自定義類加載器:PowerMock
  • 運行時字節(jié)碼修改:JMockit、TestableMock

在三種機(jī)制里,動態(tài)代理只在被測類的外周做手腳,不改動被測類本身,因此最安全,但功能也最弱。這類Mock工具對被Mock的方法比較挑剔,final類型、靜態(tài)方法、私有方法全都無法覆蓋。

自定義類加載器和動態(tài)字節(jié)碼修改都會修改被測類的字節(jié)碼,前者完全接管測試類的加載過程,后者則是在類加載完成后再對字節(jié)碼做“二次改造”。從功能而言,兩者沒有太大差異,都可以實現(xiàn)對幾乎任何類型和方法的Mock。兩者的主要差異在于機(jī)制的啟用方式,為了讓自定義類加載器生效,需要針對不同的測試框架進(jìn)行有區(qū)分的特殊處理,譬如在JUnit中使用@RunWith注解。這一點體現(xiàn)在PowerMock上就表現(xiàn)為,與不同測試框架配合使用時,它的注解搭配是有明確區(qū)別的。

為了與測試框架完全解耦,TestableMock通過直接掃描測試類中是否存在@MockMethod(或者@MockConstructor)修飾的方法,來自動判斷是否要進(jìn)行相應(yīng)的初始化準(zhǔn)備工作,實現(xiàn)了只需一個注解就能完成Mock初始化、定義和置換的極致體驗。加之以可復(fù)用的方法(而非整個類型)作為粒度執(zhí)行Mock替換,整個過程對測試的代碼編寫毫無侵入。

除了以上的三種方法,是否還有別的Mock實現(xiàn)手段呢?其實TestableMock的早期版本還嘗試過一種做法:利用JSR-269規(guī)范的插件化注解處理器(Pluggable Annotation Processing)在代碼編譯期對被編譯的源碼進(jìn)行修改。這種機(jī)制也能實現(xiàn)將源碼中的方法調(diào)用換成Mock調(diào)用的目的,但它帶來了兩個棘手的問題。一是修改過的源碼會被打包進(jìn)最終生成的jar,導(dǎo)致生產(chǎn)包內(nèi)容被篡改,此問題其實可通過在打包前增加一個class文件還原的步驟解決,但比較低效且并不優(yōu)雅。另一個問題則是由于修改的是源碼,因此對每種JVM語言都要單獨實現(xiàn),通用性不佳。TestableMock在迭代中逐步舍棄了基于JSR-269的Mock方案,轉(zhuǎn)而利用這種機(jī)制實現(xiàn)了另一項功能:被測類私有成員訪問。

四 超越Mock工具

TestableMock來自阿里云云效團(tuán)隊,秉持云效讓研發(fā)工作更簡單的理念,它所承載的職責(zé)是 “讓Java沒有難測的方法”,這也是TestableMock項目名字的由來。

除了獨具一格的Mock功能,TestableMock還提供了兩項單元測試增強能力:

讓單測用例可以直接訪問被測類的私有成員

“該不該測試私有方法”這個話題一直在Java單元測試的圈子里頗有爭議。沒錯,僅集中于Java圈子,因為一些較新的編程語言,比如Python、Golang、Rust都從源頭上避免了這個爭論發(fā)生:Python的“私有方法”只是一種命名約定,Golang默認(rèn)同包內(nèi)所有方法皆可訪問,而Rust的單元測試是和被測代碼放在一起的。也就是說這些新式語言早都已經(jīng)默認(rèn),單元測試可以訪問私有方法,怎么舒服怎么來。Java代碼由于要測試private方法就得將方法可見性改為default或者public,破壞了封裝,這根導(dǎo)火索引燃了面向?qū)ο蟊J嘏膳c實用主義激進(jìn)派的意識形態(tài)之爭。可是程序員何必為難程序員,“通過公有方法間接測試私有方法”在實際操作的時候只會讓編寫測試者非常蛋疼。TestableMock為測試類準(zhǔn)備了一個@EnablePrivateAccess注解來快速實現(xiàn)可訪問性的增強,使所有在測試類中訪問相應(yīng)被測類的私有成員代碼都會在編譯期被自動改為合法的反射調(diào)用,而訪問其他類的私有方法則依然不被允許,該限制的地方限制,該放寬的地方放寬。

輔助測試沒有返回值的void類型方法

“沒返回值的方法怎么測試”這是個業(yè)界并無太大觀點分歧,卻也至今尚未出現(xiàn)簡單實用解決方案的技術(shù)課題。值得指出的是,void類型方法雖然不會直接返回計算結(jié)果,但一定會在其內(nèi)部引起某種全局狀態(tài)改變或引發(fā)某種“函數(shù)副作用”,比如輸出日志、調(diào)用外部系統(tǒng)等等。既不返回數(shù)據(jù)也不產(chǎn)生任何副作用的方法毫無價值。通過TestableMock的私有成員訪問機(jī)制和Mock驗證器功能,可以快速驗證被測類的內(nèi)部狀態(tài)變化,或是驗證測方法中產(chǎn)生副作用的調(diào)用語句是否被正確執(zhí)行且傳入了預(yù)期的參數(shù)值。至此,Java項目void類型方法難以測試的歷史或許將被終結(jié) 。

五 總結(jié)

功能比PowerMock毫不遜色,用法比Mockito更加簡潔,不挑框架,指哪換哪,一個@MockMethod注解打天下。

單元測試是保障代碼可重構(gòu)和抗腐化的一種有效手段,但在實踐的過程中,許多開發(fā)者最終被單元測試的條條框框與編寫成本擊退。實用主義單測增強工具TestableMock在提供萬能Mock注入能力的同時,將單元測試編寫的各方面成本均拉到了歷史新低點 。

讓Mock返璞歸真,讓測試告別繁瑣。項目開源地址:
https://github.com/alibaba/testable-mock

原文鏈接:https://developer.aliyun.com/article/780287?

版權(quán)聲明:本文內(nèi)容由阿里云實名注冊用戶自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,阿里云開發(fā)者社區(qū)不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。具體規(guī)則請查看《阿里云開發(fā)者社區(qū)用戶服務(wù)協(xié)議》和《阿里云開發(fā)者社區(qū)知識產(chǎn)權(quán)保護(hù)指引》。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,填寫侵權(quán)投訴表單進(jìn)行舉報,一經(jīng)查實,本社區(qū)將立刻刪除涉嫌侵權(quán)內(nèi)容。

總結(jié)

以上是生活随笔為你收集整理的史上最轻量​!阿里新型单元测试Mock工具开源了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

99视频在线免费 | 视频三区在线 | 成人av影院在线观看 | 国产精品欧美久久久久久 | 日韩精品视频免费在线观看 | a在线观看免费视频 | 91亚色视频在线观看 | 国产精品成人久久久 | 婷婷日日| 久久久久亚洲精品成人网小说 | 91麻豆看国产在线紧急地址 | 九九久久影院 | 精品一区二区在线免费观看 | 国产一区久久久 | 日韩激情视频在线 | 亚洲精品乱码久久久久久高潮 | 亚洲欧美偷拍另类 | 久久久国产毛片 | 69精品视频在线观看 | 成人免费一级片 | 婷色在线| 丁香狠狠 | 国产精品美女久久久久久久久 | 91精品久久久久久 | 国产欧美日韩视频 | 制服丝袜天堂 | 国产黄网站在线观看 | 亚洲精品高清在线 | 日韩欧美在线视频一区二区 | 欧美日本一二三 | 国产精品视频全国免费观看 | 国产中文字幕网 | 午夜在线国产 | 日韩亚洲在线 | 成人一区二区在线 | av手机版 | 国产69精品久久app免费版 | 国产综合香蕉五月婷在线 | 九九免费在线观看视频 | 日韩在线观看电影 | 97综合网| 国产一区二区视频在线播放 | 久久国产精品99久久久久久丝袜 | 成年人天堂com | 亚洲黄色一级视频 | 午夜精品久久久久久久久久久久久久 | 国产h片在线观看 | 日韩毛片久久久 | 丝袜美腿在线视频 | 久久久wwww| 亚洲成人黄色av | 99精品国产在热久久 | 国产a精品 | 色狠狠婷婷| 手机在线看永久av片免费 | 久久久国产在线视频 | 国产亚洲精品久久久久久久久久久久 | 在线视频观看成人 | 国产一级一级国产 | 亚洲欧美国产精品久久久久 | 最新不卡av | 超碰在线最新网址 | 国产精品久久久精品 | 国产xxxx性hd极品 | 日韩三级免费观看 | 精品久久久久久久久久国产 | 国产夫妻av在线 | 久久伊人八月婷婷综合激情 | 91视频久久久久 | 国产精品乱码高清在线看 | 91一区二区在线 | av在线网站免费观看 | 国产区在线视频 | 亚洲精品乱码白浆高清久久久久久 | av在线免费播放网站 | 国产一区二区三精品久久久无广告 | 天天操天天操天天操天天操天天操 | 麻豆国产精品va在线观看不卡 | 人人添人人澡人人澡人人人爽 | 欧美成人xxx| 一区二区三区免费在线播放 | 日韩一级片网址 | 久久亚洲综合色 | 久久99久久99精品免视看婷婷 | 亚洲精品1区2区3区 超碰成人网 | 一本一本久久a久久精品综合小说 | 久久久www成人免费精品 | 天天爱天天操天天爽 | 国产精品高清在线观看 | 久久社区视频 | 探花视频在线观看+在线播放 | 久热电影 | 亚洲精品久久久久中文字幕二区 | 欧美成人在线网站 | 国产成人精品一二三区 | 国产免费观看高清完整版 | 亚洲精品美女久久久 | 中文在线 | 亚洲成人在线免费 | 日本三级吹潮在线 | 国产成人精品av在线 | 久久96 | 91香蕉视频黄色 | 亚洲精品五月 | 欧美精品亚洲精品日韩精品 | 狠狠亚洲 | 亚洲国产wwwccc36天堂 | 久色免费视频 | 日本福利视频在线 | 国产三级av在线 | 成人午夜在线观看 | 国产伦精品一区二区三区免费 | 中文字幕刺激在线 | 国产精品成人自拍 | 欧美一级黄色片 | 午夜电影久久久 | 六月色婷婷| 欧美日韩不卡在线视频 | 91精品在线免费视频 | 丁香婷婷久久久综合精品国产 | 婷婷精品国产一区二区三区日韩 | 国产在线专区 | 天堂av在线网址 | 色婷婷成人网 | www.福利视频| 免费色黄 | 男女激情免费网站 | 色综合久久88色综合天天6 | 91高清免费| 中文字幕av网站 | 欧美日韩国产在线 | 国产精品视频区 | 婷婷六月色 | 国产视频一区二区三区在线 | 91视频免费国产 | 日本中文字幕在线一区 | 精品免费久久久久 | 永久免费精品视频 | 1024手机看片国产 | 日韩免费网站 | 日韩电影在线观看中文字幕 | 久久精品国产亚洲精品 | 日韩视频免费播放 | 最近中文字幕完整视频高清1 | 国产专区视频在线 | 丁香网五月天 | 西西大胆免费视频 | 最新精品视频在线 | 欧美a级免费视频 | 午夜国产福利在线观看 | 国产一区二区三区在线免费观看 | 久久久久国产a免费观看rela | 欧美激情在线网站 | 欧洲激情在线 | 欧美精品小视频 | 一本一本久久a久久精品综合 | 天堂av影院| 久久精品综合一区 | 国内精品久久久久影院一蜜桃 | 久久久久久毛片精品免费不卡 | 国产99久久| 一区二区三区国产欧美 | 在线天堂中文在线资源网 | 色99之美女主播在线视频 | 国产女v资源在线观看 | www.亚洲视频| 国产精品久久综合 | 91视频中文字幕 | 97超级碰 | 999久久久久久久久久久 | 开心色插 | 亚洲精品视频在线免费播放 | 国产一区视频免费在线观看 | 天天色中文 | 99久久久国产精品免费99 | 日韩在线观看网站 | www·22com天天操 | 婷婷激情综合五月天 | 欧美日韩大片在线观看 | 中文字幕国产精品 | 国产一级片播放 | 日韩免费观看视频 | 四虎国产精品免费观看视频优播 | 色欧美综合| 91香蕉国产 | 亚洲欧美日韩一二三区 | 激情婷婷网 | 国产尤物视频在线 | 狠狠色伊人亚洲综合网站野外 | 久久成人精品电影 | 99热这里只有精品1 av中文字幕日韩 | 狠狠的操狠狠的干 | 精品视频免费观看 | 成人黄色片免费看 | 一区精品在线 | 91mv.cool在线观看| 亚洲伊人网在线观看 | 久久免费视频网 | 精品不卡视频 | 国产成人精品一区二三区 | 免费看污片 | 狠狠操综合 | 亚洲最大成人网4388xx | 日日夜夜干 | 亚洲精品中文在线资源 | 成片人卡1卡2卡3手机免费看 | 成人亚洲精品久久久久 | 高清av免费一区中文字幕 | 九月婷婷人人澡人人添人人爽 | 日韩免费在线观看视频 | 欧美精品乱码久久久久 | 精品国产一区二区三区不卡 | 亚洲三级黄色 | 美国av大片 | 国产精品第一视频 | 日韩av在线不卡 | 国产成人精品久久久久 | 亚洲国产日韩精品 | 精品999在线 | 国产精品自在欧美一区 | 亚洲精品一区二区18漫画 | 天天色综合三 | 欧美一二区在线 | 国产伦精品一区二区三区四区视频 | 操操碰| 国产精品欧美精品 | 日本xxxx.com | 久久国产精品二国产精品中国洋人 | 欧美日韩亚洲第一页 | 成人网页在线免费观看 | 视频一区在线播放 | 美女视频免费一区二区 | 精品国产资源 | 天天草综合网 | 久久在现 | 国产亚洲精品久久网站 | 91精品视频一区二区三区 | 欧美日本不卡视频 | 日韩中文字幕免费电影 | 国产一区二区视频在线 | 成人av电影在线播放 | 国产精品久久99综合免费观看尤物 | 国产精品综合久久久 | 亚洲在线综合 | 成人国产一区 | 久久久久成 | 99久久久久久久久久 | 9797在线看片亚洲精品 | 黄色软件视频大全免费下载 | 欧美嫩草影院 | 精品视频一区在线观看 | 日韩一区二区三区免费视频 | 综合铜03 | 亚洲h在线播放在线观看h | www好男人 | 九草视频在线观看 | 天天色欧美 | 蜜桃av人人夜夜澡人人爽 | 欧美日韩精品久久久 | 超碰在线97国产 | 久草在线精品观看 | 国产成人61精品免费看片 | 亚洲成人精品在线观看 | 国产精品自产拍在线观看蜜 | 日韩理论视频 | 黄色三级免费看 | a级片网站 | 欧美91精品| 亚洲视屏在线播放 | 青青河边草观看完整版高清 | 精品国产视频一区 | 午夜美女影院 | 在线免费观看羞羞视频 | 日韩av成人在线观看 | 免费在线国产 | 久久精品九色 | 久久人人爽爽 | 在线成人高清电影 | 国产精品va最新国产精品视频 | 韩国视频一区二区三区 | 激情网在线观看 | 黄污网| 久久久精品欧美 | 国产精品av免费 | 国产在线综合视频 | av黄色一级片 | 国产高清av在线播放 | 九色91在线视频 | 欧美激情第八页 | 91在线91拍拍在线91 | 国产v亚洲v| av成人免费在线 | www.亚洲视频| 91天堂影院 | 免费观看一区二区三区视频 | 免费亚洲一区二区 | 国产色婷婷在线 | 91麻豆免费看 | 91亚色视频在线观看 | 久久新| 人人干在线 | 一区二区视频欧美 | 国产一级做a爱片久久毛片a | 在线免费观看的av | 日韩欧美在线一区二区 | 久久久www成人免费精品张筱雨 | 超碰在线人人爱 | 欧美一区日韩一区 | 最新av电影网站 | 久久福利影视 | 久久久久国产a免费观看rela | 久久激情网站 | 精品亚洲视频在线 | 亚洲精品视频一二三 | 日韩精品一区二区在线观看 | 91福利视频网站 | 色婷婷av一区二 | 精品国产成人 | 在线免费观看成人 | 成年人电影免费在线观看 | 国产va在线观看免费 | 亚洲电影自拍 | 色婷婷综合久久久中文字幕 | 97夜夜澡人人双人人人喊 | 开心色激情网 | 欧美日韩中文字幕在线视频 | 99综合电影在线视频 | 久久久香蕉视频 | 国产中文a | 国产精品一区二区久久久久 | 在线观看精品国产 | 日韩三级av | 成人精品一区二区三区电影免费 | 成人蜜桃视频 | 欧美性视频网站 | 天天色天天搞 | 精品视频亚洲 | 日韩av一区在线观看 | 日韩激情片在线观看 | 91麻豆精品国产自产在线游戏 | 91精品久久久久久久久久久久久 | 亚洲天堂网在线观看视频 | 69精品久久| 中文字幕精品www乱入免费视频 | 久久久久黄 | 91视频这里只有精品 | 免费中午字幕无吗 | 国产精品不卡在线播放 | 字幕网资源站中文字幕 | 97精品电影院 | 特级黄色电影 | 国产精品久久久电影 | 国产视频1区2区3区 久久夜视频 | 一区二区三区四区免费视频 | 中文字幕网站视频在线 | 亚洲精品乱码久久久久久蜜桃动漫 | 99热最新| 激情五月五月婷婷 | av一区在线播放 | 日韩专区中文字幕 | 国产亚州精品视频 | 九九热免费观看 | 亚洲桃花综合 | 久久综合久久久久88 | 国产精品视频免费在线观看 | 国产黄色av网站 | 狂野欧美激情性xxxx | 欧美日韩国产精品一区二区三区 | 99视频这里有精品 | 99热最新精品 | 国产精品高清免费在线观看 | 99热官网| 亚洲精品小视频 | 天天爱天天射 | 日本在线中文 | 欧美激情在线看 | 中文字幕在线字幕中文 | 婷婷亚洲激情 | 日韩久久激情 | 青青草国产精品 | 亚洲人人爱 | 亚洲一区二区三区毛片 | 中文字幕在线网址 | 97香蕉久久超级碰碰高清版 | 午夜av电影| 干 操 插 | 日韩高清av | 亚洲 欧美 国产 va在线影院 | 欧美一区在线观看视频 | 久久久久久福利 | 国产亚洲高清视频 | 久久久久在线 | 日日成人网 | 日韩欧美一区二区三区在线 | 婷婷99 | 免费中午字幕无吗 | 99在线精品视频在线观看 | 超碰97在线看 | 国内精品久久久久久久久久 | 国产黄色免费观看 | 国产女教师精品久久av | 日韩理论片在线观看 | 色婷婷免费视频 | 在线看成人 | 日韩激情视频在线 | 精品福利在线 | 激情五月六月婷婷 | 中文字幕你懂的 | 日韩在线视 | 国产a级精品 | 国产精品成人a免费观看 | 亚洲国产手机在线 | 激情综合婷婷 | 在线中文字幕观看 | av电影在线播放 | 91大神视频网站 | 96久久欧美麻豆网站 | 欧美日韩一区二区三区免费视频 | 黄色精品久久久 | 天天天插| 四虎永久免费 | 日韩免费观看av | 国产福利91精品一区二区三区 | 久久久国产一区二区三区 | 91人网站 | wwxxx日本| 91精品国自产在线观看欧美 | 日本黄色a级大片 | 精品国产大片 | 欧美美女激情18p | 伊人欧美| 免费精品视频在线观看 | 欧美视屏一区二区 | 欧美一级激情 | 激情五月婷婷综合 | 亚洲国产日韩一区 | 精品久久网 | 色七七亚洲影院 | 最近中文字幕免费观看 | 久久综合中文字幕 | 久久久久久久久久国产精品 | 成人免费视频网站在线观看 | 日韩精品在线视频 | 日韩av女优视频 | 国产一级片直播 | 日韩精品一区在线播放 | 天天综合成人网 | www.com在线观看 | 可以免费观看的av片 | 69xx视频 | 欧美一二三区在线观看 | 欧美综合干 | 久久99偷拍视频 | 92av视频| 在线免费av网站 | 福利视频网站 | 国产视频在线免费 | 国产高清第一页 | 亚洲精品欧美视频 | 激情在线网址 | 91亚州 | 五月天色中色 | 日韩精品视频免费在线观看 | 四虎成人网 | 日日夜夜免费精品视频 | 99在线热播精品免费 | 天天干天天干天天干 | 精品国产免费观看 | 欧美成人tv| 免费色av| 成人在线免费看视频 | 天天操天天射天天爽 | 色噜噜狠狠狠狠色综合久不 | 91久久精品日日躁夜夜躁国产 | 国产一区二区不卡视频 | 成人资源站 | 精品欧美小视频在线观看 | www.少妇 | 国产黄色片久久 | 看片的网址 | 久久久精品在线观看 | 狠狠色丁香久久综合网 | 久久国产美女视频 | 69精品| 国产午夜三级一二三区 | 综合网婷婷 | 97在线精品 | va视频在线观看 | 久久午夜国产精品 | 色亚洲网 | 亚洲综合丁香 | 欧美小视频在线观看 | 色av色av色av| 国产成人一级电影 | 国产精品久久久久婷婷 | 国产二区精品 | 丁香六月色 | 高潮久久久久久 | 久久精品视频在线看 | 欧美色图亚洲图片 | 国产精品免费视频一区二区 | 九九综合九九 | 日韩网站中文字幕 | 在线视频1卡二卡三卡 | 国产午夜精品视频 | 国产玖玖在线 | 深爱激情五月综合 | 日本在线观看一区 | 久久久久亚洲精品成人网小说 | 亚洲成人高清在线 | 天天综合成人网 | 国产精品久久99综合免费观看尤物 | 欧美激情一区不卡 | 亚洲国产精品资源 | 日日日天天天 | 亚洲永久在线 | 久久免费电影网 | 99在线精品免费视频九九视 | 在线国产一区二区 | 人人爽人人爽人人片av免 | 日韩av进入 | 五月激情五月激情 | 激情深爱 | 狠狠狠色丁香婷婷综合久久88 | 天天色天天综合 | 二区三区在线 | 美女久久久 | 在线观看视频你懂得 | 日韩激情第一页 | 一级黄色片在线播放 | 一本一本久久a久久精品牛牛影视 | 国产乱老熟视频网88av | a电影在线观看 | 国产免费又粗又猛又爽 | 国产专区欧美专区 | 在线观看日韩 | 在线观看av免费观看 | 一本之道乱码区 | 国产精品久久久久久久久久久久冷 | 精品国自产在线观看 | 成人黄在线 | 99热这里只有精品国产首页 | 永久免费在线 | 99视频偷窥在线精品国自产拍 | 中文字幕av有码 | 天堂在线视频中文网 | 欧美精品久久久久久久久久 | 久久一区国产 | 黄色网中文字幕 | 综合精品久久 | 国产91电影在线观看 | 国产成人精品一区二区三区 | 激情久久五月天 | 最新一区二区三区 | 日本久久成人中文字幕电影 | 69av视频在线 | 成人免费在线视频 | 在线观看国产高清视频 | 成av人电影 | a久久久久久 | 一级黄色片在线观看 | 久久久久久国产精品999 | 久久伊人八月婷婷综合激情 | 天天摸日日操 | 一区二区视频在线观看免费 | 香蕉视频在线网站 | 免费看片成人 | 天天操人人要 | 日日麻批40分钟视频免费观看 | 欧美做受高潮1 | 日韩av一区二区在线 | 波多野结衣精品在线 | 亚洲黄色区 | 色干综合 | 99久久99热这里只有精品 | 美女av在线免费 | 婷婷丁香六月 | 中文字幕第一页在线vr | 丁香婷婷激情网 | 午夜精品福利一区二区 | 91最新在线| 欧美性一级观看 | 97视频精品| 色视频在线看 | 久久男人影院 | 久久草在线精品 | 中文字幕在线观看三区 | 中文字幕在线观看视频网站 | 91免费观看视频网站 | 91av片| 9免费视频| 手机在线黄色网址 | 欧美日韩免费在线观看视频 | 最近高清中文在线字幕在线观看 | 精品国产99 | 欧美天天射 | 免费在线观看av网址 | 日日躁你夜夜躁你av蜜 | 成人三级视频 | av国产网站| 四虎影视4hu4虎成人 | 高清国产一区 | 日韩在线免费视频 | 亚洲精品在线免费播放 | 久久人人爽av | 天天躁天天狠天天透 | 欧美日韩视频在线观看免费 | 成人试看120秒 | 亚洲精品国产视频 | 欧美色噜噜 | 亚洲精品伦理在线 | 国产精品网站一区二区三区 | 久久亚洲欧美日韩精品专区 | 成人欧美一区二区三区黑人麻豆 | 亚洲国产精品第一区二区 | 天天操人人要 | 国产精品99久久免费观看 | 九九九热精品免费视频观看 | 91视频麻豆视频 | 91桃色免费观看 | 97网站| 97电院网手机版 | 国产精品久久久久999 | 亚洲视频大全 | 天堂在线成人 | 久久久99国产精品免费 | 欧美日韩国产一二 | av丁香花 | 国产男女无遮挡猛进猛出在线观看 | 亚洲欧洲久久久 | 欧美日韩高清国产 | 在线免费观看麻豆视频 | 中文字幕二区三区 | 四虎影视www | 2020天天干夜夜爽 | 一区二区三区免费播放 | 久久99久久99精品免视看婷婷 | 黄色性av| 香蕉成人在线视频 | 国产裸体永久免费视频网站 | 黄色软件大全网站 | 久久久久久久久久久久99 | 激情av网址 | 丝袜少妇在线 | 日韩综合第一页 | 国内精品久久久久影院优 | 蜜桃视频色 | www.av免费 | 国产精品igao视频网网址 | 久久久wwww | 色综合久久88色综合天天 | 国产精品99久久久精品免费观看 | 97色在线观看免费视频 | 国产在线一区二区三区播放 | 一区二区不卡高清 | 国产在线观看污片 | 色99在线 | 国产xxxx性hd极品 | 亚洲天堂香蕉 | 久久久久国产一区二区三区四区 | 日韩精品免费在线观看视频 | 制服丝袜欧美 | 91少妇精拍在线播放 | 综合天堂av久久久久久久 | 91成人免费看| 日本一区二区三区免费观看 | 国产成人免费在线观看 | 天天色天天射天天综合网 | 天天插天天射 | 一级黄色毛片 | 国产成人高清av | 国产涩涩在线观看 | 97色婷婷人人爽人人 | 国产一区二区三区网站 | 国内免费久久久久久久久久久 | 亚洲成人软件 | 香蕉影视app | 日韩精品一区二区三区免费视频观看 | 91传媒免费在线观看 | 免费国产一区二区视频 | 99视频在线 | 在线播放国产精品 | 国产视频手机在线 | 伊人欧美 | 久久一区二区三区超碰国产精品 | 成人免费xxxxxx视频 | 欧美一级视频在线观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 中文字幕免费 | 99久久精品国产系列 | 日本在线观看中文字幕无线观看 | 999久久久免费精品国产 | 在线影院中文字幕 | 黄色视屏免费在线观看 | 成人电影毛片 | 午夜成人免费电影 | 久久久久免费网 | 美女福利视频在线 | 久久久精品国产免费观看同学 | 国产四虎在线 | 综合在线色 | 色吊丝在线永久观看最新版本 | 色婷婷成人 | 在线观看日韩中文字幕 | 天天操夜夜操夜夜操 | 99热官网| 久久久不卡影院 | 国产麻豆成人传媒免费观看 | 国内精品久久久久影院一蜜桃 | 国产美女在线观看 | 免费a级观看 | 91在线影院| 亚洲麻豆精品 | 91久久国产精品 | 久久综合婷婷国产二区高清 | 91桃色视频 | 久久亚洲视频 | 日本久久综合视频 | 欧美福利网站 | 在线视频婷婷 | 97在线免费观看 | 激情网在线视频 | 日韩欧美一区二区在线播放 | 99tvdz@gmail.com| 日韩欧美一区二区在线观看 | 国产午夜精品视频 | 97免费在线观看视频 | 亚洲一区日韩 | 91视频观看免费 | 午夜婷婷在线播放 | 黄色三几片 | 色综合久久99 | 国产亚洲视频在线 | 麻豆免费精品视频 | 国产亚洲精品xxoo | 中文字幕在线日 | 香蕉手机在线 | 97综合视频 | 91亚洲永久精品 | 国产一区二区在线播放视频 | 2019中文字幕网站 | 97超碰福利久久精品 | 97超碰福利久久精品 | 欧美日韩国内在线 | 四虎成人精品永久免费av九九 | 激情综合电影网 | 99免费在线播放99久久免费 | 欧美日韩不卡在线观看 | 国产精品电影一区 | 激情大尺度视频 | 91av在线看 | 99视频在线观看免费 | 色狠狠婷婷 | 国产精品一区专区欧美日韩 | 亚洲黑丝少妇 | 综合铜03| 国产一性一爱一乱一交 | 日韩成人黄色 | 久久精品aaa | 日韩午夜大片 | 一级α片| www·22com天天操 | www欧美日韩| 一区二区三区中文字幕在线观看 | 免费十分钟 | 久久国语露脸国产精品电影 | 最近中文字幕高清字幕免费mv | 视频三区| 国产99精品在线观看 | 国产精品久久久久久久久久久久午夜片 | 亚洲综合视频在线 | www.福利 | 色就干| 久久久久久久av麻豆果冻 | 久久国产精品偷 | 久久天天躁夜夜躁狠狠85麻豆 | 亚洲另类视频在线观看 | 激情av网址 | 国产一区在线免费观看 | 国产一级黄色片免费看 | 免费看片黄色 | 在线视频欧美日韩 | 国产91免费在线观看 | 亚洲精品国产第一综合99久久 | 在线亚洲观看 | 欧美aaa一级 | 天天碰天天操 | 成人三级黄色 | 国产成人一级电影 | 久久久综合九色合综国产精品 | 亚洲一区二区三区毛片 | 日韩av在线高清 | 一区二区视频电影在线观看 | 日韩av电影中文字幕在线观看 | 免费观看高清 | 四虎成人av| 在线不卡a | 精品国产一区二区三区久久久久久 | 丁香花在线观看视频在线 | 欧美日韩精品在线免费观看 | 日韩激情视频在线观看 | 午夜久久福利 | 久久99精品久久只有精品 | 久久精品看 | 久久久久北条麻妃免费看 | 日韩视频在线播放 | 亚洲精品乱码久久久久久写真 | 成人久久精品视频 | 国产va在线 | www.69xx| 国产精品系列在线观看 | 国产第页 | 91精品一区二区三区久久久久久 | www.伊人色.com | 黄色福利视频网站 | 久久综合中文字幕 | 日韩欧美有码在线 | 中文字幕一区二区三区四区视频 | 久久综合久久综合这里只有精品 | 亚洲a免费 | 亚洲,播放 | 免费看的黄色的网站 | 色婷婷在线视频 | 亚洲专区欧美专区 | 久久专区| 欧美动漫一区二区三区 | 欧美另类z0zx | 久久免费视频国产 | 在线一区av| 亚洲影视资源 | 国产在线精品播放 | 亚洲精品午夜久久久久久久 | 中文字幕在线字幕中文 | www.色五月.com | 欧美日韩中字 | 成人午夜免费福利 | 在线免费观看国产黄色 | 视频在线观看亚洲 | 激情综合电影网 | 欧美一级久久 | 亚洲综合精品视频 | zzijzzij亚洲日本少妇熟睡 | 亚洲黄色免费电影 | 免费毛片aaaaaa | 成人h在线播放 | 亚洲最新在线视频 | 久久久久免费精品国产小说色大师 | 午夜视频免费播放 | 伊人va | 中文字幕免费高清 | 成人av免费在线播放 | 三级黄色网址 | 黄色国产在线观看 | 久久视频在线观看中文字幕 | 国产中文字幕国产 | 天天操天天射天天操 | 91大神电影 | 亚洲va天堂va欧美ⅴa在线 | 久久久久久久综合色一本 | 午夜久久福利影院 | 午夜少妇av | 欧美经典久久 | 日韩高清一区 | 成人综合婷婷国产精品久久免费 | 欧洲精品码一区二区三区免费看 | 久久高清免费视频 | 成年人毛片在线观看 | 国产成人三级在线播放 | 国内精品久久久久久久久 | 免费人成网ww44kk44 | 操操操日日| 亚洲精品短视频 | 欧美综合色 | 91精品一区国产高清在线gif | 91av视频免费观看 | 中文字幕在线色 | 黄色影院在线播放 | 亚洲精品中文字幕在线观看 | 视色网站 | 欧美精品免费在线观看 | www.狠狠色| 高清av免费看 | 97视频在线免费播放 | 国产专区一| 永久免费精品视频网站 | 综合国产在线观看 | 免费的黄色av | 中文字幕资源在线观看 | 青春草国产视频 | 日韩婷婷| 欧美日韩精品在线观看视频 | 精品久久久久久久久久久久久久久久 | 免费av 在线 | 中文字幕 欧美性 | 亚洲黄色激情小说 | 久久久精品二区 | 久久蜜臀一区二区三区av | 国产v欧美| 在线电影 一区 | 中文字幕在线影院 | 激情视频二区 | 国产视频美女 | 久草爱| 日韩在线观看中文字幕 | 深爱激情综合 | 日韩精品不卡在线观看 | 在线观看的黄色 | 99精品视频免费看 | 不卡的av | 玖玖在线看 | 国产日韩精品在线 | 日本xxxx.com| 久久视频网 | 久久6精品| 99色在线视频 | 视频 天天草 | 国产日产av | 成人一区二区在线观看 | 天堂va欧美va亚洲va老司机 | 丁香高清视频在线看看 | 丝袜美腿在线 | 成人免费一区二区三区在线观看 | 五月开心婷婷网 | 精品国产久 | 日韩在线免费不卡 | 亚洲视频免费在线看 | 久久精品这里都是精品 | 亚洲综合在线视频 | 91热| 日韩三级视频 | 中文字幕a∨在线乱码免费看 | 国产精品女同一区二区三区久久夜 | 成 人 黄 色 免费播放 | 日韩av免费观看网站 | 亚洲黄色一级大片 | 人人干天天射 | 日韩伦理片一区二区三区 | 伊人久久影视 | 激情视频一区二区三区 | 99re久久资源最新地址 | 麻豆高清免费国产一区 | 久久久久久久久久影视 | 亚洲韩国一区二区三区 | 日韩中文字幕a | 中文字幕精品三级久久久 | 国产精品久久三 | 天天综合久久综合 | 天堂网av在线 | 免费成人在线观看视频 | 国产一区二区三区高清播放 | 韩国av免费看 | 久久久久久久久久久久电影 | 久久久免费网站 | 麻豆va一区二区三区久久浪 | 欧美精品久久人人躁人人爽 | 日韩va在线观看 | 日韩高清成人 | 天天摸天天舔天天操 | a在线免费| 中文字幕av在线电影 | 国产综合在线视频 | 在线视频 亚洲 | 亚洲精品高清在线观看 | 91漂亮少妇露脸在线播放 | 91免费版在线观看 | 色天天天| 色诱亚洲精品久久久久久 | 狠狠色丁香久久婷婷综合五月 | 操操操综合 | 国产精品精品国产婷婷这里av | 欧美视频网址 | 精品国产a | www操操操| 婷婷色综| 亚洲欧洲精品一区 | 911精品美国片911久久久 | 超碰97国产 | 久久精品高清 | 天天干天天操天天 | 96av在线| 在线a视频免费观看 | 日韩理论片在线 | 成人免费在线播放 | 国产精品ⅴa有声小说 | 在线有码中文 | 国产午夜精品一区二区三区欧美 | 96视频在线| 999国内精品永久免费视频 | 一级电影免费在线观看 | 99久久久国产精品免费99 | 日韩精品五月天 | 国产成人在线播放 | 亚洲精品乱码久久久久久9色 | 国产免费av一区二区三区 | 丁香激情综合国产 | www.狠狠色 | 激情综合网五月婷婷 | 国产精品久久久久四虎 |