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

Docker容器測試全探索

云計算
了解了如何將新創建的鏡像納入到生產或者測試環境當中之后,新的問題來了——我們該如何測試自己的Docker容器?下面我們就對其各自的方案利弊進行逐一分析。

[[170286]]

當我們構建好Docker鏡像并利用多套容器共同組合成應用程序,建立起持續交付通道,了解了如何將新創建的鏡像納入到生產或者測試環境當中之后,新的問題來了——我們該如何測試自己的Docker容器?

測試的策略多種多樣,反映了各種各樣的測試性格:天真型,懶人省事型,超前理想主義型,完美主義處女座型……那么你是哪一型?

下面我們就對其各自的方案利弊進行逐一分析。

“天真”型方案

大多數人會將此作為默認方案。其利用CI服務器實現任務執行。在這項方案中,開發人員利用Docker作為軟件包管理器,其實際效果優于jar/rpm/deb方案。CI服務器對應用程序代碼進行編譯,而后執行測試(包括單元、服務及功能等)。Docker中的build可復用以生成新的鏡像,由此生成的鏡像不僅包含應用程序的“二進制代碼”,同時亦擁有運行時所必需的依賴性及配置。

不過為了實現應用程序的可移植性,我們需要放棄開發與測試的可移植能力。在這種情況下,我們無法在CI之外重新建立同樣的開發與測試環境。為了創始這樣一套新的測試環境,我們需要設置測試工具(正確版本與插件)、配置運行時與操作系統設定,同時獲取相同版本的測試腳本與測試數據。

為了解決上述難題,我們需要考慮以下方案。

應用&測試容器方案

現在我們嘗試創建單一捆綁包,其中應用程序“二進制代碼”中包含全部必需的軟件包、測試工具(包括對應版本)、測試工具插件、測試腳本以及其它各類測試環境元素。

這套方案的優勢包括:

  • 測試環境自身擁有可重復性——我們能夠在CI、開發、分段或者生產環境當中使用完全相同的測試工具實現完全相同的測試效果。
  • 我們能夠立足特定時間點捕捉測試腳本,所以可將其復用于任意環境。
  • 我們不需要對測試工具進行二次設置與配置——其已經成為鏡像中的組成部分。

但這種方式也存在著顯著弊端:

  • 鏡像體積直線增長——這是因為其中包含有測試工具、必要軟件包、測試腳本甚至是測試數據。
  • 特定測試配置可能對鏡像運行時環境造成污染,甚至引入不必要的依賴性(集成測試中需要用到)。
  • 我們還需要考慮如何處理測試結果與記錄日志;如何將其導出以及向哪里導出。 通過以下經過簡化的 Dockerfile,我們可以了解上述方案的整個流程。
  1. FROM "<bases image>":"<version>" 
  2. WORKDIR "<path>" 
  3. # install packages required to run app and tests 
  4. RUN apt-get update && apt-get install -y \ 
  5.     "<app runtime> and <dependencies>" \  # add app runtime and required packages 
  6.     "<test tools> and <dependencies>" \     # add testing tools and required packages 
  7.     && rm -rf /var/lib/apt/lists/* 
  8. # copy app files 
  9. COPY app app 
  10. COPY run.sh run.sh 
  11. # copy test scripts 
  12. COPY tests tests 
  13. # copy "main" test command 
  14. COPY test.sh test.sh 
  15. # ... EXPOSE, RUN, ADD ... for app and test environment 
  16. # main app command 
  17. CMD [run.sh, "<app arguments>"
  18. # it's not possible to have multiple CMD commands, but this is the "main" test command 
  19. # CMD [/test.sh, "<test arguments>"

點此下載 Dockerfile

毫無疑問,應該有更好的容器內測試方案可供選擇。

測試感知型容器方案

目前,Docker承諾以“Build -> Ship -> Run”這一簡單操作完成鏡像構建、發布至注冊表并在其它位置運行等任務。不過恕我直言,其中還缺少了Test這一重要環節。正確且完整的流程應該是Build -> Test -> Ship -> Run。 下面讓我們看看能夠為Docker命令提供“測試友好”型語法與擴展的Dockerfile是如何建立而成的。當然,其中并不涉及真正的語法,只是我個人更偏好這樣表述。我定義出了自己的“理想”版本(真的只是理想版本,僅供大家借鑒其中的思想,小數注),大家應該能夠看出其中可用于實踐的指導思路。

  1. ONTEST [INSTRUCTION] 

首先定義一條特殊的ONTEST指令,其與現有ONBUILD指令非常相似。ONTEST指令會向鏡像添加一條觸發指令,其在隨后鏡像接受測試時自動執行。任意build指令都可被注冊為觸發條件。

ONTEST指令可由一條新的docker test命令進行識別。

  1. docker test [OPTIONS] IMAGE [COMMAND] [ARG...] 

事實上,docker test命令的語法與docker run命令非常相似,二者只存在一項區別:前者會自動生成一套新的“可測試”鏡像,甚至為其提供-test 標簽(向原始鏡像標簽中添加‘test’標簽)。此可測試鏡像將由初始應用鏡像生成,執行全部build操作,于ONTEST命令后進行定義并執行ONTEST CMD(或者ONTEST ENTRYPOINT)。其中若測試發生錯誤,docker test命令應當返回一段非零代碼。此測試結果應當被寫入至自動生成且指向/var/tests/results文件夾的VOLUME。

下面我們來看看經過修改的Dockerfile——其中包含新的ONTEST指令。

  1. FROM "<base image>":"<version>" 
  2. WORKDIR "<path>" 
  3. # install packages required to run app 
  4. RUN apt-get update && apt-get install -y \ 
  5.     "<app runtime> and <dependencies>" \  # add app runtime and required packages 
  6.     && rm -rf /var/lib/apt/lists/* 
  7. # install packages required to run tests    
  8. ONTEST RUN apt-get update && apt-get install -y \ 
  9.            "<test tools> and <dependencies>"    \     # add testing tools and required packages 
  10.            && rm -rf /var/lib/apt/lists/* 
  11. # copy app files 
  12. COPY app app 
  13. COPY run.sh run.sh 
  14. # copy test scripts 
  15. ONTEST COPY tests tests 
  16. # copy "main" test command 
  17. ONTEST COPY test.sh test.sh 
  18. # auto-generated volume for test results 
  19. # ONTEST VOLUME "/var/tests/results" 
  20. # ... EXPOSE, RUN, ADD ... for app and test environment 
  21. # main app command 
  22. CMD [run.sh, "<app arguments>"
  23. # main test command 
  24. ONTEST CMD [/test.sh, "<test arguments>"

點此下載 Dockerfile

如何實現“測試感知容器”

我們相信,Docker應該會將docker-test作為容器管理生命周期中的組成部分。當下我們都需要更為簡便的解決方案,因此我在這里提出一套接近于理想情況的實現辦法。

如之前所提到,Docker擁有ONBUILD這樣一條非常實用的指令。該指令允許我們在已經成功的build之上觸發另一build指令。其基本思路是在運行docker-test命令的同時,使用ONBUILD指令。

以下為docker-test命令的執行流程:

  1. docker-test將在應用程序Dockerfile當中搜索ONBUILD指令,而后……
  2. 利用初始Dockerfile生成一條臨時的Dockerfile.test
  3. 執行docker build -f Dockerfile.test [OPTIONS] PATH,其中包含受docker build命令支持的其它選項:-test將自動被添加至tag選項當中。
  4. 如果構建成功,則執行 docker run -v ./tests/results:/var/tests/results [OPTIONS] IMAGE:TAG-test [COMMAND] [ARG...]
  5. 移除Dockerfile.test文件

那么,為什么不創建一個無需配合ONBUILD指令的Dockerfile.test文件?

這是因為,為了測試正確的鏡像(及標簽),我們需要保證FROM始終在測試目標的image:tag中得到更新。

不過前面提到的方案仍然存在局限——其不適用于“onbuild”鏡像(即用于自動化構建應用的鏡像),例如Maven:onbuild。

下面來看一條簡單的docker-test命令實現流程。其中強調了一大重要概念:docker-test命令應當能夠處理build與run命令選項,同時能夠妥善處理錯誤狀況。

  1. #!/bin/bash 
  2. image="app" 
  3. tag="latest" 
  4. echo "FROM ${image}:${tag}" > Dockerfile.test && 
  5. docker build -t "${image}:${tag}-test" -f Dockerfile.test . && 
  6. docker run -it --rm -v $(pwd)/tests/results:/var/tests/results "${image}:${tag}-test" && 
  7. rm Dockerfile.test 

讓我們把注意力集中在最值得關注的重要部分。

集成測試型容器方案

假設我們的應用程序由數十甚至數百項微服務構建而成,同時假設我們已經擁有一套自動化CI/CD通道,其中每項微服務都由CI進行構建與測試,并在之后被部署到某種環境當中(例如測試、分段或者生產環境)。聽起來不錯,對吧?我們的CI會對各項微服務進行分別測試——運行單元與服務測試(或者API合同測試)。甚至有可能進行微集成測試——即將測試運行在特設的子系統之上(例如使用docker compose)。

但這又會帶來一些新問題:

  • 實際集成測試或者長期運行測試該如何完成(例如性能與壓力測試)?
  • 彈性測試該如何實現(例如‘混亂猴子’測試)?
  • 如何實現安全掃描?
  • 那些需要耗費較長時間且運行在完整操作系統之上的測試與掃描要如何完成?

應該有一種更好的辦法來替代這種直接將新的微服務版本交付至生產環境的作法,我們也需要更為密切的監控手段。

應當存在一類特殊的集成測試容器。這些容器將僅包含測試工具與測試元素:測試腳本、測試數據、測試環境配置等等。為了簡化此類容器的編排與自動化流程,我們應當定義并遵循某些約定并使用元數據標簽(Dockerfile中的LABEL指令)。

集成測試標簽

  • test.type – 測試類型,負責定義integration; 可屬于 integration, performance, security, chaos 或者其它任意文本之一; 此標簽代表其屬于一套集成測試容器
  • test.results – 用于存放測試結果的VOLUME ; 默認位置為 /var/tests/results
  • test.XXX -任何其它相關元數據,僅使用test.后綴名作為標簽名稱

集成測試容器

集成測試容器其實就是一種常規Docker容器,其中不包含任何應用程序邏輯及代碼。它的惟一用途就是創建可重復且可移植的測試流程。以下為建議納入集成測試容器的內容:

  • 測試工具 - Phantom.js, Selenium, Chakram, Gatling, …
  • 測試工具運行時 - Node.js, JVM, Python, Ruby, …
  • 測試管理配置 – 環境變量, 配置文件, 引導腳本, …
  • 測試 -作為經過編譯的軟件包或者腳本文件存在
  • 測試數據 – 任何用于測試的數據文件類型: json, csv, txt, xml, …
  • 測試啟動腳本 -用于運行測試的部分“main”啟動腳本,僅負責創建test.sh并借此啟動該測試工具。

集成測試容器應當運行在全部微服務都已經部署到位的運營環境之下,包括測試、分段或者生產環境。這些容器可與其它服務采取完全一致的部署方式。其利用同樣的網絡層,因此能夠訪問多項其它服務;使用選定的服務發現方法(通常為DNS)。在實際集成測試當中,我們必須對多項服務進行訪問——旨在模擬并驗證自身系統是否能夠在多種不同環境下正常運行。將集成測試納入應用服務容器不僅會增加容器自身體積,同時亦會在各服務之間帶來不必要的依賴性。因此,我們將所有依賴性都限制在集成測試容器當中。一旦測試(以及相關測試工具)被打包在該容器內,我們亦可在包括開發者設備在內的任意環境下重復運行同樣的測試流程。大家還能夠實現回滾,即根據需要運行任意集成測試容器版本。

責任編輯:武曉燕 來源: 數人云博客
相關推薦

2018-11-05 09:23:19

開源Docker容器鏡像

2023-12-05 07:31:26

云容器數字化

2023-04-04 22:50:35

2012-09-04 09:20:26

測試軟件測試探索測試

2014-12-02 10:33:51

2023-10-08 13:47:33

Docker容器

2016-09-21 15:35:45

Javascript單元測試

2023-02-08 18:33:49

SRE探索業務

2011-07-11 22:05:28

筆記本評測

2022-11-25 09:00:00

云計算云原生容器

2024-06-21 10:42:38

Python開發

2016-06-06 14:57:34

CloudCube探索性測試華為

2021-12-29 06:28:23

探索式測試軟件測試開發

2009-07-06 17:08:19

測試JSP容器

2022-12-15 11:26:44

云原生

2022-06-22 09:41:16

接口異常測試

2022-03-10 08:24:17

Docker容器SaaS

2023-04-21 18:36:16

商家開發平臺

2022-12-09 18:58:10

2025-07-23 05:00:00

點贊
收藏

51CTO技術棧公眾號

黄色三级中文字幕| 成人做爰www免费看视频网站| 50一60岁老妇女毛片| 少妇视频在线观看| 国产精品免费看片| 国产高清一区视频| 中文字幕日本视频| 国产精品扒开腿做爽爽爽软件| 亚洲精品国产综合区久久久久久久| 欧美牲交a欧美牲交aⅴ免费真 | 亚洲护士老师的毛茸茸最新章节 | 91视频青青草| 欧美福利在线播放网址导航| 欧美日韩在线播放一区| 给我免费播放片在线观看| 成人h小游戏| 成人精品视频.| 国产欧美日韩最新| 亚洲国产成人无码av在线| 欧美一区91| 国产午夜精品一区二区三区 | www.国产精品一区| 欧美日韩精品一区二区天天拍小说| 日本香蕉视频在线观看| 无遮挡的视频在线观看| 2020国产精品久久精品美国| 99九九视频| 又污又黄的网站| 亚洲一区图片| 久久久久久免费精品| 麻豆一区在线观看| 少妇精品久久久一区二区| 欧美精品一区二区三区蜜桃| а 天堂 在线| 日日夜夜精品| 日本韩国视频一区二区| 激情五月宗合网| 在线观看午夜av| 国产精品久久久久久一区二区三区| 免费精品视频一区| 天堂在线资源网| 国产91在线观看| 亚洲综合av影视| 国产精品老熟女视频一区二区| 日韩精品一区第一页| 日韩av第一页| 国产suv精品一区二区33| 亚洲日本激情| 国语自产精品视频在线看| 中文字幕在线有码| 亚洲有吗中文字幕| 久久在精品线影院精品国产| 老司机福利在线观看| 日韩av久操| 日韩专区在线播放| 免费成人美女女在线观看| 大色综合视频网站在线播放| 亚洲欧美在线一区二区| 中文字幕被公侵犯的漂亮人妻| 神马午夜久久| 亚洲色图激情小说| 人人爽人人爽人人片| 欧美在线观看视频一区| 亚洲精品成人久久| 成人免费毛片糖心| 欧美日中文字幕| 日韩亚洲欧美中文高清在线| 国产一区二区三区视频播放| 中文字幕一区二区av | 国产精品久久久久久久久免费相片| 久久99精品国产99久久| 亚洲 欧美 自拍偷拍| 久久综合色综合88| 视频一区二区综合| 日本美女在线中文版| 亚洲黄一区二区三区| 国产xxxx振车| 日本高清不卡一区二区三区视频 | 99国产精品欲| 国产99久久久久久免费看农村| 国产高清精品一区二区三区| 少妇av在线播放| 久久精品欧美日韩| 中文一区一区三区免费| 日本在线视频网址| 欧美日韩在线影院| 777视频在线| 日韩中文字幕一区二区高清99| 亚洲精品98久久久久久中文字幕| 亚洲综合网在线观看| 日韩国产在线| 久久久天堂国产精品女人| 在线能看的av| 韩国av一区二区三区四区| 国产精品国模大尺度私拍| 三级视频网站在线| 亚洲少妇中出一区| 亚洲熟妇av一区二区三区漫画| 日本欧美一区| 日韩精品专区在线影院重磅| 五级黄高潮片90分钟视频| 国产精品久久久久无码av| 美女脱光内衣内裤视频久久网站| 国产成人精品av| 国产精品伦一区二区三区| 成人永久免费视频| 五月婷婷综合色| gogo久久| 91精品国产美女浴室洗澡无遮挡| 亚洲第九十七页| 午夜精品久久久久久久四虎美女版| 91精品国产91久久久久福利| 一区二区小视频| fc2成人免费人成在线观看播放| 亚洲成人自拍视频| 牛牛精品视频在线| 欧美日韩视频专区在线播放| 日b视频在线观看| 亚洲国产精品91| 国产aⅴ夜夜欢一区二区三区| 成人免费公开视频| 1000精品久久久久久久久| 欧美牲交a欧美牲交aⅴ免费下载| 6080成人| 伦理中文字幕亚洲| 中文字幕日产av| 久久久不卡网国产精品二区| 日韩 欧美 视频| 精品视频在线观看网站| 正在播放国产一区| 国产suv精品一区二区33| 99久久精品国产一区| 日本大胆人体视频| 成人影院网站ww555久久精品| 在线观看国产精品91| 日韩欧美在线观看免费| 国产真实乱偷精品视频| 视频在线观看一区二区三区| 91在线观看免费高清完整版在线观看| 国产福利在线视频| 日韩欧美精品在线观看| 人妻在线日韩免费视频| 亚洲人成免费| 国产一区二区精品免费| 丁香高清在线观看完整电影视频| 日韩欧美成人午夜| 青青操视频在线播放| 国产一区视频导航| 欧美 日韩 国产 在线观看| 91精品店在线| 中文字幕亚洲第一| 国产一级精品毛片| 欧美国产日韩精品免费观看| 久久久精品在线视频| 亚洲理论电影| 日韩免费在线视频| 女人偷人在线视频| 欧美午夜寂寞影院| 欧美色视频一区二区三区在线观看| 理论片日本一区| 天天爱天天做天天操| 国产精品毛片无码| 久久久久久成人精品| 天堂中文在线资源| 一本到不卡免费一区二区| 亚洲欧美视频在线播放| 久久午夜激情| 在线免费观看成人网| 久久伊人影院| 77777亚洲午夜久久多人| 亚洲人午夜射精精品日韩| 日韩欧美在线视频免费观看| 亚洲最大成人综合网| 美女脱光内衣内裤视频久久网站| 国产卡一卡二在线| 精品国产影院| 国产成人精品在线| 亚洲乱亚洲乱妇| 日韩午夜av一区| 国产午夜小视频| 久久九九久精品国产免费直播| 超碰在线播放91| 欧美粗暴jizz性欧美20| 精品一区二区久久久久久久网站| 久久r热视频| 久久精品久久久久久| 黄色aaa大片| 在线观看免费一区| 老湿机69福利| 91啦中文在线观看| 999久久久精品视频| 在线看片一区| 亚洲日本欧美在线| 久久九九热re6这里有精品 | 亚洲高清在线观看一区| 麻豆精品久久| 国产精品69久久| 四虎影视国产在线视频| 日韩精品欧美激情| 国产精品伦一区二区三区| 调教+趴+乳夹+国产+精品| 日本 欧美 国产| 久久在线观看免费| 久久精品一二三四| 天堂av在线一区| 国产 国语对白 露脸 | 国产av不卡一区二区| 日韩电影不卡一区| 91久久精品视频| 欧美性猛交xxx高清大费中文| 欧美xxxx做受欧美| 国产视频在线看| 亚洲精品电影久久久| 国产女人高潮的av毛片| 在线精品视频免费播放| 日韩大片免费在线观看| 亚洲色图视频免费播放| 国产免费一区二区三区网站免费| 成人涩涩免费视频| 日本不卡一区在线| 欧美一级一区| 免费在线观看亚洲视频| 欧美区日韩区| 警花观音坐莲激情销魂小说| 欧美极品中文字幕| 激情五月综合色婷婷一区二区| 国产精品一区二区三区四区在线观看 | 精品国产美女a久久9999| 欧美激情亚洲国产| av免费在线免费观看| 最新日韩中文字幕| 成年人免费在线视频| 日韩女优电影在线观看| 国产日韩一级片| 在线不卡欧美精品一区二区三区| 精品一区二区无码| 日韩欧美第一页| 国产香蕉视频在线| 亚洲不卡一区二区三区| 久久久久久久国产视频| 一区二区三区精品久久久| 久久久久亚洲av片无码| 中文字幕永久在线不卡| 亚洲欧美综合7777色婷婷| 国产无遮挡一区二区三区毛片日本| 国产精品300页| 99re成人精品视频| 一出一进一爽一粗一大视频| 99久久99久久精品免费观看| 大乳护士喂奶hd| 波多野结衣中文字幕一区二区三区 | 黄色正能量网站| 99精品欧美一区二区三区小说| 性一交一黄一片| 成人一区二区三区视频| 超碰男人的天堂| 91网上在线视频| 熟女少妇一区二区三区| 久久久久99精品一区| 极品蜜桃臀肥臀-x88av| 国产精品嫩草影院av蜜臀| 影音先锋男人看片资源| 国产精品高潮久久久久无| 中文字幕乱码av| 一区二区三区中文免费| 日本熟伦人妇xxxx| 亚洲国产成人高清精品| 日本在线视频免费观看| 日韩欧美中文在线| 日韩免费av网站| 欧美丰满高潮xxxx喷水动漫| 精品国产乱码久久久久久蜜臀网站| 日韩欧美一级精品久久| www.爱爱.com| 日韩成人激情视频| 国产露出视频在线观看| 久久亚洲电影天堂| 婷婷电影在线观看| 国产精品视频一| 日韩精品中文字幕吗一区二区| 精品国产免费一区二区三区 | 国产亚洲精品久久久久动| 午夜视频在线看| 国模视频一区二区三区| 黄瓜视频成人app免费| 91在线观看免费网站| 麻豆一区一区三区四区| 少妇免费毛片久久久久久久久| 国产精品久久久久久麻豆一区软件| 久久艹国产精品| 三级一区在线视频先锋| 久久久久久无码精品人妻一区二区| a级精品国产片在线观看| www.涩涩爱| 亚洲h动漫在线| 97视频免费在线| 日韩av网站导航| 97超碰资源站在线观看| 欧美与欧洲交xxxx免费观看 | 国内毛片毛片毛片毛片毛片| 亚洲午夜久久久久| 国产乱码在线观看| 亚洲第一页在线| 麻豆传媒视频在线| 欧洲午夜精品久久久| 亚洲欧美日本国产| 一区二区三区精品99久久| 国产资源在线观看| 国内精品久久久久久| 欧美爱爱视频| 欧美h视频在线| 一区二区影院| 国产不卡av在线| 9l亚洲国产成人精品一区二三| 91精品国产高清自在线| 久久影院午夜精品| 亚洲r级在线观看| 国产桃色电影在线播放| 国产精品福利观看| 成人资源www网在线最新版| 97超级碰在线看视频免费在线看| 久久99成人| 在线成人性视频| 日韩大陆av| 色中色综合成人| 亚洲欧美日韩一区在线观看| 精品视频免费观看| 精品成人免费一区二区在线播放| 91在线观看免费观看| 欧美韩日一区| 91精品啪在线观看麻豆免费| 欧美成人三区| 欧美一区二视频| 无码内射中文字幕岛国片| 成人在线视频一区| 妺妺窝人体色www在线下载| 91精品国产麻豆国产自产在线 | 久久久www成人免费毛片麻豆| 日本一区二区网站| 精品日韩在线观看| 国产最新在线| 亚洲在线视频福利| 在线看片不卡| 中文字幕乱妇无码av在线| 中文字幕一区二区不卡| 中文字幕人妻互换av久久| 在线观看日韩欧美| 国产精品无码久久久久| 一本色道久久99精品综合| 美女视频免费一区| а天堂中文在线资源| 91精品午夜视频| 顶级网黄在线播放| 成人毛片网站| 一本色道久久综合一区| 人妻在线日韩免费视频| 日韩欧美在线视频日韩欧美在线视频 | 久久久久免费av| 亚洲国产日韩在线一区| 亚洲一区二三区| 色噜噜在线播放| 欧洲成人午夜免费大片| 日本一区二区免费高清| 欧美成人黄色网址| 亚洲日本护士毛茸茸| 亚洲风情第一页| 2021久久精品国产99国产精品| 在线观看欧美理论a影院| 午夜在线观看av| 一区二区三区四区不卡视频| 蜜桃视频久久一区免费观看入口| 98精品国产高清在线xxxx天堂| 一区二区三区韩国免费中文网站| www日韩在线观看| 亚洲私人黄色宅男| 天堂在线视频观看| 国产精品久久视频| 欧美久久成人| 极品人妻一区二区三区| 欧美人牲a欧美精品| 欧美另类tv| 日本在线观看一区| 国产一区久久久| wwwwww国产| 久久九九热免费视频| 美女福利一区| 亚洲人视频在线| 亚洲mv在线观看| 伊人免费在线| 久久九九视频| 韩国三级在线一区| 男女视频免费看| 久久综合免费视频影院| 视频小说一区二区| 涩涩网站在线看| 欧美性生交大片免网| 日本天码aⅴ片在线电影网站| 欧美高清视频一区二区三区在线观看| 国产一区视频网站| 欧美三级网站在线观看|