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

加速Java應用開發3—單元集成測試+CI

開發 后端
估計只要是個開發人員,都可能遇到過;如果此時有了單元/集成測試,那我們能很好的解決這些問題。(注:加下來如果沒有特殊情況,不刻意強調 單元測試/集成測試,即提到測試是指的是單元/集成測試)

大家可能對如下情景比較熟悉:

  • 如果開發過SSH的web項目,啟動服務器可能會比較慢,有的項目甚至需要1分多鐘,甚至更多,這個啟動時間的等待一般就浪費了;
  • 在開發項目時,有些功能比較復雜,當時覺得思路特清晰,但是過了一段時間后,自己也忘了,完善功能時頻繁出現bug,降低開發速度;
  • 在維護項目時,不知道自己修改的對還是不對,是否存在隱患;維護速度降下來了;
  • 如果開發一個很多人都使用的接口,典型的如用戶系統,要保證比如升級時向下兼容;
  • 在團隊間協作時,有時候只定義好接口,對方還沒有給實現,如何進行同步開發?

如上問題,估計只要是個開發人員,都可能遇到過;如果此時有了單元/集成測試,那我們能很好的解決這些問題。(注:加下來如果沒有特殊情況,不刻意強調 單元測試/集成測試,即提到測試是指的是單元/集成測試)

我從以下幾個方面介紹測試:

  • 1、為什么需要測試?
  • 2、如何進行測試?
  • 3、測試有哪些好處?
  • 4、一切都需要測試嗎?

1、為什么需要測試?

測試的目的是什么?我的理解是:

  • 縮短發現問題到解決問題的速度;
  • 給程序一個修改后能驗證是否正確的保證;(回歸測試)
  • 如果是開源軟件,我們可以通過單元測試了解其是怎么使用的;比如我之前通過cglib的單元測試學習過cglib的使用;

所以如果你遇到如上問題,就需要寫測試。寫測試可能是為了自己(1、2);也可能是為了幫助別人(3)。

2、如何進行測試?

很多朋友不知道如何進行測試,其實測試很簡單,別把它想復雜了,按照自己的想法測試每個功能點是否正確即可。

2.1、測試流程

單元測試流程

集成測試流程

 

集成測試流程 

 

可以看出,單元測試與集成測試唯一不同點是一個調用依賴系統而一個不調用;因為單元測試是最小粒度的測試,如在Java中是測試一個類,不會測試依賴系統;而集成測試是會測試依賴系統的。

測試的步驟:

  1. 準備環境
  2. 調用被測系統
  3. 驗證
  4. 清理環境

環境:也叫做夾具(fixture)或者固件,表示調用被測系統時需要準備/清理的數據等等;

被測系統:在Java中就是要測試的類,如UserService;

依賴系統:測試被測系統時,其依賴的部分,如UserDao;

測試用例:包含測試方法的類,里邊有很多測試方法來測試被測系統。

接下來仔細看看各部分都做了哪些工作。

2.2、環境

 環境,也叫做夾具(fixture),表示調用被測系統時需要準備/清理的數據等等;保證測試時環境是干凈的,如不被之前的數據庫數據影響;保證每次測試都是在干凈/新鮮的環境中執行的。所謂干凈的環境表示如當前測試不被之前測試插入/刪除/修改的數據造成影響。在junit中可以使用:

  • @Before(setUp) 安裝夾具或準備環境:在測試用例的每個測試方法之前執行;比如創建新鮮的被測系統,單元測試時安裝Mock的依賴系統;
  • @After(tearDown)卸載夾具或清理環境:在測試用例的每個測試方法之后執行;比如數據庫測試時回滾事務,刪除數據;關閉文件;
  • @BeforeClass:在整個測試用例之前執行;
  • @AfterClass:在整個測試用例之后執行;

#p#

使用如上方法,而不是直接在測試方法中安裝/卸載;是因為不管有沒有異常,@After/@AfterClass都會執行,這樣防止出現異常可能造成環境是不新鮮的問題。

如果大家使用spring test來測試數據庫相關的系統,可以考慮使用@TransactionConfiguration來支持默認事務回滾,這樣不會對現有系統造成影響。

測試時一定要保證環境是干凈/新鮮的,才能保證每次測試的結果是一樣的。

2.3、被測系統與依賴系統

被測系統:在Java中就是被測試的Java類。

依賴系統:就是被測試Java類依賴的其他類。

如果是單元測試,一般情況下,會對依賴系統進行模擬(Mock),即給它一個假的實現;典型的如測試服務層時注入一個Mock的DAO層,這樣的好處:

  • 加快測試速度;因為不會調用真實的被測系統,所以速度特別快;
  • 測試還沒有完成的功能;尤其在多團隊協作時,可以只在定義好接口的情況下開發系統;

如果是集成測試時,直接注入真實的依賴系統即可,好處:

  • 完成聯調;
  • 發現自己的問題;
  • 還可能發現自己使用上問題及使用的API的問題;

單元測試雖然好,但是是隔離測試,即不會調用被測系統來完成測試,因為不是真實的聯調,所以很可能會潛在有一些問題,因此還是需要集成測試。(所以不是很刻意分單元或集成測試,且有些系統可能只有集成測試)

但是集成測試速度是比較慢的,一般提交給CI執行,不影響當前開發進度。

2.4、驗證

驗證的目的:是保證實際結果和我們預期的結果是否一致,說白了就是是否是我們想的那樣。

一般使用斷言來驗證,如:

Assert.assertEquals(expectedResult, actualResult); //驗證預期結果和實際結果是否相等

驗證主要有兩種:

  • 結果驗證
  • 行為驗證

結果驗證:即驗證被測系統返回的結果是否正確,如:

  1. @Test   
  2. public void testCount() {   
  3.     String ql = "select count(o) from User o";   
  4.     long expectedCount = repositoryHelper.count(ql) + 1;   
  5.    
  6.     User user = createUser();   
  7.     repositoryHelper.getEntityManager().persist(user);   
  8.    
  9.     long acutalCount = repositoryHelper.count(ql);   
  10.     Assert.assertEquals(expectedCount, acutalCount);   
  11.    
  12. }   

驗證返回的數據總數 = 插入之前的總數 + 1; 即結果驗證。此處我們使用了一種叫做相對(delta)測試;即不關心數據庫里到底多少條,只關心實際的和預期的差。

行為驗證:即驗證被測系統是否調用了依賴系統的某個API ,這個只有當我們使用Mock時測試時比較簡單,如當用戶注冊時:

1、加積分

2、發系統消息

3、……

此時我們并不能通過結果驗證是否調用了這些方法;那么我們可以使用Mock技術來完成驗證是否調用了這些API,比如使用jmock測試框架就支持行為驗證。集成測試是很難進行行為驗證的,如果測試需要預留間諜接口。

3、測試有哪些好處?

我們寫代碼的目的是正確的完成某個功能,如何保證正確呢?測試!所以在不使用如單元測試技術時,我們也是需要測試,但是這個測試是我們人工驗證的。缺點很明顯:

  • 不是自動的,每次需要對比預期結果與實際結果,尤其數據量/邏輯復雜時更痛苦;
  • 不是回歸的,上次測試完成后,下次還得重復自己一遍;
  • 為了解決這個問題,我們使用如單元測試技術來解決這個問題:
  • 測試自動化;即驗證預期結果與實際結果交給計算機吧;
  • 測試回歸性,可以重復執行測試,驗證修改后邏輯是否還是正確的;

即測試的好處,從如上已經提煉出來了:

  • 縮短發現問題到解決問題的時間;
  • 重復使用測試,保證修改后的代碼還是正確的;
  • 如果做開源項目,可以提供給使用人員參考如何使用;
  • 因為單元測試都非常快,所以提升了開發速度;

4、一切都需要測試嗎?

肯定不是,一切都是相對的;哪些不需要測試呢:

  • 你非常熟悉的功能;
  • 一些簡單的CRUD;
  • 你認為不需要測試的;比如你很有把握的東西,就沒有必要浪費時間測試了;
  • 哪些需要測試呢:
  • 復雜的業務邏輯/系統核心功能,最典型的如訂單系統:一定要有足夠的單元測試保證,這是一個電商系統的核心;還有如用戶系統、積分系統等等;
  • 框架級別/工具級別/通用級別的代碼需要測試,即提供給第三方使用的代碼,因為這些代碼可能被很多系統依賴,應該保證其正確性;而且還要保證以后版本升級的向下兼容;
  • 你認為需要測試的,比如你沒有把握的東西,還是寫點測試來縮短如開發web項目的重啟系統的時間吧;

 測試不是不耗時間的,沒意義的測試就是浪費時間,最典型是一些書上的對一個增刪改查進行測試,實際項目沒有任何意義。所以你應該只對自己很難駕馭的覺得有必要的代碼進行測試。不要成為一個測試狂,什么都測試。 

一些測試可以參考我的《es——JavaEE快速開發腳手架》中的代碼。通過測試我得到了許多好處。 

#p#

到此我們介紹完成了測試,但是如果我們使用了如集成測試時,測試執行起來可能比較慢,跑一遍測試可能需要5分鐘,那怎么辦呢?

  • 每天下班前跑一遍集成測試,然后修復,下班走人;
  • CI:持續集成,交給持續集成服務器,自動地測試完成后把測試報告以郵件的形式發到開發人員郵箱;

接下來介紹一下CI吧。

1、為什么需要CI

2、CI如何工作的

3、travis-ci介紹

1、為什么需要CI

正如前邊說的,我們單獨測試可能會遇到如下問題:

  • 如果寫了一個測試,就要把所有測試跑一遍看看整個系統是否是正確的,那么每次等待時間是非常漫長的;

  • 如果團隊中的其他成員改了功能并提交了,如何快速得到該次提交對當前系統代碼是正確還是失敗的反饋;

那怎么辦呢?自動化地持續集成(CI)!CI的核心就是干這件事情的。自動化持續地集成測試。

使用CI后,如果使用Maven,可以新建多個profile:

  • 本地測試時忽略一些比較慢的測試;

  • CI服務器上執行所有測試;

2、CI如何工作的

一個典型的持續集成流程:

  1. 定期檢測版本服務器上是否有代碼更新;
  2. 如果發現代碼更新,從版本服務器下載最新的代碼;
  3. 自動構建并自動化的測試;
  4. 不管錯誤/失敗,生成報告給開發人員;
  5. 有些CI服務器還能產生可執行的軟件,自動化地部署到測試機器,交給測試人員測試。

如圖所示:

 
 

持續集成服務器其實就是一個定時器,自動幫你下載最新代碼、編譯、測試、集成及產生報告發給開發人員。

常見的CI服務器有:

  • Apache Continuum
  • Hudson
  • CruiseControl
  • Jenkins CI
  • TeamCity
  • Travis CI

我09年時使用過TeamCity社區版,足夠滿足常見需求;目前我使用github托管項目,使用Travis CI進行分布式的持續集成,免費,目前看來還是不錯的。

3、travis-ci介紹

我現在開發的ES-JavaEE項目開發腳手架就是使用travis ci進行持續集成;具體參考《Getting started》進行與Github集成,其支持的語言:

#p#

支持的數據庫:

  • MySQL
  • PostgreSQL
  • MongoDB
  • CouchDB
  • Redis
  • Riak
  • RabbitMQ
  • Memcached
  • Cassandra
  • Neo4J
  • ElasticSearch
  • Kestrel
  • SQLite3

如果是Java開發人員,支持的JDK包括:OpenJDK 和 OracleJDK。 如果使用的是OpenJDK,Maven中使用ascii2native插件時,需要如下配置:

  1. <plugin>   
  2.     <groupId>org.codehaus.mojo</groupId>   
  3.     <artifactId>native2ascii-maven-plugin</artifactId>   
  4.     <version>1.0-alpha-1</version>   
  5.     <executions>   
  6.         <execution>   
  7.             <phase>generate-resources</phase>   
  8.             <goals>   
  9.                 <goal>native2ascii</goal>   
  10.             </goals>   
  11.             <configuration>   
  12.                 <encoding>UTF-8</encoding>   
  13.                 <src>src/main/messages</src>   
  14.                 <dest>target/${project.artifactId}/WEB-INF/classes</dest>   
  15.                 <includes>messages.properties</includes>   
  16.             </configuration>   
  17.         </execution>   
  18.     </executions>   
  19.     <!-- native2ascii 使用的tools.jar -->   
  20.     <dependencies>   
  21.         <dependency>   
  22.             <groupId>com.sun</groupId>   
  23.             <artifactId>tools</artifactId>   
  24.             <version>1.7.0</version>   
  25.             <scope>system</scope>   
  26.             <systemPath>${java.home}/../lib/tools.jar</systemPath>   
  27.         </dependency>   
  28.     </dependencies>   
  29. </plugin>   

如果使用mysql,端口只能是3306。

如果想開端口測試,這是不允許的。

如下是我項目中的一個配置.travis.yml,放到項目的根下即可:

-----------------------------------

language: java           語言

env:                           環境

  - DB=mysql              使用mysql

jdk:

  - openjdk                jdk使用openjdk

mysql: 

  database: es         數據庫名為es

  username: root     用戶名為root

  password :            密碼為空

  encoding: utf8      編碼為utf8

install:                     安裝時執行的腳本

  - mvn install -Dmaven.test.skip=true     mvn安裝并跳過測試

before_script:        script之前執行的測試

  - cd web              

  - mvn db:create  創建數據庫的mvn命令(此處使用了 maven-db-plugin 插件)

  - mvn db:schema  創建腳本的mvn命令

  - mvn db:data        安裝數據的mvn命令

  - cd ..

script:                      測試時執行的腳步

  - cd common 

  - mvn test              測試common子模塊

  - cd ..

  - cd web

  - mvn test -Pit       測試web子模塊,并指定使用it profile測試(即集成測試的配置,具體參考pom.xml中的profile/it)

notifications:          觸發

  email:                  測試完成后測試報告發到哪

    - zhangkaitao0503@gmail.com  

-----------------------------------

持續集成不能修復代碼的錯誤,而是和單元測試一樣,縮短發現問題帶解決問題的時間,這樣可以提高開發效率,降低項目風險,提高項目的穩定性。而且尤其是團隊協作時,可以發現其他人的代碼是否對自己的代碼產生影響。 

到此我們利用單元測試+CI可以加速開發人員的開發速度。利用好單元測試和CI,不要純粹為了單元測試和CI而去做這些事情。

本文沒有介紹TDD,TDD并不會那么美好,我認為我們可以借鑒TDD的一些思想,但決不能迷信TDD,有時候,尤其如開發企業應用,先寫功能再寫測試可能效率更高,而且大部分時候是不需要TDD的。而且我也沒能在實際項目中獲取太多TDD的好處,但是我獲得了測試的好處。

本文也沒有介紹測試覆蓋率,我認為不要一味的追求覆蓋率,有時候有的覆蓋率沒有任何意義。所以不要讓為了覆蓋率而覆蓋率拖慢了項目開發進度。

原文鏈接:http://jinnianshilongnian.iteye.com/blog/1893135

責任編輯:陳四芳 來源: 開濤的博客
相關推薦

2013-07-04 13:19:24

Java開發速度

2020-07-07 07:33:12

Java單元集成

2023-10-07 08:49:56

測試驅動開發Xunit 框架

2012-01-18 10:49:05

ibmdw

2024-10-22 15:14:16

2009-06-02 16:05:04

Struts驅動開發

2013-07-03 09:52:13

熱部署熱替換

2022-04-08 09:01:56

腳本Go應用單元

2025-02-03 16:24:20

2012-02-08 15:06:31

ibmdw

2013-07-01 10:07:44

JavaSpringHibernate

2017-01-14 23:42:49

單元測試框架軟件測試

2021-01-07 14:06:30

Spring BootJUnit5Java

2024-04-02 09:17:10

單元測試集成測試

2009-09-24 17:21:17

加速Hibernate

2010-08-27 09:11:27

Python單元測試

2025-06-25 09:51:53

2021-08-26 11:00:54

Spring BootJUnit5Java

2023-12-11 08:25:15

Java框架Android

2016-11-03 13:46:08

javascript測試工具
點贊
收藏

51CTO技術棧公眾號

国产l精品国产亚洲区久久| 97超碰蝌蚪网人人做人人爽| xxww在线观看| 精品美女在线观看视频在线观看 | 成人激情久久| 亚洲美女免费在线| 国产一区在线免费| 中文字幕在线视频第一页| 一个色综合网| 亚洲美女av在线| 免费看涩涩视频| sm在线播放| 国产精品网站在线观看| 肥熟一91porny丨九色丨| 日韩久久中文字幕| 国产麻豆精品久久| 精品国产一区二区在线观看| 黄色av免费在线播放| 欧美野外wwwxxx| 亚洲国产电影在线观看| 国产一区二区三区色淫影院| 伊人网av在线| 99精品视频免费观看视频| 在线精品播放av| 国产原创剧情av| 香蕉久久久久久| 欧美性猛交xxxx乱大交3| 三年中文高清在线观看第6集| 婷婷久久久久久| 国产一区 二区 三区一级| 日本高清+成人网在线观看| 久久精品一区二区三| 成人黄色av| 日韩国产一区三区| 免费看91视频| 永久免费观看精品视频| 在线观看国产一区二区| 久久成人福利视频| 国产激情视频在线观看| 中文av一区二区| 欧洲精品久久| 欧美套图亚洲一区| 成人av在线一区二区| 91精品网站| 国产视频在线观看免费 | 欧美在线不卡区| 国语对白一区二区| 欧美午夜一区二区福利视频| 久久久精品一区二区| 日本美女bbw| 国产精品一区高清| 亚洲天堂男人天堂| 西西444www无码大胆| 网曝91综合精品门事件在线| 亚洲精品国产成人| 人妻丰满熟妇av无码久久洗澡 | 日本不卡高清视频一区| 美女毛片在线看| 91亚洲精品久久久蜜桃| 国产视频在线观看一区| 少妇无码一区二区三区| 白白色 亚洲乱淫| 精品久久久久久中文字幕动漫| 丰满人妻一区二区三区免费视频| 成人午夜看片网址| 国产精品区一区二区三在线播放| 欧美 日韩 国产 成人 在线 91| 国产69精品一区二区亚洲孕妇| 999国产在线| 亚洲成人中文字幕在线| 成人高清在线视频| 精品国产乱码久久久久久108| 亚洲av成人精品一区二区三区在线播放| www.成人网.com| 九九久久99| 久久经典视频| 国产精品久久久爽爽爽麻豆色哟哟| 视频一区二区在线| 福利在线视频网站| 亚洲一区二区三区四区中文字幕| 日本福利视频一区| 成人香蕉视频| 欧美理论片在线| 性活交片大全免费看| 精品女人视频| 中文字幕亚洲二区| 欧美精品99久久久| 噜噜噜91成人网| 国产欧美日韩精品在线观看| www日本高清| 26uuu国产日韩综合| 日产精品高清视频免费| 国产黄a三级三级三级av在线看| 亚洲综合av网| 91n.com在线观看| 91成人短视频| 亚洲欧美一区二区三区在线| 亚洲熟女少妇一区二区| 在线国产精品一区| 国产欧美精品在线播放| 国产18精品乱码免费看| 国产婷婷精品av在线| 免费看污污视频| 樱花草涩涩www在线播放| 欧美久久免费观看| 在线免费播放av| 久久亚洲在线| 欧洲美女免费图片一区| 国产xxxx孕妇| 欧美激情一区二区| 18禁网站免费无遮挡无码中文| 国产成人精品一区二区三区视频| 亚洲精品电影网站| 玖玖爱这里只有精品| 狂野欧美一区| 精品国产一二| 在线黄色网页| 欧美日韩一卡二卡| 18禁裸乳无遮挡啪啪无码免费| 亚洲综合中文| 国产精品美女www| 天堂av电影在线观看| 亚洲另类色综合网站| 不卡av免费在线| 精品按摩偷拍| 欧美日本在线视频中文字字幕| 波多野结衣电车痴汉| 9久草视频在线视频精品| 日韩不卡视频一区二区| 久久福利在线| 一个人看的www久久| 欧美一二三区视频| 成人免费视频视频| 影音先锋男人的网站| 国产精品天堂蜜av在线播放| 亚洲欧美日韩国产精品| 日本道在线观看| 国产乱码字幕精品高清av| 日韩av高清在线播放| 日韩伦理在线一区| 亚洲国产成人精品电影| 免费在线视频一区二区| 国产一区二区三区免费| 亚洲免费久久| 国产成人毛片| 色999日韩欧美国产| 真实新婚偷拍xxxxx| 国产亚洲美州欧州综合国| 97超碰青青草| 亚洲第一福利社区| 奇米一区二区三区四区久久| 偷拍自拍在线| 欧美午夜激情视频| 亚洲熟妇一区二区三区| 老牛嫩草一区二区三区日本 | 天天干天天色天天| 激情亚洲一区二区三区四区| jjzz黄色片| 精品96久久久久久中文字幕无| 成人黄色午夜影院| 成年人黄视频在线观看| 91精品国产综合久久精品性色| 免费在线观看a级片| 国精品**一区二区三区在线蜜桃| 超碰成人在线免费观看| 涩爱av色老久久精品偷偷鲁| 欧美精品18videosex性欧美| 蜜桃视频污在线观看| 精品美女国产在线| 无码人妻精品一区二区中文| 日本女优在线视频一区二区| 亚洲图片都市激情| 欧美国产亚洲精品| 97在线观看视频| 狠狠v欧美ⅴ日韩v亚洲v大胸| 欧美亚洲愉拍一区二区| 午夜激情福利网| 国产91对白在线观看九色| 欧美牲交a欧美牲交| 欧美熟乱15p| 91九色视频在线| 9999精品成人免费毛片在线看| 亚洲欧美日本另类| 国产精品高潮呻吟av| 亚洲一级二级在线| 大又大又粗又硬又爽少妇毛片| 男人的天堂久久精品| 国产精品videossex国产高清| 亚洲成在人线免费观看| 91精品久久久久久久| 成人免费高清观看| 尤物99国产成人精品视频| 国产极品999| 色综合久久88色综合天天免费| 国产中文字幕久久| www.亚洲国产| 九九热免费在线观看| 亚洲高清网站| 一本一道久久a久久精品综合| 91嫩草精品| 国产精品久久久久久久久久99| a级影片在线观看| 亚洲男人天堂视频| 国产黄色大片网站| 一本色道久久综合亚洲精品按摩| 男女性高潮免费网站| 久久网站热最新地址| 亚洲国产综合av| 日本少妇一区二区| 国产a级片网站| 亚洲草久电影| 色噜噜一区二区| 精品综合久久88少妇激情| 成人高h视频在线| 成人爽a毛片免费啪啪| 久久久久久久久久久亚洲| 日本蜜桃在线观看| 亚洲天堂男人天堂女人天堂| 欧美亚洲精品在线观看| 91精品国产综合久久久蜜臀粉嫩| www毛片com| 亚洲国产精品久久人人爱蜜臀 | 九色国产在线观看| 精品国产第一区二区三区观看体验| 在线免费观看高清视频| 色狠狠综合天天综合综合| 国产一级特黄aaa大片| 一区二区中文视频| 免费看污片的网站| 99亚偷拍自图区亚洲| 日本少妇xxxx软件| 国产呦精品一区二区三区网站| 激情婷婷综合网| 99香蕉国产精品偷在线观看| 久久www视频| 国产精品x453.com| 午夜精品福利一区二区| 国产免费播放一区二区| 欧美日韩在线观看一区二区三区| 欧美日韩一区二区三区四区不卡 | 久久久久久久久久久久久久久久久久| 欧美一区1区三区3区公司| 成人在线tv视频| 91久久精品美女| 中文字幕成人| 成人a级免费视频| 久久麻豆视频| 国产在线精品播放| 日韩久久99| 91成人免费观看| 亚洲国产视频二区| 丁香婷婷久久久综合精品国产| 亚洲伊人精品酒店| 亚洲va欧美va国产综合久久| 日韩精品视频一区二区三区| 亚洲一区二区三区久久| 日本一区精品视频| 国产九色精品| 网友自拍区视频精品| 日韩欧美一区二区在线观看 | 五月天中文字幕| 在线观看不卡一区| 夜夜躁狠狠躁日日躁av| 在线综合视频播放| 免费观看黄色一级视频| 日韩成人xxxx| yourporn在线观看中文站| 这里只有精品在线播放| 免费观看久久久久| 欧美夫妻性生活视频| h片在线观看视频免费免费| 91sa在线看| 黄色精品视频| 91在线中文字幕| 国产精品白丝一区二区三区| 免费看国产精品一二区视频| 日本不卡高清| 日本a在线天堂| 午夜一区不卡| 小明看看成人免费视频| 成人午夜在线播放| 香蕉视频久久久| 亚洲九九爱视频| 久久精品视频5| 欧美一级欧美三级在线观看| 少妇一级淫片免费看| 综合网中文字幕| 丁香花视频在线观看| 国产成人精品综合久久久| 电影91久久久| 玛丽玛丽电影原版免费观看1977| 久久人人99| www.99热这里只有精品| 麻豆91在线观看| 毛茸茸free性熟hd| 中文字幕在线观看不卡| 成人精品免费在线观看| 欧美一区二区在线视频| 精品视频一二三| 久久久久国产精品www| 99亚洲伊人久久精品影院| 国产精品区一区二区三含羞草| 日韩综合精品| 亚洲午夜精品久久久久久人妖| 精品一区二区三区久久久| 无遮挡aaaaa大片免费看| 最新久久zyz资源站| 亚洲欧美偷拍视频| 日韩精品一区二区三区在线播放| 成人精品一区| 91豆花精品一区| 天堂va在线高清一区| 色99中文字幕| 亚洲欧美日本日韩| 女人扒开双腿让男人捅| 国产精品亲子伦对白| 天堂在线免费观看视频| 欧美一区二区观看视频| 成年人在线观看网站| 91黑丝在线观看| 91精品国产自产在线丝袜啪| 中文字幕一区二区中文字幕 | 午夜精品视频一区| 国产av精国产传媒| 日韩在线观看免费av| 欧美色999| 欧美日韩精品久久久免费观看| 国内精品美女在线观看| 视频区 图片区 小说区| 中文字幕中文字幕一区| 一区二区乱子伦在线播放| 亚洲人成绝费网站色www| 色吧亚洲日本| 国产综合动作在线观看| 亚洲国产mv| www.555国产精品免费| 一区二区三区不卡视频在线观看 | 黄色片视频网站| 精品久久久久久久人人人人传媒| 中文字幕中文字幕在线十八区 | 蜜臀av免费在线观看| 欧美福利视频网站| 日本精品在线观看| 男女激烈动态图| 国产一区视频在线看| 四虎精品免费视频| 欧美一区二区视频免费观看| 韩国中文字幕在线| 99精品99久久久久久宅男| 国产精品va| 久久久久国产精品无码免费看| 午夜久久久久久| 亚洲欧美综合在线观看| 69av在线视频| 免费欧美视频| 日本999视频| 国产精品久久久久久户外露出| 中文字幕一区二区在线视频 | 久久影院午夜精品| 久久狠狠久久综合桃花| 美女精品网站| 少妇av片在线观看| 欧美日本一区二区在线观看| 国产激情在线观看| 国产精品青青草| 媚黑女一区二区| 国产一区二区三区视频播放| 3atv一区二区三区| av资源一区| 免费久久久一本精品久久区| 日本伊人色综合网| 91插插插插插插| 日韩av在线高清| 黄色精品视频| 黄色激情在线视频| 久久久久久久久久久久久久久99| 中文在线资源天堂| 欧美理论片在线观看| 青青久久av| 日本肉体xxxx裸体xxx免费| 亚洲激情男女视频| 青青草超碰在线| 成人黄色av网站| 国产一区二区三区的电影 | 日韩精品xxx| 精品久久久视频| 欧美日韩在线资源| 国产乱码精品一区二区三区卡| 天堂av在线一区| 欧美国产日韩综合| 亚洲精品中文字幕有码专区| 99精品美女视频在线观看热舞| 日本午夜激情视频| 国产精品国产自产拍高清av| 日韩一区免费视频| 国产精自产拍久久久久久| 在线国产精品一区| 日本黄色免费片| 亚洲欧美综合另类中字| 51亚洲精品|