• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Android自動化測試工具鏈的設(shè)計與實現(xiàn)

    2018-11-30 01:46:54蔡維婷黎偉健
    計算機應(yīng)用與軟件 2018年11期
    關(guān)鍵詞:檢測

    蔡維婷 黎偉健 范 敏

    (中移互聯(lián)網(wǎng)有限公司品質(zhì)管理部 廣東 廣州 510640)

    0 引 言

    由于產(chǎn)品敏捷開發(fā)和版本快速迭代的需要,在移動互聯(lián)網(wǎng)應(yīng)用的開發(fā)過程中,必然存在大量重復(fù)的測試工作。目前,已有多種支持產(chǎn)品開發(fā)的測試工具,但存在測試流程不夠連貫、測試工具不相關(guān)聯(lián)的問題。因此,有必要在產(chǎn)品持續(xù)集成的基礎(chǔ)上實施進一步的自動化措施,以系統(tǒng)化方式管理產(chǎn)品開發(fā)過程,提高產(chǎn)品開發(fā)質(zhì)量和效率。本文以Android客戶端開發(fā)為例,闡述一種產(chǎn)品開發(fā)過程中“一鍵式”自動化測試工具鏈的設(shè)計和解決方案。

    1 概 述

    與產(chǎn)品開發(fā)相關(guān)的測試一般包括單元測試、代碼規(guī)范檢查和功能測試等[1-2]。在持續(xù)集成的開發(fā)環(huán)境中,部署自動化測試流程是保障開發(fā)質(zhì)量和效率的重要措施[3-4]。對于Android應(yīng)用開發(fā),業(yè)界已有開源的持續(xù)集成平臺[5-6]、開發(fā)構(gòu)建工具[7]和自動化測試框架[8-10]。開發(fā)人員可基于JUnit單元測試框架驗證代碼內(nèi)部邏輯[11-12],使用Findbugs、Checkstyle、PMD等代碼規(guī)范檢查工具評審代碼質(zhì)量[13],運用自動化測試框架對產(chǎn)品功能進行黑盒測試[14-15]。

    開發(fā)過程需要經(jīng)過反復(fù)的測試驗證。然而,目前所使用的測試工具之間相互獨立,測試環(huán)節(jié)仍然需要由開發(fā)人員控制操作,對開發(fā)效率而言存在一定的局限性;并且,代碼質(zhì)量由開發(fā)人員自行把控,代碼提交前沒有經(jīng)過統(tǒng)一、規(guī)范的自動化檢測流程,不利于版本的穩(wěn)定迭代。為此,本文提出一種應(yīng)用于開發(fā)過程的自動化測試工具鏈,便于開發(fā)人員在開發(fā)過程中實現(xiàn)多項測試需求。開發(fā)人員只需一鍵觸發(fā)即可在持續(xù)集成的開發(fā)環(huán)境下,完成項目構(gòu)建、單元測試、靜態(tài)代碼檢查、功能測試、版本管理等功能。

    2 方案設(shè)計

    2.1 架構(gòu)設(shè)計

    本文提出的測試工具鏈系統(tǒng)主要由以下各部分構(gòu)成:

    (1) 持續(xù)集成平臺(Jenkins):系統(tǒng)核心,控制自動化流程的執(zhí)行;

    (2) 構(gòu)建工具(Ant):在Jenkins平臺執(zhí)行Ant指令集,調(diào)用代碼編譯、單元測試、代碼規(guī)范檢查、功能測試等構(gòu)建任務(wù)腳本;

    (3) 單元測試框架(JUnit):源代碼中嵌入的測試用例,被Ant構(gòu)建工具調(diào)用;

    (4) 代碼規(guī)范檢查插件(Fingbugs/Findsecbugs、Checkstyle、PMD):被Ant構(gòu)建工具調(diào)用,以檢查源代碼與設(shè)定代碼規(guī)范間的差異;

    (5) 自動化測試框架(Robotium):使用其Solo類創(chuàng)建的自動化測試應(yīng)用,被Ant指令調(diào)用執(zhí)行;

    (6) 版本管理工具(SVN):包括SVN服務(wù)器VisualSVN Server,用于分配版本倉庫和配置用戶權(quán)限;以及SVN客戶端TortoiseSVN,用于開發(fā)版本的更新和同步。

    系統(tǒng)架構(gòu)如圖1所示。

    圖1 產(chǎn)品開發(fā)過程自動化測試系統(tǒng)架構(gòu)

    2.2 流程設(shè)計

    當Android開發(fā)人員將代碼提交至SVN服務(wù)器,系統(tǒng)即以自動化方式執(zhí)行測試流程:SVN服務(wù)器即時遠程觸發(fā)Jenkins持續(xù)集成平臺對開發(fā)項目的構(gòu)建;通過調(diào)用Ant工具進行項目代碼編譯,生成開發(fā)應(yīng)用;調(diào)用JUnit單元測試及Fingbugs/Checkstyle/PMD代碼規(guī)范檢查工具,生成檢測報告;構(gòu)建成功后,平臺將開發(fā)代碼及代碼檢測結(jié)果增量提交至SVN服務(wù)器,并將被測應(yīng)用部署在測試環(huán)境;同時激活已開啟的手機模擬器或測試終端,啟動關(guān)鍵功能的Robotium自動化測試,并將測試代碼及功能測試結(jié)果增量提交至SVN服務(wù)器。

    自動化流程以任務(wù)流方式部署在Jenkins平臺,分別完成代碼檢測及其結(jié)果入庫、功能測試及其結(jié)果入庫四項任務(wù),流程如圖2所示。其中:將代碼檢測結(jié)果提交任務(wù)和功能測試任務(wù)設(shè)定為代碼檢測項目的下游任務(wù),即當代碼檢測任務(wù)成功完成后,將并行觸發(fā)代碼檢測結(jié)果提交和功能測試;將功能測試結(jié)果提交任務(wù)設(shè)定為功能測試任務(wù)的下游任務(wù)。

    圖2 自動化測試工具鏈流程

    (1) 代碼檢測任務(wù):當開發(fā)人員提交代碼更新,代碼檢測任務(wù)被遠程觸發(fā)。首先檢測流程狀態(tài)標識,若該流程當前有被其他開發(fā)人員提交的任務(wù)在運行,則將新觸發(fā)的任務(wù)置于等待狀態(tài),以避免運行相同的流程造成Jenkins工作空間沖突。當輪詢檢測到流程處于可執(zhí)行狀態(tài)時立即依次執(zhí)行代碼構(gòu)建、單元測試和代碼掃描。如果構(gòu)建失敗,Jenkins系統(tǒng)發(fā)送郵件通知開發(fā)人員,流程結(jié)束;如果構(gòu)建成功,將觸發(fā)代碼檢測結(jié)果提交入庫,并觸發(fā)自動化測試任務(wù)。代碼檢測任務(wù)使用參數(shù)方式將構(gòu)建號分別傳遞給代碼檢測提交和功能測試任務(wù),以便為代碼檢測任務(wù)的構(gòu)建日志入庫做準備。

    (2) 代碼檢測結(jié)果提交:當代碼檢測任務(wù)完成后,開發(fā)代碼及其檢測結(jié)果將被提交入庫。根據(jù)Jenkins日志存儲路徑以及從上游代碼檢測任務(wù)傳遞的構(gòu)建號參數(shù)作為子目錄,獲取任務(wù)構(gòu)建日志。將工作空間中的代碼、生成的報告、構(gòu)建日志等內(nèi)容增量提交至SVN,以開發(fā)項目名稱及構(gòu)建號作為提交備注。

    (3) 功能測試任務(wù):當代碼檢測任務(wù)完成后,與代碼檢測結(jié)果提交任務(wù)并行的功能測試任務(wù)被觸發(fā)。啟動Android測試設(shè)備或模擬器,安裝被測應(yīng)用,開始自動化功能測試。若檢測到測試設(shè)備未能正常連接,Jenkins系統(tǒng)發(fā)送功能測試失敗的郵件通知,流程結(jié)束。功能測試任務(wù)使用參數(shù)方式將構(gòu)建號傳遞給功能測試結(jié)果提交任務(wù),以便為功能測試任務(wù)的構(gòu)建日志入庫做準備。

    (4) 功能測試結(jié)果提交:當功能測試任務(wù)完成后,測試結(jié)果被提交入庫。根據(jù)Jenkins日志存儲路徑以及從上游功能測試任務(wù)傳遞的構(gòu)建號參數(shù)作為子目錄,獲取任務(wù)執(zhí)行日志。將工作空間中的功能測試代碼、生成的測試報告、運行日志等內(nèi)容增量提交至SVN服務(wù)器,以自動化測試項目名稱及構(gòu)建號作為提交備注。將流程狀態(tài)標識設(shè)置為結(jié)束狀態(tài),流程結(jié)束。系統(tǒng)最后將流程結(jié)束郵件發(fā)送給開發(fā)人員。

    3 方案部署

    本方案的自動化測試工具鏈系統(tǒng)實現(xiàn)Jenkins+ SVN+Ant+JUnit+Fingbugs(Findsecbugs)/Checkstyle/PMD+Robotium測試平臺和工具的連接,連接圖如圖3所示。工具鏈經(jīng)部署連接后,將在服務(wù)器后臺運行,無需人工干預(yù)。開發(fā)人員可通過Jenkins平臺實時查看流程運行狀態(tài),也可在收到系統(tǒng)發(fā)出的測試結(jié)束郵件通知后查看測試結(jié)果。

    圖3 工具鏈連接圖

    3.1 本地代碼與SVN服務(wù)器間的連接

    開發(fā)人員通過TortoiseSVN客戶端,將本地開發(fā)項目的遠程路徑定位至VisualSVN服務(wù)器,用于開發(fā)代碼的同步和提交。

    3.2 SVN服務(wù)器發(fā)起與Jenkins平臺間的連接

    在SVN服務(wù)器的開發(fā)項目存儲庫上配置post-commit鉤子腳本,指明當有代碼提交時將發(fā)起Jenkins平臺上工具鏈項目對應(yīng)鏈接的訪問,如http://Jenkins_IP_Address:Port/job/Project/build?token=token_id。在Jenkins平臺的工具鏈項目配置中,設(shè)定以遠程觸發(fā)作為項目構(gòu)建條件,設(shè)置身份驗證令牌,使SVN服務(wù)器的鉤子腳本可以訪問Jenkins平臺工具鏈項目的構(gòu)建執(zhí)行頁面,以啟動對代碼提交任務(wù)的自動化測試流程。

    3.3 Jenkins平臺與Ant構(gòu)建工具間的連接

    Jenkins平臺對自動化流程中各任務(wù)的執(zhí)行主要以批處理命令的方式調(diào)用Ant指令集腳本。一般情況下,構(gòu)建腳本文件build.xml位于開發(fā)項目的根目錄,為了使自動化流程覆蓋代碼檢測功能,對Jenkins平臺以及Android SDK安裝路徑下的build.xml文件作以下改動:

    (1) 在Jenkins平臺項目路徑下部署開發(fā)項目的構(gòu)建文件(命名為build_android.xml),作為通用的項目構(gòu)建腳本文件。在build_android.xml文件初始的項目定義部分,聲明項目在Jenkins平臺工作空間路徑basedir及Android SDK的安裝路徑sdk.dir。

    (2) 在Android SDK安裝目錄下的Ant構(gòu)建文件 oolsantuild_ant.xml中,在輸入、輸出路徑部分各子目錄前添加basedir,使Ant構(gòu)建腳本能自動適配到需要執(zhí)行構(gòu)建的項目路徑,即:

    補充為:

    (3) 在Jenkins控制臺任務(wù)腳本的Ant命令行中,添加構(gòu)建文件參數(shù)“-buildfile”及構(gòu)建文件所在路徑,使Ant工具調(diào)用指定的腳本文件執(zhí)行構(gòu)建。

    3.4 Ant構(gòu)建與JUnit單元測試框架間的連接

    在構(gòu)建腳本文件build_android.xml中,增加對JUnit單元測試子任務(wù)junit的定義,說明Android SDK中JUnit插件的路徑,指定所生成檢測報告的文件類型。Jenkins控制臺在完成項目編譯后,通過使用Ant工具執(zhí)行“ant junit”命令,即可執(zhí)行代碼單元測試,并生成測試報告。截取部分代碼如下:

    location="${sdk.dir} oolslibjunit.jar"/>

    3.5 Ant構(gòu)建與代碼規(guī)范檢查工具間的連接

    將代碼規(guī)范檢查插件Findbugs(Findsecbugs)、Checkstyle和PMD置于Jenkins平臺Ant工具庫目錄下。在構(gòu)建腳本文件build_android.xml中,分別添加各代碼規(guī)范檢查插件對應(yīng)子任務(wù)findbugs(包括fingsecbugs)、checkstyle和pmd的定義,說明插件的路徑及其classname、代碼規(guī)范集文件路徑以及需要生成測試報告的文件類型。Jenkins控制臺在完成項目編譯后,通過使用Ant工具執(zhí)行“ant findbugs checkstyle pmd”命令,即可執(zhí)行代碼規(guī)范檢查,并生成相應(yīng)的測試報告。截取部分代碼如下:

    dir= "${ant.library.dir}/findbugs-3.0.1/lib">

    classname="edu.umd.cs.findbugs.anttask.FindBugsTask"/>

    outputFile="${findbugs_result_folder}/findbugs_result.xml"/>

    path="${sdk.dir}platformsandroid-21android.jar"/>

    classpathref="checkstyle.path"

    classname="com.puppycrawl.tools.checkstyle.ant.CheckstyleAntTask"/>

    dir="${ant.library.dir}/pmd-bin-4.2.6/lib"/>

    classname="net.sourceforge.pmd.ant.PMDTask"

    classpathref="pmd.classpath"/>

    3.6 Jenkins平臺與Robotium測試框架間的連接

    當完成代碼構(gòu)建和代碼規(guī)范檢測任務(wù)后,工具鏈進入自動化功能測試環(huán)節(jié)。測試程序由基于Robotium框架的測試項目產(chǎn)生。采用Robotium的主要原因是相比其他測試框架,Robotium在調(diào)用過程中,包括啟動和運行可以完全不用人工干預(yù),有利于在自動化工具鏈中使用。Jenkins控制臺通過“adb devices”命令驗證存在已連接的測試手機或模擬器,對其發(fā)送keyevent指令進行測試終端的解鎖激活。為了獲取在終端上運行的測試日志和結(jié)果,Jenkins控制臺通過執(zhí)行“adb logcat-d”指令,使運行在終端上的測試數(shù)據(jù)同步傳輸?shù)絁enkins平臺上。以Robotium測試項目設(shè)定的關(guān)鍵字作為篩選條件,對數(shù)據(jù)作過濾處理,將測試日志和結(jié)果在Jenkins平臺上予以展示和保存。

    3.7 Ant構(gòu)建與Robotium自動化測試框架間的連接

    在Robotium測試代碼構(gòu)建文件build_robotium.xml初始的項目定義部分,聲明項目在Jenkins平臺工作空間路徑basedir以及Android SDK的安裝路徑sdk.dir,使構(gòu)建腳本通用于開發(fā)項目不同開發(fā)人員的使用。測試代碼編譯后生成Test.apk。Jenkins控制臺使用Ant工具運行“ant uninstall installd”,將被測應(yīng)用App.apk重新安裝在真機或模擬器上。在Jenkins控制臺運行Ant工具命令“ant uninstall clean debug install test”,依次生成和安裝Test.apk,并運行Robotium自動化測試。

    3.8 Jenkins平臺向SVN服務(wù)器發(fā)起提交的連接

    測試任務(wù)執(zhí)行完畢后,Jenkins平臺向SVN服務(wù)器發(fā)起對增量代碼、日志和測試結(jié)果的提交。Jenkins平臺首先調(diào)用“svn update”命令使項目空間與SVN服務(wù)器同步;調(diào)用“svn delete”和“svn add”命令發(fā)現(xiàn)在工具鏈運行過程中產(chǎn)生的文件變動;通過“svn status”命令檢測提交狀態(tài),如有代碼沖突,由Jenkins平臺中斷自動化流程,系統(tǒng)發(fā)出告警郵件;調(diào)用“svn commit”命令進行代碼提交,使用“-m”參數(shù)注明提交備注。

    4 實施驗證

    在已部署自動化測試工具鏈的系統(tǒng)上,對一個Android開發(fā)應(yīng)用的開發(fā)過程實施自動化測試流程。經(jīng)實踐驗證,當開發(fā)人員向SVN服務(wù)器提交代碼更新,立即觸發(fā)Jenkins平臺運行自動化測試,包括代碼構(gòu)建、單元測試、代碼規(guī)范檢查、功能測試和版本控制,并輸出運行日志和測試報告。Jenkins平臺按任務(wù)腳本設(shè)定,在流程運行過程中實時顯示和記錄自動化測試的運行信息。截取部分運行結(jié)果如下:

    Total time: 30 seconds

    [CHECKSTYLE] checkstyle_report.xml with 117 unique warnings and 0 duplicates.

    [FINDBUGS] findbugs_result.xml with 8 unique warnings and 0 duplicates.

    [PMD] pmd_result.xml with 2 unique warnings and 0 duplicates.

    Triggering a new build of robotiumTest

    Email was triggered for: Always

    Finished: SUCCESS

    當工具鏈運行出現(xiàn)異常情況,如測試終端未連接、代碼編譯構(gòu)建失敗、代碼提交發(fā)現(xiàn)沖突等,系統(tǒng)向開發(fā)人員發(fā)送運行失敗通知郵件,提供錯誤日志信息。當測試任務(wù)遇到異常超時,系統(tǒng)中的超時保護機制能中止當前流程,并由Jenkins平臺發(fā)送告警郵件通知開發(fā)人員,提供出錯信息。當測試正常運行結(jié)束后,系統(tǒng)向開發(fā)人員發(fā)送郵件,說明工具鏈對應(yīng)的開發(fā)項目名稱、系統(tǒng)鏈接、本次測試序號和最終運行結(jié)果。

    最終生成的測試報告,含文本和XML格式,包括JUnit單元檢測報告、Fingbugs(Findsecbugs)、Checkstyle、PMD靜態(tài)代碼掃描檢測報告以及自動化功能測試報告。其中,XML格式的代碼檢測報告可在Jenkins平臺以圖表方式展示,包含代碼缺陷描述、代碼行定位和代碼更替參考。截取Checkstyle檢測報告如圖4所示。

    圖4 Checkstyle檢測報告

    對于流程主要環(huán)節(jié),工具鏈的測試結(jié)果提交子任務(wù)將自動保存測試運行日志,以便追溯版本測試信息。日志提交結(jié)果截圖如圖5所示。

    圖5 測試日志提交記錄

    為避免因項目并發(fā)提交造成的沖突,自動化流程中設(shè)置的運行狀態(tài)保護機制能使被觸發(fā)的測試任務(wù)根據(jù)流程當前的狀態(tài)被啟動運行或被置于隊列中等待。因此,部署的工具鏈系統(tǒng)可用于開發(fā)團隊的開發(fā)人員共同使用。同樣,工具鏈也可用于多個開發(fā)項目的自動化測試,只要SVN服務(wù)器上的開發(fā)項目和Jenkins平臺上部署的自動化流程對應(yīng),以便調(diào)用相應(yīng)的工具鏈。

    5 結(jié) 語

    本文提出了一種Android應(yīng)用開發(fā)中自動化測試工具鏈的解決方案。運用自動化流程實現(xiàn)產(chǎn)品持續(xù)集成過程中所執(zhí)行的代碼構(gòu)建、單元測試、代碼規(guī)范檢查和功能測試,并配備版本控制、日志管理等功能,有助于系統(tǒng)管理開發(fā)過程,規(guī)范代碼質(zhì)量,提高產(chǎn)品開發(fā)和測試效率。

    猜你喜歡
    檢測
    QC 檢測
    “不等式”檢測題
    “一元一次不等式”檢測題
    “一元一次不等式組”檢測題
    “幾何圖形”檢測題
    “角”檢測題
    “有理數(shù)的乘除法”檢測題
    “有理數(shù)”檢測題
    “角”檢測題
    “幾何圖形”檢測題
    看片在线看免费视频| 在线a可以看的网站| 深爱激情五月婷婷| 99热这里只有是精品50| 亚洲国产精品sss在线观看| 国产精品美女特级片免费视频播放器| 国产免费男女视频| 少妇的逼好多水| 午夜久久久久精精品| 人人妻人人澡欧美一区二区| 亚洲欧美日韩卡通动漫| 久久久久免费精品人妻一区二区| 欧美午夜高清在线| 日韩av在线大香蕉| 如何舔出高潮| 亚洲精品在线观看二区| 亚洲成人久久爱视频| 亚洲成人久久性| 亚洲成av人片免费观看| 国产白丝娇喘喷水9色精品| 精品免费久久久久久久清纯| 精品国内亚洲2022精品成人| 欧美黄色片欧美黄色片| 内地一区二区视频在线| 婷婷精品国产亚洲av在线| 国产成人av教育| 精品人妻偷拍中文字幕| 别揉我奶头~嗯~啊~动态视频| 亚洲专区国产一区二区| 免费人成视频x8x8入口观看| 在线十欧美十亚洲十日本专区| 18禁在线播放成人免费| 亚洲午夜理论影院| or卡值多少钱| av专区在线播放| 九色成人免费人妻av| 看免费av毛片| 少妇的逼水好多| 国内精品久久久久精免费| 国产精华一区二区三区| 久久久久久国产a免费观看| 波多野结衣高清无吗| 好男人电影高清在线观看| 日韩 亚洲 欧美在线| 国产精品久久久久久亚洲av鲁大| 亚洲人与动物交配视频| 久久99热这里只有精品18| 国产蜜桃级精品一区二区三区| 床上黄色一级片| 欧美zozozo另类| 欧美成狂野欧美在线观看| 美女高潮的动态| 国产高清三级在线| 国产熟女xx| 一区二区三区激情视频| 日韩欧美精品v在线| 88av欧美| 舔av片在线| 亚洲欧美日韩东京热| 亚洲五月天丁香| 精品一区二区三区视频在线观看免费| 好男人在线观看高清免费视频| 97碰自拍视频| 亚洲av不卡在线观看| 久久草成人影院| 亚洲成人久久爱视频| 成人午夜高清在线视频| 久久中文看片网| 欧美又色又爽又黄视频| 亚洲经典国产精华液单 | 色视频www国产| 男女做爰动态图高潮gif福利片| 久久久久久久亚洲中文字幕 | 国产精品久久久久久久久免 | 搡老熟女国产l中国老女人| 我要看日韩黄色一级片| 日本五十路高清| 亚洲片人在线观看| 国产精品一区二区免费欧美| 久久精品综合一区二区三区| 韩国av一区二区三区四区| 亚洲av熟女| 亚洲第一区二区三区不卡| 非洲黑人性xxxx精品又粗又长| 一级a爱片免费观看的视频| 老师上课跳d突然被开到最大视频 久久午夜综合久久蜜桃 | av国产免费在线观看| 亚洲天堂国产精品一区在线| 精品久久久久久久久av| 国产精品99久久久久久久久| www.www免费av| 日韩欧美国产一区二区入口| 如何舔出高潮| 亚洲国产欧洲综合997久久,| 色5月婷婷丁香| 午夜老司机福利剧场| 在线观看av片永久免费下载| 国产v大片淫在线免费观看| 欧美黄色片欧美黄色片| 韩国av一区二区三区四区| 97热精品久久久久久| 日韩人妻高清精品专区| 91麻豆av在线| 久久人人爽人人爽人人片va | 亚洲最大成人中文| 亚洲最大成人手机在线| av在线观看视频网站免费| 直男gayav资源| 噜噜噜噜噜久久久久久91| h日本视频在线播放| 久99久视频精品免费| avwww免费| 免费黄网站久久成人精品 | 一区二区三区免费毛片| 亚洲专区中文字幕在线| 成人国产一区最新在线观看| 久久99热6这里只有精品| 我的女老师完整版在线观看| 亚洲成av人片在线播放无| 最后的刺客免费高清国语| 国产三级在线视频| 国产又黄又爽又无遮挡在线| 超碰av人人做人人爽久久| 午夜两性在线视频| 蜜桃亚洲精品一区二区三区| www.999成人在线观看| 日韩国内少妇激情av| 精品熟女少妇八av免费久了| 亚洲片人在线观看| 国产亚洲精品av在线| 欧美成狂野欧美在线观看| 中文字幕人成人乱码亚洲影| 国产精品野战在线观看| 97热精品久久久久久| 日韩成人在线观看一区二区三区| 亚洲av成人精品一区久久| 夜夜爽天天搞| 自拍偷自拍亚洲精品老妇| 亚洲三级黄色毛片| 欧美成人a在线观看| 午夜影院日韩av| 国产伦精品一区二区三区四那| 亚洲精品久久国产高清桃花| 午夜福利18| 99精品在免费线老司机午夜| www.www免费av| 国产精品美女特级片免费视频播放器| 久久午夜亚洲精品久久| 狠狠狠狠99中文字幕| 欧美一区二区国产精品久久精品| 国产精品一及| 天堂动漫精品| 永久网站在线| 九色国产91popny在线| 国产精品久久视频播放| 午夜福利欧美成人| 国产伦一二天堂av在线观看| 国产真实乱freesex| 99热只有精品国产| 变态另类成人亚洲欧美熟女| 精品日产1卡2卡| 在线观看美女被高潮喷水网站 | 国产精华一区二区三区| 午夜免费激情av| 欧美成人一区二区免费高清观看| 岛国在线免费视频观看| 免费观看人在逋| 18禁在线播放成人免费| 黄色视频,在线免费观看| 村上凉子中文字幕在线| 一个人看视频在线观看www免费| 欧美黄色淫秽网站| 日韩欧美免费精品| 国产野战对白在线观看| 亚洲国产日韩欧美精品在线观看| 1024手机看黄色片| 99在线人妻在线中文字幕| 国内精品美女久久久久久| 十八禁国产超污无遮挡网站| 一本久久中文字幕| 亚洲18禁久久av| 免费在线观看影片大全网站| 中文字幕久久专区| 久久久国产成人免费| 99在线人妻在线中文字幕| 麻豆久久精品国产亚洲av| 精品国内亚洲2022精品成人| 亚洲欧美日韩高清专用| 哪里可以看免费的av片| 三级国产精品欧美在线观看| 国内精品久久久久精免费| 一级作爱视频免费观看| 国产国拍精品亚洲av在线观看| 不卡一级毛片| 国产精品1区2区在线观看.| av在线观看视频网站免费| 人人妻人人看人人澡| 伊人久久精品亚洲午夜| 欧美激情国产日韩精品一区| 欧美黄色淫秽网站| 嫩草影院新地址| 男女下面进入的视频免费午夜| 成年版毛片免费区| 欧美高清性xxxxhd video| 日本 欧美在线| 久久中文看片网| 亚洲一区二区三区色噜噜| 免费观看精品视频网站| 99精品久久久久人妻精品| 少妇的逼好多水| 欧美又色又爽又黄视频| 亚洲,欧美,日韩| 欧洲精品卡2卡3卡4卡5卡区| 久久久久国内视频| 男女床上黄色一级片免费看| 成人av一区二区三区在线看| 中文字幕av在线有码专区| 成人av在线播放网站| 亚洲av电影在线进入| 无遮挡黄片免费观看| 免费无遮挡裸体视频| 国产色爽女视频免费观看| 好男人在线观看高清免费视频| 久久久久久久午夜电影| 国产男靠女视频免费网站| 国产精品99久久久久久久久| 日本三级黄在线观看| 毛片女人毛片| 中文字幕熟女人妻在线| 18禁黄网站禁片免费观看直播| 国产精品98久久久久久宅男小说| 亚洲人成网站高清观看| 国产真实乱freesex| 一级毛片久久久久久久久女| 亚洲美女视频黄频| av在线蜜桃| 亚洲无线观看免费| 亚洲第一电影网av| 亚洲欧美日韩高清专用| 国产精品精品国产色婷婷| 男女下面进入的视频免费午夜| 成人特级黄色片久久久久久久| 天堂av国产一区二区熟女人妻| 久久草成人影院| 久久性视频一级片| 最近视频中文字幕2019在线8| 国产一区二区在线观看日韩| 成年女人看的毛片在线观看| 在线观看舔阴道视频| 亚洲第一电影网av| 少妇人妻精品综合一区二区 | 国产成人a区在线观看| 一级黄片播放器| 亚洲精品影视一区二区三区av| 免费高清视频大片| 国产真实伦视频高清在线观看 | 看免费av毛片| 欧美成人免费av一区二区三区| 亚洲av免费高清在线观看| 乱人视频在线观看| 美女黄网站色视频| 2021天堂中文幕一二区在线观| 小说图片视频综合网站| 免费无遮挡裸体视频| 精品一区二区免费观看| 久久性视频一级片| 国产亚洲欧美98| 国产久久久一区二区三区| 99精品在免费线老司机午夜| 久久精品国产亚洲av涩爱 | 欧美最新免费一区二区三区 | 婷婷精品国产亚洲av| 欧美高清成人免费视频www| 久久久久精品国产欧美久久久| 99热这里只有是精品在线观看 | 在线播放无遮挡| 最近最新中文字幕大全电影3| 成年免费大片在线观看| 日韩亚洲欧美综合| 国产亚洲av嫩草精品影院| 在线观看美女被高潮喷水网站 | 国产综合懂色| 亚洲最大成人中文| 永久网站在线| 精华霜和精华液先用哪个| 亚洲精品色激情综合| 亚洲av一区综合| 桃红色精品国产亚洲av| 亚洲男人的天堂狠狠| 国产69精品久久久久777片| 国产成人aa在线观看| 美女cb高潮喷水在线观看| 色播亚洲综合网| 亚洲av日韩精品久久久久久密| 久久中文看片网| 热99在线观看视频| 91av网一区二区| 亚洲精品亚洲一区二区| 国产极品精品免费视频能看的| 白带黄色成豆腐渣| 色5月婷婷丁香| 天堂av国产一区二区熟女人妻| 国产又黄又爽又无遮挡在线| 欧美另类亚洲清纯唯美| 色视频www国产| 在线免费观看不下载黄p国产 | 亚洲熟妇中文字幕五十中出| 国产精品av视频在线免费观看| 亚洲成人精品中文字幕电影| 91午夜精品亚洲一区二区三区 | 国产欧美日韩精品一区二区| 最近最新中文字幕大全电影3| 亚洲久久久久久中文字幕| 男人狂女人下面高潮的视频| 精品无人区乱码1区二区| 别揉我奶头~嗯~啊~动态视频| 青草久久国产| 成人无遮挡网站| 夜夜爽天天搞| 亚洲国产精品成人综合色| 精品免费久久久久久久清纯| 嫩草影院精品99| 九九热线精品视视频播放| 变态另类丝袜制服| 亚洲18禁久久av| 亚洲18禁久久av| 亚洲国产欧洲综合997久久,| 国产精品免费一区二区三区在线| 婷婷六月久久综合丁香| 久久精品夜夜夜夜夜久久蜜豆| 成人三级黄色视频| 午夜影院日韩av| 午夜影院日韩av| 国产野战对白在线观看| av天堂在线播放| 亚洲精品在线观看二区| 日韩欧美国产一区二区入口| 日韩精品青青久久久久久| 亚洲 国产 在线| 欧美又色又爽又黄视频| 神马国产精品三级电影在线观看| 日韩免费av在线播放| 国产高潮美女av| 欧美+亚洲+日韩+国产| 国产乱人视频| 婷婷精品国产亚洲av在线| 久久久久亚洲av毛片大全| 神马国产精品三级电影在线观看| 此物有八面人人有两片| av中文乱码字幕在线| 亚洲精品一区av在线观看| 亚洲精品在线观看二区| 2021天堂中文幕一二区在线观| 国产午夜精品久久久久久一区二区三区 | 毛片一级片免费看久久久久 | 欧美不卡视频在线免费观看| .国产精品久久| 久久精品91蜜桃| 国产免费一级a男人的天堂| 一区二区三区高清视频在线| 久久精品人妻少妇| 国产男靠女视频免费网站| 亚洲国产精品999在线| 最新中文字幕久久久久| 免费av毛片视频| 亚洲,欧美精品.| 床上黄色一级片| 听说在线观看完整版免费高清| 亚洲av日韩精品久久久久久密| 舔av片在线| 欧美zozozo另类| 亚洲精品成人久久久久久| 无遮挡黄片免费观看| avwww免费| 亚洲av免费在线观看| 精品久久国产蜜桃| 国产精品女同一区二区软件 | av欧美777| 亚洲av免费在线观看| a级毛片免费高清观看在线播放| 国产精品爽爽va在线观看网站| 日韩欧美免费精品| 天天躁日日操中文字幕| 亚洲av免费高清在线观看| 国产中年淑女户外野战色| 女人被狂操c到高潮| 国内久久婷婷六月综合欲色啪| 亚洲人成网站高清观看| 亚洲中文日韩欧美视频| 特级一级黄色大片| 国产精品1区2区在线观看.| 身体一侧抽搐| 欧美日本亚洲视频在线播放| 日本 av在线| 午夜精品在线福利| 免费无遮挡裸体视频| 国产高清激情床上av| 我要看日韩黄色一级片| 日本 欧美在线| 久久伊人香网站| 国产精品1区2区在线观看.| av中文乱码字幕在线| 亚洲av美国av| 欧美精品国产亚洲| 亚洲av.av天堂| 中文字幕熟女人妻在线| 国产精品久久视频播放| 国产精品美女特级片免费视频播放器| 亚洲第一欧美日韩一区二区三区| 老女人水多毛片| 91狼人影院| 小说图片视频综合网站| 午夜福利在线在线| 他把我摸到了高潮在线观看| 90打野战视频偷拍视频| 亚洲精华国产精华精| 国产成人av教育| 国产av一区在线观看免费| 国产精品不卡视频一区二区 | 国产精品伦人一区二区| 内射极品少妇av片p| av国产免费在线观看| 亚洲精华国产精华精| 国产综合懂色| 我的老师免费观看完整版| 久久久久久国产a免费观看| 亚洲欧美激情综合另类| 99国产精品一区二区三区| 国内精品美女久久久久久| 一区福利在线观看| 成人特级av手机在线观看| 日韩高清综合在线| 成年女人毛片免费观看观看9| 99热精品在线国产| 国产精品1区2区在线观看.| 久久久久亚洲av毛片大全| 日韩欧美三级三区| 日韩av在线大香蕉| 亚洲人成伊人成综合网2020| 国产aⅴ精品一区二区三区波| 亚洲一区二区三区不卡视频| 日本黄大片高清| 国产主播在线观看一区二区| or卡值多少钱| 国产亚洲精品久久久com| 亚洲av电影不卡..在线观看| 真人做人爱边吃奶动态| 夜夜看夜夜爽夜夜摸| 欧美bdsm另类| 欧美性猛交╳xxx乱大交人| 久久久色成人| 黄色丝袜av网址大全| 老司机深夜福利视频在线观看| 欧美一区二区精品小视频在线| 亚洲综合色惰| 亚洲国产精品成人综合色| 国产视频内射| 亚洲三级黄色毛片| 精品不卡国产一区二区三区| 亚洲国产精品久久男人天堂| 午夜精品久久久久久毛片777| 精品一区二区三区人妻视频| 男女下面进入的视频免费午夜| 90打野战视频偷拍视频| 欧美乱妇无乱码| 欧美国产日韩亚洲一区| 国产免费男女视频| 久久欧美精品欧美久久欧美| 久久久久久久久久黄片| 欧美黑人巨大hd| 一级av片app| 国产精品不卡视频一区二区 | 乱人视频在线观看| 国产精品美女特级片免费视频播放器| 老女人水多毛片| av天堂中文字幕网| 久久精品久久久久久噜噜老黄 | 99国产综合亚洲精品| 亚洲国产色片| 又黄又爽又刺激的免费视频.| 99久久九九国产精品国产免费| 无遮挡黄片免费观看| 淫秽高清视频在线观看| 成人av在线播放网站| 淫妇啪啪啪对白视频| 午夜两性在线视频| 日韩欧美一区二区三区在线观看| 亚洲欧美日韩卡通动漫| 免费看日本二区| 欧美乱色亚洲激情| 欧美又色又爽又黄视频| 亚洲av日韩精品久久久久久密| 欧美色视频一区免费| 啦啦啦观看免费观看视频高清| 日本黄色视频三级网站网址| 国产免费av片在线观看野外av| 亚洲欧美日韩卡通动漫| 老司机福利观看| 亚洲国产精品合色在线| 欧美在线黄色| 一区二区三区四区激情视频 | 精品乱码久久久久久99久播| 亚洲精品久久国产高清桃花| 亚洲国产精品久久男人天堂| 国产乱人伦免费视频| 日本 av在线| 最近最新免费中文字幕在线| 久久伊人香网站| 国产精品亚洲一级av第二区| 国产欧美日韩一区二区三| 99riav亚洲国产免费| 最近最新中文字幕大全电影3| 日韩中文字幕欧美一区二区| 国产精品免费一区二区三区在线| 嫁个100分男人电影在线观看| 男女那种视频在线观看| 欧美日韩综合久久久久久 | 禁无遮挡网站| xxxwww97欧美| 黄色丝袜av网址大全| 亚洲av中文字字幕乱码综合| 亚洲最大成人中文| 永久网站在线| 一级a爱片免费观看的视频| 欧美黄色片欧美黄色片| 国产精品自产拍在线观看55亚洲| 性插视频无遮挡在线免费观看| 简卡轻食公司| 亚洲avbb在线观看| 免费观看精品视频网站| 欧美精品啪啪一区二区三区| 成人av一区二区三区在线看| eeuss影院久久| 亚洲av日韩精品久久久久久密| 性插视频无遮挡在线免费观看| 精品无人区乱码1区二区| 中文字幕av在线有码专区| 深夜a级毛片| 在线观看午夜福利视频| 可以在线观看毛片的网站| 亚洲乱码一区二区免费版| 男女视频在线观看网站免费| 成人美女网站在线观看视频| 丰满人妻一区二区三区视频av| 老女人水多毛片| 亚洲欧美日韩无卡精品| 热99re8久久精品国产| 动漫黄色视频在线观看| 两个人视频免费观看高清| 午夜免费男女啪啪视频观看 | 真实男女啪啪啪动态图| 男女做爰动态图高潮gif福利片| 欧美乱妇无乱码| 熟妇人妻久久中文字幕3abv| 日韩欧美三级三区| 国产亚洲欧美98| 一区二区三区激情视频| 欧美性感艳星| 又爽又黄a免费视频| 欧美又色又爽又黄视频| 精品久久久久久久末码| 波多野结衣巨乳人妻| 午夜a级毛片| 国产人妻一区二区三区在| 国产毛片a区久久久久| 国产国拍精品亚洲av在线观看| 国产v大片淫在线免费观看| 精品一区二区三区人妻视频| 91在线精品国自产拍蜜月| 日韩大尺度精品在线看网址| 亚洲国产精品999在线| 国产欧美日韩一区二区精品| 欧美激情国产日韩精品一区| 精品午夜福利在线看| 日日夜夜操网爽| 久久久久久大精品| 亚洲午夜理论影院| 久久久精品欧美日韩精品| 看片在线看免费视频| 亚洲熟妇中文字幕五十中出| 男女那种视频在线观看| 国产私拍福利视频在线观看| 国内久久婷婷六月综合欲色啪| 少妇丰满av| 精品日产1卡2卡| eeuss影院久久| 高清在线国产一区| 波多野结衣高清作品| 免费av观看视频| 欧美xxxx性猛交bbbb| 国产一区二区三区视频了| 欧美xxxx性猛交bbbb| 一a级毛片在线观看| 18禁黄网站禁片午夜丰满| 亚洲最大成人中文| 俺也久久电影网| 午夜福利在线观看免费完整高清在 | 欧美一级a爱片免费观看看| 男女下面进入的视频免费午夜| 国内精品久久久久久久电影| 国产一区二区三区视频了| 最近最新免费中文字幕在线| 国产精品亚洲美女久久久| 亚洲内射少妇av| 国产精品一区二区免费欧美| 亚洲片人在线观看| 一级av片app| 日本五十路高清| 可以在线观看的亚洲视频| 亚洲中文字幕日韩| 亚洲五月天丁香| 国产亚洲精品av在线| 变态另类丝袜制服| 精品久久久久久久久久免费视频| 久久亚洲精品不卡|