精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Jython開發(fā)的JUnit測試包

開發(fā) 后端
本文講述如何使用Jython開發(fā)JUnit測試包。開發(fā)人員有多種理由決定自動化單元測試。許多人甚至進(jìn)一步發(fā)揮它,自動化這些測試的定位和執(zhí)行。

JUnit 測試框架被越來越多的開發(fā)小組所共同使用。歸功于各種各樣的測試裝具模塊,現(xiàn)在可以測試構(gòu)成任何 Java 應(yīng)用程序的幾乎每一個組件。事實上,幾乎整個二級市場似乎都是用圍繞 Junit 建立的。包括 Cactus、jfcUnit、XMLUnit、DbUnit 和 HttpUnit 這樣的裝具模塊都可以免費供開發(fā)人員用于測試應(yīng)用程序。隨著系統(tǒng)的復(fù)雜程度的增加,并且有這么多工具可供使用,沒有什么理由不依靠單元測試。

不過,開發(fā)人員不僅僅是程序員。我們與用戶交互以修復(fù) bug 并確定需求。我們參加會議并進(jìn)行電話推銷。我們完成一些(有時全部)質(zhì)量保證功能。既然有這么多責(zé)任,希望盡可能自動化就是自然而然的了。因為好的團(tuán)隊(除了其他事情外)會進(jìn)行大量測試,希望自動化不同的開發(fā)過程的人常常會對這一領(lǐng)域進(jìn)行詳細(xì)研究。

自動化單元測試

有許多種自動化所有項目測試用例的定位和執(zhí)行的方法。一種解決方案是聯(lián)合使用 Ant 的 junit 任務(wù)與嵌入的 fileset 任務(wù)。這樣就可以包括和排除特定目錄中的文件(基于文件名樣式)。另一種選擇是使用 Eclipse 的一個功能,它可以指定所有測試所在的和執(zhí)行的目錄。前一種選擇提供了對運行的測試進(jìn)行過濾的靈活性(并且由于它是一個純粹的無頭(headless)Java 應(yīng)用程序,可以運行在幾乎所有地方),后一種選擇可以調(diào)試“動態(tài)”包。是否可以結(jié)合這兩種方式的強大和靈活性?

有了 Python 編程語言的 Java 平臺實現(xiàn)——Jython,回答是響亮的“可以!”(如果不熟悉 Jython開發(fā),應(yīng)當(dāng)在繼續(xù)本文之前補充這方面知識,更多信息請參閱后面的 參考資料)。利用 Jython 的強大和優(yōu)雅,可以維護(hù)一個定位文件系統(tǒng)、搜索匹配某種樣式的類和動態(tài)編譯 JUnit TestSuite 類的腳本。這個 TestSuite 類像所有其他靜態(tài)定義的類一樣,可以用喜愛的調(diào)試程序容易地調(diào)試。(在本文中使用的例子假定使用的是 Eclipse IDE,不過,我在這里描述的技術(shù)不用做很多修改就可以用于大多數(shù)其他 IDE。)

在進(jìn)行任何設(shè)計決定時,必須對所做的選擇和決定的影響進(jìn)行權(quán)衡。在這里,為了得到調(diào)試動態(tài)生成的測試包的能力,必須增加額外的復(fù)雜性。不過,這種復(fù)雜性被 Jython 自身所減輕了:Jython 經(jīng)過很好測試并得到很好的支持,并且是開放源代碼的。而且,Python 越來越成為面向?qū)ο蟮摹⑵脚_獨立的編程的事實上的標(biāo)準(zhǔn)。出于這兩種原因,采用 Jython開發(fā) 的風(fēng)險很少,特別是它提供了這樣的好處:在創(chuàng)建和調(diào)試動態(tài)生成的 JUnit TestSuite 類方面具有無可匹敵的靈活性。

如果是否采用 Jython 是主要的考慮,那么即使不使用它也可以在解決原來的問題方面有所進(jìn)展。不使用 Jython 的話,可以用一個 Java Property 文件存儲一組類、目錄和包,以在包中加入或者排除測試。不過,如果選擇使用 Jython,就可以利用整個 Python 語言和運行時來解決選擇執(zhí)行哪些測試的問題。Python 腳本比 Java Property 文件靈活得多,它只受限于您的想像力。

利用 Jython 與 Java 平臺的無縫集成可以創(chuàng)建靜態(tài)定義的、然而是動態(tài)構(gòu)建的 TestSuite 類。有大量關(guān)于 JUnit 的教程,不過還是看下面這兩行代碼作為復(fù)習(xí)。清單 1 是靜態(tài)構(gòu)建 TestSuite 類的一個例子(這個例子取自 JUnit: A Cook's Tour,有關(guān)它和其他 JUnit 資源的鏈接請參閱 參考資料):

清單 1.靜態(tài)定義 TestSuite

  1. public static Test suite() {  
  2.     return new TestSuite( MoneyTest.class );  

清單 1 表明 TestSuite 是由 Test 類的類實例組成的。這個裝具模塊完全利用了這一點。為了分析這個工具的代碼,應(yīng)從 參考資料中下載本文的示例 JAR 文件。這個文檔包含兩個文件:DynamicTestSuite.java 和 getalltests.py,前者是一個用 Phthon 腳本動態(tài)生成 TestSuite 的 JUnit 測試裝具模塊,后者是一個搜索匹配特定樣式的文件的 Python 腳本。DynamicTestSuite.java 使用 getalltests.py 構(gòu)建 TestSuite 。可以修改 getalltests.py 以更好地適合自己的項目的需要。

了解測試裝具模塊

代碼是如何工作的?首先,指派 getalltests.py 獲取一組要執(zhí)行的 Test 類。然后,使用 Jython API 將這個列表從 Python 運行時環(huán)境中提取出來。然后使用 Java Reflection API 構(gòu)建在表示 Test 類名的列表中的 String 對象的類實例。最后,用 JUnit API 將 Test 添加到 TestSuite 中。這四個庫的相互配合可以實現(xiàn)您的目標(biāo):動態(tài)構(gòu)建的 TestSuite 可以像靜態(tài)定義的那樣運行。

看一下清單 2 中的 JUnit suite 清單。它是一個公開 public static TestSuite suite() 方法簽名的 TestCase 。由 JUnit 框架調(diào)用的 suite() 方法調(diào)用 getTestSuite() , getTestSuite() 又調(diào)用 getClassNamesViaJython() 以獲取一組 String 對象,其中每一個對象表示一個作為包的一部分的 TestCase 類。

清單 2. 動態(tài)定義 TestSuite

  1. /**  
  2.  * @return TestSuite A test suite containing all our tests (as found by Python script)  
  3.  */ 
  4. private TestSuite getTestSuite() {  
  5.     TestSuite suite = new TestSuite();  
  6.     // get Iterator to class names we're going to add to our Suite  
  7.     Iterator testClassNames = getClassNamesViaJython().iterator();  
  8.     while( testClassNames.hasNext() ) {  
  9.         String classname = testClassNames.next().toString();  
  10.         try {  
  11.             // construct a Class object given the test case class name  
  12.             Class testClass = Class.forName( classname );  
  13.             // add to our suite  
  14.             suite.addTestSuite( testClass );  
  15.             System.out.println( "Added: " + classname );  
  16.         }  
  17.         catch( ClassNotFoundException e ) {  
  18.             StringBuffer warning = new StringBuffer();  
  19.             warning.append( "Warning: Class '" ).append( classname ).append( "' not found." );  
  20.             System.out.println( warning.toString() );  
  21.         }  
  22.     }  
  23.     return suite;  

在開始時,要保證設(shè)置了正確的系統(tǒng)屬性。在內(nèi)部,Jython 將使用 python.home 屬性來定位它所需要的文件。最終會調(diào)用 getClassNamesViaJython() 方法,在這里面會有一些奇妙的事情發(fā)生,如在清單 3 中將會看到的。

清單 3. 從 Python 運行時提取 Java 對象

  1. /**  
  2.  * Get list of tests we're going to add to our suite  
  3.  * @return List A List of String objects, each representing class name of a TestCase  
  4.  */  
  5. private List getClassNamesViaJython() {  
  6.     // run python script  
  7.     interpreter.execfile( getPathToScript() );  
  8.     // extract out Python object named PYTHON_OBJECT_NAME  
  9.     PyObject allTestsAsPythonObject = interpreter.get( PYTHON_OBJECT_NAME );  
  10.     // convert the Python object to a String[]  
  11.     String[] allTests = (String[]) allTestsAsPythonObject.__tojava__( String[].class );  
  12.     // add all elements of array to a List  
  13.     List testList = new ArrayList();  
  14.     testList.addAll( Arrays.asList( allTests ) );  
  15.     return testList;  
  16. }  
  17.                   

首先,對 Python 文件進(jìn)行判斷。然后,從 Python 運行時提取出一個 PyObject 。這就是得到的對象,它包含將構(gòu)成測試包的所有測試用例的類名(記住 -- PyObject 是 Python 對象的 Java 運行時對應(yīng)物)。然后創(chuàng)建具體的 List 并用 PyObject 填充它,使用 __tojava__ 指示 PyObject 將其內(nèi)容轉(zhuǎn)換為一個 Java String 數(shù)組。最后,將控制返回 getTestSuite() ,在這里裝載 Jython 標(biāo)識的測試用例,并將它們添加到組合包(composite)中。

在Jython開發(fā)環(huán)境中安裝測試裝具模塊

現(xiàn)在對于測試裝具模塊如何工作已經(jīng)有了很好的認(rèn)識,可能迫不及待要自己試試它了。您將需要完成以下步驟以配置 Eclipse 來運行這個裝具模塊。(如果使用不同的 IDE,應(yīng)當(dāng)可以容易地針對您的環(huán)境修改這些步驟。)

安裝 Jython 2.1,如果還沒安裝的話。(鏈接請見 參考資料)。

拷貝 getalltests.py 到主目錄。

編輯 getalltests.py 第 25 行以指定到源文件的根路徑,會搜索在這個位置下的所有目錄中與 org 包中 *Text.java 匹配的文件名。

如果有必要,修改第 54 行以改變根包名(例如,改為 com)。

將 DynamicTestSuite.java 拷貝到源樹中。

將以下 JAR 添加到 Eclipse 項目中:

junit.jar (JUnit 框架二進(jìn)制文件,下載信息請參閱 JUnit 的 Web 網(wǎng)站)。

jython.jar(Jython 二進(jìn)制文件,位于 Jython 安裝目錄)。

將 DynamicTestSuite 類裝載到 Eclipse Java 源文件編輯器中。執(zhí)行以下步驟之一:

在 Package Explorer 視圖中選擇 DynamicTestSuite ,或者

按 Ctrl+Shift+T并在 Choose Type 輸入字段鍵入 DynamicTestSuite 。

從文件菜單欄選擇 Run,然后選擇 Debug...。

選擇 JUnit配置。

單擊 New按鈕。將會創(chuàng)建一個新的 JUnit 目標(biāo), DynamicTestSuite 應(yīng)當(dāng)預(yù)填入 Test Class 字段。

選擇 Arguments選項卡。

在 VM 參數(shù)文本框中鍵入 -Dpython.home=<path where you installed Jython> 。

單擊 Debug按鈕。

變!現(xiàn)在就有了一個具體的 JUnit TestCase 類,可以像靜態(tài)定義的包那樣處理它。設(shè)置邊界并進(jìn)行調(diào)試!不需要修改 Test 類,裝具模塊將構(gòu)建一個包,就像您顯式將每一個 Class 對象編寫到包中一樣。如要執(zhí)行測試,可以通過喜愛的調(diào)試器、編譯工具(如 Ant 或 CruiseControl),或者一個 JUnit 內(nèi)含的 test runner 調(diào)用這個裝具模塊。

擴(kuò)展這個裝具模塊

我相信您注意到了除非在運行前修改源代碼,否則這個裝具模塊只能用于一個項目。可以容易地擴(kuò)展這個裝具模塊讓它支持多個項目。一種簡單的方式是修改 getPathToScript() 以使用指定特定于項目的屬性的系統(tǒng)屬性。

【編輯推薦】

  1. 創(chuàng)建Jython類的過程探討
  2. 輕松創(chuàng)建Jython全局函數(shù)
  3. 直接在源文件中編寫Jython代碼
  4. Jython入門指導(dǎo):語言特性簡介
  5. Jython的字符串操作和函數(shù)
責(zé)任編輯:yangsai 來源: IBMDW
相關(guān)推薦

2009-07-16 13:09:46

Jython安裝

2011-03-30 16:54:13

JUnit

2009-06-19 16:26:51

JUnit測試骨架

2009-07-14 15:20:25

Jython腳本Jython解釋器

2009-07-10 17:33:39

jython語言什么是JythonJython

2013-01-07 13:54:17

Android開發(fā)JUnit單元測試

2011-11-18 15:18:41

Junit單元測試Java

2009-07-14 18:45:26

Jython開發(fā)特性

2011-08-11 13:02:43

Struts2Junit

2012-02-07 09:08:50

Feed4JUnitJava

2009-07-14 15:27:17

Jython腳本示例

2009-07-16 14:26:44

Python和Jyth

2009-07-15 17:43:20

Jython類

2009-07-10 18:10:18

Jython編寫SerJython

2012-03-13 16:14:09

JavaJUnit

2020-12-30 07:08:27

Java方法測試

2009-07-15 18:29:22

Jython應(yīng)用

2009-07-15 16:29:39

Jython連接JavJavaUtils模塊

2009-10-09 15:18:05

Jython

2009-07-14 18:34:22

Jython操作符重載
點贊
收藏

51CTO技術(shù)棧公眾號

182在线视频| www.亚洲一区二区| 中文字幕一区二区三区人妻四季 | 色综合久久中文字幕综合网| 欧美精品一区二区三区四区五区| 嫩草影院一区二区三区| 一本一道久久综合狠狠老| 欧美一二三区在线| 成年网站在线免费观看| 午夜国产福利在线| 国产成人aaa| 羞羞色国产精品| 免费黄色片网站| 亚洲国产欧美国产第一区| 精品久久久久久国产91| 天堂资源在线亚洲资源| 蜜桃av鲁一鲁一鲁一鲁俄罗斯的| 久久视频一区| 欧美极品少妇xxxxⅹ裸体艺术| 国产成人av一区二区三区不卡| 亚洲一区导航| 日本久久一区二区| 99久久免费观看| √天堂资源地址在线官网| 成人免费黄色在线| 成人免费福利视频| 在线观看 亚洲| 激情综合在线| www.欧美三级电影.com| 成人午夜福利一区二区| theporn国产在线精品| 欧美三级日韩在线| 国产综合免费视频| h片在线观看视频免费| 综合激情成人伊人| 日韩欧美亚洲日产国产| 无码精品人妻一区二区| 国产成人精品在线看| 国产欧美精品xxxx另类| www.国产毛片| 中文一区二区| 欧美激情videoshd| 91嫩草丨国产丨精品| 精品久久久久久久久久久下田| 亚洲第一福利网站| 国产在线观看免费播放| 亚洲精品自拍| 欧美狂野另类xxxxoooo| 日本中文字幕高清| 欧美福利在线播放| 欧美性jizz18性欧美| 久久视频这里有精品| 国产盗摄一区二区| 亚洲国产日韩a在线播放| 9色视频在线观看| а√天堂在线官网| 亚洲欧美另类久久久精品2019| 一区二区三区av| 又爽又大又黄a级毛片在线视频| 久久精品人人做人人综合| 久久亚洲高清| 欧美日本网站| 国产色产综合产在线视频| 欧美日韩国产高清视频| 户外极限露出调教在线视频| 久久久不卡网国产精品一区| 欧美一区三区二区在线观看| 国产日本在线观看| 国产精品欧美综合在线| 大地资源第二页在线观看高清版| 黄色成人影院| 亚洲综合一二三区| 欧美激情视频免费看| 人狥杂交一区欧美二区| 日本韩国一区二区三区视频| 国产精品人人爽人人爽| 欧美国产视频| 日韩亚洲国产中文字幕欧美| 人妻换人妻a片爽麻豆| 日韩精选在线| 中文字幕亚洲欧美日韩在线不卡| 我要看一级黄色录像| 欧美+日本+国产+在线a∨观看| 久久6精品影院| 日韩精品久久久久久久| 老牛嫩草一区二区三区日本| 国产精品亚洲аv天堂网| 97人妻精品一区二区三区软件| 国产精品一区二区三区99| 好看的日韩精品视频在线| 精品美女视频在线观看免费软件| 国产精品久久久久影院老司| 乱熟女高潮一区二区在线| 蜜臀久久精品| 欧美日韩精品一区二区三区| 韩国av中国字幕| 国产精品一区二区三区av麻 | 女人十八毛片嫩草av| 午夜激情久久| 2019中文在线观看| 91影院在线播放| gogogo免费视频观看亚洲一| 日韩一区二区三区资源| 免费男女羞羞的视频网站在线观看| 精品久久久视频| 亚洲图片 自拍偷拍| 久久婷婷国产| 久久激情视频久久| 69视频免费在线观看| 国产在线视频不卡二| 久久久久久久久久久久久久一区| 免费黄色在线网站| 色综合色综合色综合色综合色综合| 中文字幕视频三区| 一道本一区二区三区| 欧美精品一区三区| 最新在线中文字幕| 不卡的av电影在线观看| 中文字幕中文字幕在线中心一区 | 99精品综合| 欧美做受高潮1| 成人av手机在线| 中文字幕一区在线| 91视频免费版污| 精品一区二区男人吃奶| 久久躁狠狠躁夜夜爽| 国产美女www| av不卡一区二区三区| 影音先锋成人资源网站| 123成人网| 亚洲人在线观看| 91浏览器在线观看| 高清不卡在线观看av| www.-级毛片线天内射视视| 制服诱惑亚洲| 亚洲欧美制服中文字幕| 国产午夜精品无码一区二区| 国产精一区二区三区| 国产91av视频在线观看| 成人免费黄色| 在线观看精品自拍私拍| 国产精品第六页| 国产亚洲一二三区| 亚洲中文字幕无码不卡电影| 欧美尿孔扩张虐视频| 国内精品国产三级国产在线专| www.黄色片| 亚洲精品国产一区二区三区四区在线| 自拍偷拍一区二区三区四区| 欧美日韩黑人| 国产精品扒开腿做爽爽爽视频| 欧美色视频免费| 色综合色狠狠天天综合色| 亚洲一区二区三区四区五区六区 | 欧美精品videos性欧美| 亚洲欧美黄色片| 亚洲国产裸拍裸体视频在线观看乱了| 亚洲av无码成人精品区| 亚洲午夜精品久久久久久app| 成人在线观看网址| av影视在线| 亚洲精品国产精品自产a区红杏吧 亚洲精品国产精品乱码不99按摩 亚洲精品国产精品久久清纯直播 亚洲精品国产精品国自产在线 | 国产精品入口日韩视频大尺度| 香港一级纯黄大片| 欧美日韩免费在线| 97超碰在线免费观看| 久久五月激情| 亚洲综合五月天| 国产精品一区二区三区四区在线观看| 欧美xxxx14xxxxx性爽| 亚洲成a人片在线| 天天综合日日夜夜精品| 精品成人av一区二区三区| 视频一区二区三区在线| 手机福利在线视频| 91大神精品| 欧洲一区二区视频| 午夜看片在线免费| 日韩精品一区二区三区老鸭窝| 日韩精品――中文字幕| 国产午夜精品一区二区三区视频 | 中文字幕久精品免| 亚洲国产aⅴ精品一区二区| 78色国产精品| 欧美精品videos另类| 欧美xxxxxxxx| 亚洲欧美偷拍一区| 中文字幕一区二区三区四区| wwwww在线观看| 裸体一区二区| 国产日本欧美在线| 外国成人在线视频| 成人av番号网| 亚洲精品88| 久久激情五月丁香伊人| 婷婷av一区二区三区| 欧美日韩中文一区| 国产在线拍揄自揄拍| 国产免费观看久久| 不许穿内裤随时挨c调教h苏绵| 亚洲一区网站| 日韩中文在线字幕| 国产成人三级| 成人三级在线| 亚洲三级在线| 日韩美女av在线免费观看| www久久日com| 国产亚洲欧美日韩一区二区| 亚洲欧美高清视频| 欧美精品色综合| 免费黄色网址在线| 亚洲一区欧美一区| 成年人视频软件| 99国产欧美另类久久久精品| 国产性生活一级片| 日韩国产成人精品| 国产精品自拍片| 欧美一区网站| 亚洲一区二区在线观| 亚洲第一论坛sis| 97人人干人人| 91精品国产自产观看在线| 日本一区二区三区在线播放| heyzo高清在线| 精品中文字幕在线观看| 日本三级视频在线播放| 亚洲一品av免费观看| 天天操天天操天天| 精品国产免费人成电影在线观看四季| 亚洲综合精品国产一区二区三区| 欧美性高潮床叫视频| 国产无码精品在线播放| 亚洲综合免费观看高清完整版在线 | 伊人久久综合97精品| 三级国产在线观看| 亚洲黄页网在线观看| 国产小视频免费观看| 日韩免费性生活视频播放| 国产乱码一区二区| 欧美精品tushy高清| 日本视频www色| 在线观看中文字幕不卡| 欧美性猛交xxxx乱大交hd | 精品国产一二三四区| 激情亚洲成人| 亚洲中文字幕无码av永久| 亚洲五月婷婷| 青青青免费在线| 一区二区日本视频| 啊啊啊一区二区| 免费一区视频| www.日日操| 美国av一区二区| 性生活免费在线观看| 久久99久久99精品免视看婷婷| 日日噜噜夜夜狠狠| 久久99国产精品久久99果冻传媒| 日本人69视频| 国产精品原创巨作av| 久久久久国产免费| 99久久精品免费精品国产| 中文文字幕文字幕高清| 2014亚洲片线观看视频免费| 国产呦小j女精品视频| 久久欧美一区二区| 欧美另类69xxxx| 综合在线观看色| 国产一级中文字幕| 欧美日韩午夜激情| 姑娘第5集在线观看免费好剧| 欧美日韩不卡在线| 国产不卡av在线播放| 亚洲成av人片在线观看香蕉| 日韩av地址| 最近2019中文字幕在线高清 | 69av在线视频| 色天使综合视频| 147欧美人体大胆444| 老汉色老汉首页av亚洲| 日韩精品福利视频| 综合久久综合| 人妻精品无码一区二区三区 | 国产成人在线视频| 成人在线日韩| 国产精品中出一区二区三区| 亚洲欧洲av| 色呦呦网站入口| 国产精品日本| 亚洲精品永久视频| 91丨九色丨蝌蚪丨老版| 农村老熟妇乱子伦视频| 亚洲福利一区二区三区| 日本三级一区二区三区| 日韩欧美久久一区| 国产一二三在线观看| 欧美成人免费网| se01亚洲视频| 不卡的av一区| 日韩成人a**站| 男女视频网站在线观看| 麻豆91在线观看| 国产xxxxxxxxx| 亚洲日本在线a| 蜜臀尤物一区二区三区直播| 精品久久人人做人人爱| 最新97超碰在线| 国语对白做受69| 精品一区二区三区免费看| 青青草成人网| 亚洲国产国产亚洲一二三| 国产一级做a爰片久久| 不卡的av中国片| 成人在线观看高清| 欧美在线视频全部完| 少妇人妻偷人精品一区二区| 久久亚洲精品成人| 国外成人福利视频| 免费中文日韩| 亚洲国内欧美| 91av免费观看| 一区在线观看视频| 免费黄色片视频| 精品亚洲一区二区三区在线播放| 天使と恶魔の榨精在线播放| 91精品国产自产在线| 国内精品久久久久久99蜜桃| 97视频久久久| 成人av网址在线观看| 欧美日韩三级在线观看| 欧美日韩dvd在线观看| freemovies性欧美| 国产成一区二区| 亚洲免费观看高清完整版在线观| 国产精品国产亚洲精品看不卡| 成人免费毛片嘿嘿连载视频| 久久久精品99| 日韩精品一区二区三区三区免费 | 亚洲精品久久久蜜桃动漫| 久久久国产精品视频| 99亚洲男女激情在线观看| 中文字幕日韩一区二区三区不卡 | 午夜性福利视频| 一区二区三区丝袜| 午夜精品久久久久久久99热黄桃| 成人97在线观看视频| 国产精品欧美一区二区三区不卡 | 成人在线观看视频网站| 国产精品国产一区| 91pony九色| 玉米视频成人免费看| 国产99久久九九精品无码免费| 欧美成人一二三| 一区二区三区四区精品视频| 无码人妻精品一区二区蜜桃网站| 国产盗摄一区二区三区| 国产一级视频在线| 亚洲国产精品va在看黑人| 午夜裸体女人视频网站在线观看| 免费久久久一本精品久久区| 首页亚洲欧美制服丝腿| 国产精品久久久久久成人| 5858s免费视频成人| 青春草视频在线| 激情小说综合网| 首页国产欧美久久| 国产成人av免费在线观看| 欧美一级xxx| www.综合| 日本一区免费| 久久99国产精品免费| 久久久久久久黄色| 亚洲精品视频中文字幕| 8av国产精品爽爽ⅴa在线观看| 中文字幕日韩精品一区二区| 福利91精品一区二区三区| 中文字幕视频网| 最近2019中文字幕第三页视频 | 亚洲少妇xxx| 亚洲第一免费播放区| 日韩欧美一区二区三区免费观看| 亚洲乱码一区二区三区三上悠亚 | 欧美做受喷浆在线观看| 欧美午夜在线一二页| 人偷久久久久久久偷女厕| 久久亚洲资源| 玛丽玛丽电影原版免费观看1977 | 国产熟女一区二区丰满| 欧美精品videossex性护士| 精品国产欧美日韩| 中文字幕一二三| 欧美日韩中文字幕| 国内精品久久久久国产| 国产一区在线观| 久久精品国产免费看久久精品| 久久9999久久免费精品国产| 亚洲日本成人女熟在线观看| 精品视频在线观看网站| 欧美成人免费高清视频| 一区二区在线观看免费视频播放| 男女污视频在线观看|