午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁 > 知識庫 > 基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼

基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼

熱門標(biāo)簽:烏海智能電話機(jī)器人 藍(lán)點(diǎn)外呼系統(tǒng) 寧夏房產(chǎn)智能外呼系統(tǒng)要多少錢 威海人工外呼系統(tǒng)供應(yīng)商 貴陽教育行業(yè)電話外呼系統(tǒng) 撫順移動400電話申請 在百度地圖標(biāo)注車輛 做外呼系統(tǒng)的公司違法嗎 400電話申請方案

Selenium Grid介紹

盡管在未來將會推出的Selenium 4.0版本中對Selenium Grid的一些新特性進(jìn)行了說明,但是目前來看官方并沒有太多詳細(xì)文檔供大家參考,所以本書中仍結(jié)合目前被廣泛使用的Selenium Grid 版本進(jìn)行講解。

正如其官網(wǎng)對Selenium Grid的描述,它是一個智能代理服務(wù)器,允許Selenium測試將命令路由到遠(yuǎn)程Web瀏覽器實(shí)例。其目的是提供一種在多臺計(jì)算機(jī)上并行運(yùn)行測試的簡便方法。使用Selenium Grid,一臺服務(wù)器充當(dāng)將JSON格式的測試命令路由到一個或多個已注冊Grid節(jié)點(diǎn)的中樞,以獲得對遠(yuǎn)程瀏覽器實(shí)例的訪問。Hub有一個已注冊服務(wù)器的列表,它可以訪問并允許控制這些實(shí)例。Selenium Grid允許我們在多臺計(jì)算機(jī)上并行運(yùn)行測試,并集中管理不同的瀏覽器版本和瀏覽器配置。

圖1 Selenium Grid的組件構(gòu)成圖

如圖1所示,可以看到Selenium Grid主要由2部分構(gòu)成,即:Hub和Nodes。您可以使用Python、Java、C#等語言編寫測試Selenium腳本,每個Selenium Grid僅有一個Hub,客戶端腳本可以指定連接到該Hub(主控節(jié)點(diǎn)或者叫集線器),Hub接收客戶端腳本的運(yùn)行測試請求,同時將這些測試請求分發(fā)到已注冊的一個或多個節(jié)點(diǎn)去執(zhí)行并收集運(yùn)行結(jié)果。Selenium Grid中可以一個或多個Node(節(jié)點(diǎn))。作為節(jié)點(diǎn)的機(jī)器不必與Hub或其他Node具有相同的操作系統(tǒng)或相同的瀏覽器。即:某個Node節(jié)點(diǎn)可能是Windows操作系統(tǒng),而在該系統(tǒng)上安裝的是Internet Explorer瀏覽器,另外的Node節(jié)點(diǎn)可能用的是Linux、Mac操作系統(tǒng),而它們安裝的瀏覽器可能是Firefox、Safari、Chrome等。這些Node節(jié)點(diǎn)的設(shè)置結(jié)合測試來講,就是要看您想做那些操作系統(tǒng)、瀏覽器版本的兼容性測試了,在實(shí)際工作中請結(jié)合測試執(zhí)行計(jì)劃和策略進(jìn)行選擇。

基于Docker的Selenium Grid的相關(guān)配置

在Docker Hub中提供了Selenium Grid的相關(guān)鏡像文件可供使用,如圖2所示。

圖2 Selenium Grid的相關(guān)鏡像資源

這里,我們應(yīng)用“docker pull”命令分別將這3個鏡像拉取下來,對應(yīng)的拉取命令如下:

docker pull selenium/hub
docker pull selenium/node-chrome
docker pull selenium/node-firefox

鏡像文件拉取到本地后,您可以使用“docker images”命令查看一下相關(guān)鏡像的信息,如圖3所示。

圖3 Selenium Grid的相關(guān)鏡像信息

這里,先來測試一下Hub與Node節(jié)點(diǎn)之間的連通性。

啟動Hub,如圖4所示。

圖4 創(chuàng)建并啟動hub容器

創(chuàng)建并啟動 chromenode容器節(jié)點(diǎn),如圖5所示。

圖5 創(chuàng)建并啟動chromenode容器節(jié)點(diǎn)

創(chuàng)建并啟動 firefoxnode容器節(jié)點(diǎn),如圖6所示。

圖6 創(chuàng)建并啟動firefoxnode容器節(jié)點(diǎn)

接下來,在本機(jī)瀏覽器地址欄輸入“http://localhost:4444/grid/console”,即:打開Selenium Grid的控制臺,將出現(xiàn)圖7所示頁面。

圖7 Grid Console控制臺信息

從圖7可知,當(dāng)前使用的Selenium Grid 版本為3.141.59版本,對應(yīng)連接到Hub的兩個Node節(jié)點(diǎn)分別是IP為172.17.0.4的Linux操作系統(tǒng)使用的是Firefox 75.0版本的瀏覽器和IP為172.17.0.3的Linux操作系統(tǒng)使用的是Chrome 81.0.4044.92版本的瀏覽器。在默認(rèn)情況下Hub節(jié)點(diǎn)使用的是4444端口,而Node節(jié)點(diǎn)在本例中使用的是5555端口,如果在同一個容器中出現(xiàn)端口沖突等情況,則您需要根據(jù)實(shí)際情況進(jìn)行調(diào)整設(shè)置其他端口以避免端口沖突情況發(fā)生。

基于Docker+Selenium Grid的案例演示

下面,筆者將結(jié)合Bing搜索案例在Chrome和Firefox瀏覽器上實(shí)現(xiàn)兼容性測試。在經(jīng)過前面Selenium、Docker和Selenium Grid相關(guān)知識的學(xué)習(xí)后,您想到了什么?是不是可以通過使用Docker+Selenium Grid就能夠完成基于不同瀏覽器的兼容性測試呢?是的,這確實(shí)是個好主意。

但是,如果讓Selenium測試腳本在不同瀏覽器中運(yùn)行,又需要做些什么呢?

在腳本設(shè)計(jì)上,您需要做一些改變,通常情況下,要在腳本的運(yùn)行時指定主機(jī)和端口,腳本類似于以下方式:

import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
 
driver = webdriver.Remote(
    command_executor='http://192.168.1.102:4444/wd/hub',
    desired_capabilities=DesiredCapabilities.CHROME)
 
base_url = 'https://cn.bing.com'
driver.get(base_url)
driver.save_screenshot('chrome.png')
driver.close()

通常在執(zhí)行時,只需指定Hub的地址(即:http://192.168.1.102:4444/wd/hub)。這里宿主機(jī)的IP如圖8所示, Hub會將腳本自動分配給Node節(jié)點(diǎn)去執(zhí)行。

圖8 宿主機(jī)的IP地址信息

- command_executor參數(shù):該參數(shù)為選填參數(shù),可指定遠(yuǎn)程服務(wù)器URL字符串或自定義遠(yuǎn)程連接,默認(rèn)為“http://127.0.0.1:4444/wd/hub”。

- desired_capabilities參數(shù):該參數(shù)為必填參數(shù),可根據(jù)情況配置啟動瀏覽器會話時請求功能的字典。這里我們應(yīng)用的是“DesiredCapabilities.CHROME”,您可以查看其對應(yīng)源代碼如下所示。

class DesiredCapabilities(object):
    """
    Set of default supported desired capabilities.
    Use this as a starting point for creating a desired capabilities object for
    requesting remote webdrivers for connecting to selenium server or selenium grid.
    Usage Example::
        from selenium import webdriver
        selenium_grid_url = "http://198.0.0.1:4444/wd/hub"
        # Create a desired capabilities object as a starting point.
        capabilities = DesiredCapabilities.FIREFOX.copy()
        capabilities['platform'] = "WINDOWS"
        capabilities['version'] = "10"
        # Instantiate an instance of Remote WebDriver with the desired capabilities.
        driver = webdriver.Remote(desired_capabilities=capabilities,
                                  command_executor=selenium_grid_url)
    Note: Always use '.copy()' on the DesiredCapabilities object to avoid the side
    effects of altering the Global class instance.
    """
 
    FIREFOX = {
        "browserName": "firefox",
        "acceptInsecureCerts": True,
    }
 
    INTERNETEXPLORER = {
        "browserName": "internet explorer",
        "version": "",
        "platform": "WINDOWS",
    }
 
    EDGE = {
        "browserName": "MicrosoftEdge",
        "version": "",
        "platform": "ANY"
    }
 
    CHROME = {
        "browserName": "chrome",
        "version": "",
        "platform": "ANY",
    }
 
    OPERA = {
        "browserName": "opera",
        "version": "",
        "platform": "ANY",
    }
 
    SAFARI = {
        "browserName": "safari",
        "version": "",
        "platform": "MAC",
    }
 
    HTMLUNIT = {
        "browserName": "htmlunit",
        "version": "",
        "platform": "ANY",
    }
 
    HTMLUNITWITHJS = {
        "browserName": "htmlunit",
        "version": "firefox",
        "platform": "ANY",
        "javascriptEnabled": True,
    }
 
    IPHONE = {
        "browserName": "iPhone",
        "version": "",
        "platform": "MAC",
    }
 
    IPAD = {
        "browserName": "iPad",
        "version": "",
        "platform": "MAC",
    }
 
    ANDROID = {
        "browserName": "android",
        "version": "",
        "platform": "ANDROID",
    }
 
    PHANTOMJS = {
        "browserName": "phantomjs",
        "version": "",
        "platform": "ANY",
        "javascriptEnabled": True,
    }
 
    WEBKITGTK = {
        "browserName": "MiniBrowser",
        "version": "",
        "platform": "ANY",
    }
 
    WPEWEBKIT = {
        "browserName": "MiniBrowser",
        "version": "",
        "platform": "ANY",
    }

從DesiredCapabilities類的源碼可知“DesiredCapabilities.CHROME”是該類定義的一個字典對象。

這里筆者采用多線程的方式,實(shí)現(xiàn)分別在Chrome和Firefox瀏覽器執(zhí)行Bing搜索業(yè)務(wù),對應(yīng)腳本如下。

Grid_Test.py文件內(nèi)容:

from threading import Thread
from selenium import webdriver
from time import sleep,ctime
from selenium.webdriver.common.by import By
 
def Test_Bing(Host, Browser):
    caps = {'browserName': Browser}  
    driver = webdriver.Remote(command_executor=Host, desired_capabilities=caps)
    driver.get('http://www.bing.com')
    driver.find_element(By.ID,'sb_form_q').send_keys('異步社區(qū)')
    driver.find_element(By.ID,'sb_form_go').click()
    PicName=Browser+'_result'+'.png'
    driver.save_screenshot(PicName)
    assert ('沒有與此相關(guān)的結(jié)果' not in driver.page_source)
    sleep(2)
    driver.close()
 
if __name__ == '__main__':
    pcs = {'http://192.168.1.102:4444/wd/hub': 'chrome',
             'http://localhost:4444/wd/hub': 'firefox'
             }
    threads = []
    tds=range(len(pcs))
 
    # 創(chuàng)建線程
    for host, browser in pcs.items():
        t = Thread(target=Test_Bing, args=(host, browser))
        threads.append(t)
 
    # 啟動線程
    for i in tds:
        threads[i].start()
    for i in tds:
        threads[i].join()

從上面的腳本,大家可以看到創(chuàng)建了一個名稱為Test_Bing()的函數(shù),其包含兩個參數(shù),分別是主機(jī)和瀏覽器。函數(shù)的執(zhí)行意圖就是根據(jù)遠(yuǎn)程服務(wù)器URL字符串和傳入的瀏覽器名稱字符串,在對應(yīng)的瀏覽器中執(zhí)行搜索業(yè)務(wù),且搜索詞為“異步社區(qū)”,對執(zhí)行結(jié)果進(jìn)行截圖,截圖的名稱為對應(yīng)瀏覽器名稱+“_result.jpg”文件,并對搜索后的結(jié)果進(jìn)行斷言。需要說明的是,這里對結(jié)果進(jìn)行截圖的目的不僅僅是想看一下結(jié)果,還有一個很重要的原因是在使用Selenium Grid時,執(zhí)行測試過程中不會出現(xiàn)瀏覽器,所以您看不到執(zhí)行過程,為了證明結(jié)果的正確性我們也需要截一個圖證明其確實(shí)是工作了并且執(zhí)行是正確的。如果您還想看到不同的容器在執(zhí)行過程中的界面,也可以使用VNC Viewer連接到對應(yīng)容器(但需下載對應(yīng)的selenium/node-firefox-debug和selenium/node-chrome-debug鏡像文件,debug結(jié)尾的鏡像都帶有VNC服務(wù)端,本機(jī)安裝VNC客戶端,即可遠(yuǎn)程連接。5900端口為VNC Viewer的監(jiān)聽端口,故做了一個端口映射),如圖9和圖10所示。

圖9 創(chuàng)建并啟動Debug版本的節(jié)點(diǎn)容器

圖10 VNC Viewer觀察節(jié)點(diǎn)容器的腳本執(zhí)行情況

事實(shí)上這對于測試工作并沒有太多意義,故不做太多文字贅述。

在主函數(shù)中,定義了一個包含2個元素的字典,大家可以看到筆者使用了2種同一個地址不同的表示方式(宿主機(jī)的IP地址為192.168.1.102),而“l(fā)ocalhost”也表示本機(jī),即宿主機(jī)。那么為什么不都用“192.168.1.102”或者“l(fā)ocalhost”呢?這是因?yàn)樽值涞逆I(Key)是不允許重復(fù)的。接下來創(chuàng)建了一個線程列表,以pcs字典的鍵、值作為Test_Bing()函數(shù)的參數(shù),并添加到線程列表。而后啟動線程列表中的各線程。

在運(yùn)行腳本前,需保證創(chuàng)建并啟動Hub和Node節(jié)點(diǎn)容器(注:這里筆者應(yīng)用的為非Debug版本Node鏡像),如圖11所示。

圖11 創(chuàng)建并啟動Hub和Node節(jié)點(diǎn)容器

腳本執(zhí)行完成后,將會生成“chrome_result.jpg”和“firefox_result.jpg”這2個圖片文件,如圖12所示。

圖12 腳本執(zhí)行完成后生成的圖片文件信息

如圖13和圖14所示,在本次兼容性測試中大家可以看到這2個瀏覽器都執(zhí)行了相同的Bing搜索業(yè)務(wù),它們的頁面展示、布局、內(nèi)容基本是相同的,但是卻存在2個小的問題,就是在Chrome瀏覽器中搜索到的結(jié)果為“855,000 Results”,而Firefox瀏覽器中搜索到的結(jié)果為“859,000 Results”,它們是不一致的。另一個小問題是,在Firefox瀏覽器會顯示“Sign in”和一個登陸圖標(biāo),而在Chrome瀏覽器中卻沒有。理論上來講這是2個嚴(yán)重級別較低的小Bug,但筆者建議針對這兩個小的差異,需要和產(chǎn)品、研發(fā)的同學(xué)再確認(rèn)一下,產(chǎn)品、測試、研發(fā)應(yīng)統(tǒng)一、明確需求,明確后再修改需求或代碼,使兩者保持一致。

圖13 chrome_result.jpg圖片文件信息

圖14 firefox_result.jpg圖片文件信息

到此這篇關(guān)于基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼的文章就介紹到這了,更多相關(guān)Docker Selenium Grid測試技術(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:慶陽 那曲 朝陽 銅川 泰州 周口 松原 蕪湖

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼》,本文關(guān)鍵詞  基于,Docker+Selenium,Grid,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于基于Docker+Selenium Grid的測試技術(shù)應(yīng)用示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲伦理中文字幕| 亚洲片在线资源| 日本不卡视频在线播放| 乱人伦xxxx国语对白| 亚洲ⅴ国产v天堂a无码二区| 久久久久看片| 婷婷亚洲久悠悠色悠在线播放| 久久91精品国产91久久跳| 性一交一乱一伧国产女士spa| 亚洲一级Av无码毛片久久精品| 久久婷婷一区| 色综合婷婷久久| 日韩精品中文字幕在线播放| 日本91av在线播放| 亚洲综合20p| 国产探花视频在线播放| 亚洲图片欧美日韩| 中文字幕在线不卡| 在线观看日韩欧美| 91黄色在线看| 国产午夜精品无码| 久久精品欧美日韩| 一区二区三区四区在线观看视频| 久久综合色视频| 国产高清视频免费| 亚洲精品视频在线观看网站| 成人精品网站在线观看| 免费一级做a爰片久久毛片潮| 国产精品影音先锋| 亚洲国产成人爱av在线播放| 99精品视频网站| 国产亚洲自拍av| 青青草国产精品97视觉盛宴| 欧美视频日韩视频在线观看| 不卡一区二区三区视频| 人妻丰满熟妇av无码久久洗澡| 日韩精品国产欧美| 亚洲国产成人精品视频| 91亚洲精品一区| 少妇丰满尤物大尺度写真| 美女尤物久久精品| 亚洲成人久久网| 99精品一区二区三区的区别| 国产女18毛片多18精品| 欧美午夜片在线观看| 91久久精品一区| 国产一二三四视频| 亚洲啪啪综合av一区二区三区| 国产精品视频播放| 特级西西人体wwwww| 99r精品视频| 7777精品久久久大香线蕉| 亚洲影院高清在线| 69精品无码成人久久久久久| 久久久亚洲国产美女国产盗摄| 91精品国产一区| 亚洲精品久久一区二区三区777| 免费成人av资源网| 久久视频免费观看| xx欧美撒尿嘘撒尿xx| 日本成人中文字幕| 亚洲欧美日韩高清| 超碰人人草人人| 国产在线视频二区| 国产在线麻豆精品观看| 欧美成人合集magnet| 韩国三级视频在线观看| 久久久久久久网| 97在线视频免费| 久久久久久久久久久国产精品| 天天操天天爱天天爽| 国产专区第一页| 亚洲图片小说视频| 欧美亚日韩国产aⅴ精品中极品| 亚洲精品一区二区毛豆| 日韩欧美不卡视频| 欧美日韩中文字幕日韩欧美| 久久久免费看| 亚洲国产精品欧美久久| 久久久精品一区| 日韩综合第一页| 国产精品久久久久精k8| 91久久精品国产91性色| 圆产精品久久久久久久久久久| 精品视频一区二区不卡| 国产黄色激情视频| 丁香啪啪综合成人亚洲小说 | 精品在线视频一区| 中文字幕精品久久| 久久久久久久久久影视| 亚洲三级在线观看| 999精品视频一区二区三区| 蜜桃导航-精品导航| 麻豆视频在线观看| 亚洲欧美日韩中文播放 | 欧美精品乱人伦久久久久久| 国产在线精品91| 99re这里只有精品6| 99中文字幕| 国产无遮挡呻吟娇喘视频| 欧美成人午夜电影| 三级网站免费看| 91日韩一区二区三区| 亚洲字幕在线观看| 一级黄色片免费看| 色综合男人天堂| www.av成人| 亚洲精品一区二区精华| 亚洲av片不卡无码久久| 一区二区高清视频在线观看| 亚洲高清视频一区二区| 国产免费福利视频| 亚洲精品福利在线观看| 亚洲精品一二三四| 91福利社在线观看| 91精品国产三级| 91福利社在线观看| 天天操精品视频| 久久综合狠狠综合久久激情| 亚洲v国产v在线观看| 国产一区不卡在线| 国产欧美一区二区视频| 日韩精品色哟哟| 亚洲最大av网| 日韩黄色免费网站| 99精彩视频| 久久99精品国产.久久久久久| 久久国产精品一区二区三区| 另类小说视频一区二区| 亚洲精品免费av| 精品亚洲porn| 一区二区成人国产精品 | 手机在线观看日韩av| 欧美中文一区二区三区| 在线免费观看日韩av| 欧亚洲嫩模精品一区三区| 天堂久久久久久| 精品视频免费在线| 内射中出日韩无国产剧情| 中文字幕欧美视频在线| 在线观看国产亚洲| 欧美激情亚洲另类| 一级做a爰片久久毛片16| 欧美日韩在线精品| 国产成人综合在线| 色一情一区二区三区| 国产成人一区二区三区电影| 色哟哟在线观看一区二区三区| 亚洲影院一区二区三区| 国产欧美日韩综合精品二区| 久久久久国产精品一区三寸| 91淫黄看大片| 国产在线播放不卡| 精品久久久影院| 91在线小视频| 日本a级c片免费看三区| 色www免费视频| 精品国偷自产在线| 久久一二三四| 日韩精品视频一区二区| 国产综合视频在线观看| 精品国产百合女同互慰| 国产欧美一区二区三区在线看蜜臀| 亚洲国产www| 久久久久久激情| 精品视频在线观看一区| 国产精品av在线播放| 欧美日韩成人一区二区| 天堂中文在线资源| av观看免费在线| 91精品国产高清| 亚洲黄色免费网站| 国产视频在线一区| 美女av免费观看| 色系网站成人免费| 国产成人精品片| 18禁免费无码无遮挡不卡网站| 成人av资源在线播放| 亚洲激情校园春色| aa片在线观看视频在线播放| 26uuu久久噜噜噜噜| 一级特黄曰皮片视频| 欧洲永久精品大片ww免费漫画| 久久久久久夜| 国产中文av在线| 亚洲乱码国产乱码精品天美传媒| 国产精品久久久久久久久久免费 | 国产 日韩 欧美 综合| 国产精品无码一本二本三本色| 热99久久精品| 中文字幕乱码久久午夜不卡 | 久久久久久激情| 99精品人妻少妇一区二区| 中文字幕9999| 久久精品午夜| av手机在线播放| 欧美不卡在线播放| 91色精品视频在线| 欧美性猛交xxxx乱大交3| 麻豆91精品91久久久| 亚洲一二三区精品| 米奇精品一区二区三区在线观看| 亚洲卡通欧美制服中文| 亚洲国产精品自拍视频| 午夜精品亚洲一区二区三区嫩草| 欧美高清你懂得| 欧美国产日韩一二三区| 国产麻豆精品theporn| 天天综合在线视频| 亚洲欧美激情在线观看| 久久久黄色大片| 日韩网站在线播放| 亚洲黄色av片| 三年中文高清在线观看第6集| www国产精品com| 午夜亚洲国产au精品一区二区| 国产精品探花视频| 亚洲精品国产精品国自产观看| 亚洲网站视频福利| 亚洲视频一二区| 久久在线视频精品| 最新av网址在线观看| 色婷婷综合成人av| 精品乱人伦小说| 亚洲成人精品在线观看| 天堂av2024| 中国黄色片一级| 欧美精品激情在线观看| 精品视频1区2区| 91麻豆.com| 97人人爽人人爽人人爽| 亚洲图色在线| 91国产精品电影| 欧美日韩一区国产| 欧美日韩在线观看视频| 欧美午夜精品久久久久久久| 欧美日韩一区二区免费在线观看| 午夜一区二区三区视频| 性欧美疯狂xxxxbbbb| 国产精品女同一区二区三区| 国产凹凸在线观看一区二区| 亚洲国产日韩在线观看| 久久国产精品二区| 亚洲图片欧美另类| 欧美精品亚洲| 日韩美女在线观看| 7777女厕盗摄久久久| 欧美激情在线一区二区| 精品无码一区二区三区的天堂| 深爱五月综合网| 四虎影院一区二区| 久久久99爱| 国产免费高清一区| 国产欧美精品一区二区三区-老狼| 国产成人精品免高潮费视频| 97视频在线观看成人| 韩剧1988免费观看全集| 91精品福利在线一区二区三区| 欧美性色xo影院| 国产一区二区三区蝌蚪| 亚洲一级中文字幕| 久久久无码中文字幕久...| 高清国产在线一区| 久久资源免费视频| 日韩一区和二区| 日韩成人av影视| 国产伦理吴梦梦伦理| 国产成人在线观看网站| 一级黄色片网址| 国产精品国产三级国产传播| 欧美日韩国产精品综合| 亚洲影院在线播放| 污污的视频网站在线观看| 成人做爰视频网站| 国产日韩欧美在线观看视频| 日本三级欧美三级| 欧美一级片在线视频| 久久久高清视频| 国产3p露脸普通话对白| 免费看av软件| 日韩av在线一区二区三区| 亚洲伊人久久大香线蕉av| 欧美在线视频a| 在线看欧美日韩| 欧美视频免费在线| 成人欧美一区二区三区黑人麻豆| 欧美激情综合在线| 综合分类小说区另类春色亚洲小说欧美 | 在线成人av网站| caoporn国产一区二区| 久久国产精品免费| 黄色av网址在线| www.五月激情| 日本精品在线免费观看| 亚洲综合123| 色国产在线视频| 91视频这里只有精品| 香蕉精品视频在线| 免费看污黄网站| 最近中文字幕无免费| 国产亚洲小视频| 人妻丰满熟妇av无码区hd| www.日韩精品| 一区二区成人在线观看| 欧美亚洲国产怡红院影院| 欧美乱妇15p| 亚洲国产欧美一区二区三区久久| 7777女厕盗摄久久久| 国产精品无人区| 9人人澡人人爽人人精品| 成人在线免费看视频| 91视频综合网| 91蜜桃视频在线观看| 99久久久免费精品| 中文字幕丰满乱子伦无码专区| 亚洲国产日韩一区无码精品久久久| 久久影院一区二区| 超碰福利在线观看| 成人黄色小视频在线观看| 色欲av伊人久久大香线蕉影院| 国产大片免费看| 一区二区免费在线观看视频| 五月婷婷欧美激情| 久久精品一区二区三| 日本一区二区三区精品| 亚洲调教欧美在线| 国产精品果冻传媒| 国产成人免费观看网站| 动漫精品一区一码二码三码四码| youjizz在线视频| 天堂午夜影视日韩欧美一区二区| 国产精品1区二区.| 中文字幕在线播放不卡一区| 一区二区三区不卡视频| 国产精品不卡一区二区三区| 成人毛片视频在线观看| 欧美国产一区视频在线观看| 亚洲无人区一区| 欧洲亚洲精品在线| 欧美一区二区三区视频免费播放 | 成人中文字幕电影| 国产成人在线免费| 色8久久人人97超碰香蕉987| 欧美精品18videos性欧| 欧美影视一区二区| 欧美一级片免费播放| 99在线观看视频免费| 久久精品一区二区三区不卡免费视频| 97人摸人人澡人人人超一碰| 免费成人av网站| 欧美不卡在线播放| 最新在线黄色网址| 26uuu国产| 老熟妇精品一区二区三区| 秋霞网一区二区三区| 中国女人真人一级毛片| 麻豆精品国产91久久久久久| 色94色欧美sute亚洲线路二| 国产97在线亚洲| 狠狠干 狠狠操| 女人黄色一级片| 性插视频在线观看| 亚洲一区二区精品久久av| 亚洲午夜久久久影院| 久久人人97超碰人人澡爱香蕉| 三年中国国语在线播放免费| 三级视频网站在线观看| 黄色a一级视频| 久久久久在线视频| 日韩国产一区二| 亚洲欧洲日韩综合一区二区| 欧美日韩免费高清一区色橹橹| 日韩久久午夜影院| 国产精品人成电影在线观看| 国产另类第一区| 天堂√在线观看一区二区| 国产美女无遮挡网站| 久久久久亚洲av成人无码电影| 亚洲欧美国产高清va在线播放| 亚洲影院理伦片| 久久久久久久久久久久av| 日韩av图片| 99色精品视频| 国产精品无码自拍| www.51色.com| 午夜影院免费在线观看| 免费一级欧美片在线观看| ㊣最新国产の精品bt伙计久久| 亚洲国产日韩精品在线| 97香蕉超级碰碰久久免费软件| 国产精品视频一区国模私拍| 国产黄色激情视频| 亚洲熟女少妇一区二区| 免费看日韩av| 欧美日韩一区二区三区免费看| 成人动漫视频在线观看免费| 亚洲天堂小视频| 天堂一区二区在线| 欧美一级一区二区| 久久av一区二区三区漫画| 欧美日韩在线观看成人| 粉嫩aⅴ一区二区三区四区五区| 日韩欧美www| 精品视频免费观看| 四虎永久免费在线观看| 亚洲成a人片在线| 亚洲品质自拍视频| 中文字幕亚洲综合久久筱田步美| 国产999精品久久久| 午夜免费高清视频|