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

    基于SVN的應(yīng)用軟件持續(xù)集成

    2016-11-17 10:13:09劉立康
    計算機(jī)測量與控制 2016年3期
    關(guān)鍵詞:代理服務(wù)器源代碼腳本

    姜 文,劉立康

    (西安電子科技大學(xué) 通信工程學(xué)院,西安 710071)

    ?

    基于SVN的應(yīng)用軟件持續(xù)集成

    姜 文,劉立康

    (西安電子科技大學(xué) 通信工程學(xué)院,西安 710071)

    隨著軟件開發(fā)技術(shù)的發(fā)展,軟件配置管理和持續(xù)集成已經(jīng)成為軟件開發(fā)過程中的一個重要組成部分;為了在軟件開發(fā)過程中正確應(yīng)用這些新技術(shù),需要開展這方面的研究工作;結(jié)合工作實踐,以SVN作為配置管理工具,分析了持續(xù)集成工具ICP-CI的特點(diǎn)、部署方式和運(yùn)行機(jī)制;詳細(xì)敘述了ICP-CI持續(xù)集成構(gòu)建工程的搭建過程,搭建過程包括配置管理工具SVN客戶端安裝、基于SVN的代碼更新、靜態(tài)檢查、編譯、打包,版本包的自動化測試;構(gòu)建工程的各個階段都可能出現(xiàn)錯誤,導(dǎo)致構(gòu)建失敗,通過對構(gòu)建失敗原因的分析,將構(gòu)建失敗分為3類并給出相應(yīng)的解決方案;最后介紹了一個典型工作案例;工作實踐表明在軟件的開發(fā)過程中采用基于SVN的持續(xù)集成,可以提高軟件質(zhì)量和軟件開發(fā)效率,降低軟件開發(fā)成本。

    持續(xù)集成;ICP-CI;ICP-CI服務(wù)器;構(gòu)建;SVN

    0 引言

    隨著軟件開發(fā)技術(shù)的不斷發(fā)展,軟件持續(xù)集成[1-5](continuous integration)和配置管理[6-8]已經(jīng)成為軟件開發(fā)過程中的一個重要組成部分。目前國內(nèi)比較常用的軟件配置管理的工具有ClearCase、SVN、 Git等。ClearCase適合大型軟件團(tuán)隊使用。SVN是開源軟件,適合中小型軟件團(tuán)隊使用。Git是一種新的分布式開源軟件,具有很好的應(yīng)用前景。持續(xù)集成技術(shù)已經(jīng)由最初實現(xiàn)簡單的軟件編譯驗證,發(fā)展到目前可以進(jìn)行軟件源代碼代碼質(zhì)量監(jiān)控與管理、軟件版本出包、軟件版本集成驗證等各個方面。

    本文以SVN作為配置管理工具,持續(xù)集成工具ICP-CI為例介紹持續(xù)集成技術(shù)。分析了持續(xù)集成工具ICP-CI的特點(diǎn),部署方式和運(yùn)行機(jī)制。詳細(xì)敘述了ICP-CI持續(xù)集成構(gòu)建工程的搭建過程。最后介紹了一個典型工作案例。

    1 持續(xù)集成系統(tǒng)架構(gòu)

    持續(xù)集成包括以下基本要素:開發(fā)人員、配置庫、集成構(gòu)建系統(tǒng)(ICP-CI服務(wù)器)和反饋機(jī)制。ICP-CI服務(wù)器提供了針對SVN的接口。持續(xù)集成步驟如下:

    1)開發(fā)人員向SVN配置庫提交代碼。

    2)鎖庫后,下載代碼到ICP-CI服務(wù)器完成構(gòu)建工作。若構(gòu)建成功,提供新的代碼版本。

    3)ICP-CI服務(wù)器通過電子郵件向項目經(jīng)理和開發(fā)人員反饋構(gòu)建信息。

    4)ICP-CI服務(wù)器輪詢配置庫中的變更。

    2 ICP-CI服務(wù)器部署與運(yùn)行原理

    2.1 ICP-CI服務(wù)器的部署

    根據(jù)開發(fā)項目的代碼規(guī)模、編譯環(huán)境、編譯工具來選擇ICP-CI服務(wù)器的CPU、內(nèi)存等硬件配置和操作系統(tǒng)。一套ICP-CI服務(wù)器很可能同時承擔(dān)多個軟件產(chǎn)品版本的持續(xù)集成工作。

    ICP-CI服務(wù)器系統(tǒng)有兩種常見的部署形式[9-11]單機(jī)式和主控式。

    單機(jī)式是指整套ICP-CI服務(wù)器系統(tǒng)由一臺服務(wù)器組成,該服務(wù)器自主完成持續(xù)集成任務(wù),這種系統(tǒng)適用于代碼量小于一百萬行的開發(fā)團(tuán)隊。

    主控式是指整套ICP-CI服務(wù)器系統(tǒng)由一臺主控服務(wù)器和多臺代理服務(wù)器組成,主控服務(wù)器根據(jù)代理服務(wù)器的工作標(biāo)簽,將持續(xù)集成任務(wù)下發(fā)到各個代理服務(wù)器上,任務(wù)完成之后將任務(wù)結(jié)果和日志文件發(fā)回到主控服務(wù)器。

    根據(jù)編譯環(huán)境的不同持續(xù)集成工具ICP-CI分為不同的版本。在Windows環(huán)境下,主控服務(wù)器部署工具為ICP-CI-Windows-Master,代理服務(wù)器部署ICP-CI-Windows-Agent。在Linux環(huán)境下主控服務(wù)器部署工具為ICP-CI-Linux-Master,代理服務(wù)器部署ICP-CI-Linux-Agent。持續(xù)集成工具ICP-CI是跨平臺的,主控服務(wù)器和代理服務(wù)器可以選擇不同的操作系統(tǒng)。多數(shù)情況主控服務(wù)器選擇安裝Windows操作系統(tǒng)的環(huán)境。

    ICP-CI工具需要解壓安裝包之后安裝。主控服務(wù)器安裝ICP-CI-Windows-Master之后,需要進(jìn)入ICP-CI-Windows-Master下的master目錄,執(zhí)行批處理啟動MYSQL數(shù)據(jù)庫后,啟動ICP-CI的網(wǎng)頁版頁面。對于ICP-CI-Windows-Agent和ICP-CI-Linux-Agent將安裝包解壓之后,需要將安裝ICP-CI-Windows-Master的服務(wù)器IP地址配置到agent文件夾下conf文件夾對應(yīng)的配置文件中,再執(zhí)行批處理腳本啟動代理服務(wù)器的CI進(jìn)程。

    2.2 ICP-CI運(yùn)行原理

    2.2.1 單機(jī)式運(yùn)行機(jī)制

    單機(jī)式運(yùn)行比較簡單,當(dāng)構(gòu)建工程運(yùn)行時構(gòu)建任務(wù)在本機(jī)運(yùn)行,運(yùn)行完成后,將構(gòu)建任務(wù)的日志收集到ICP-CI-Windows-Master軟件的日志路徑下。

    2.2.2 主控式運(yùn)行機(jī)制

    目前主控式的構(gòu)建環(huán)境用的比較多。在主控式的構(gòu)建環(huán)境中,主控服務(wù)器與代理服務(wù)器的運(yùn)行機(jī)制如下圖1所示。

    圖1 主控式持續(xù)集成環(huán)境的運(yùn)行機(jī)制

    在主控式持續(xù)集成系統(tǒng)中,主控服務(wù)器下發(fā)構(gòu)建任務(wù)給代理服務(wù)器,監(jiān)控與管理代理服務(wù)器的構(gòu)建任務(wù)運(yùn)行情況,在ICP-CI工具的頁面上顯示任務(wù)運(yùn)行情況,同時發(fā)送郵件給特定郵件群組。

    代理服務(wù)器接受主控服務(wù)器下發(fā)的構(gòu)建任務(wù),完成構(gòu)建任務(wù)之后將構(gòu)建日志與運(yùn)行結(jié)果反饋回主控服務(wù)器。

    3 ICP-CI構(gòu)建工程搭建

    3.1 從SVN客戶端下載代碼

    ICP-CI服務(wù)器通常需要安裝SVN命令行工具和圖形SVN客戶端工具。對于Windows操作系統(tǒng)在安裝完成命令行工具和圖形客戶端工具之后,可以選擇安裝支持中文操作的軟件包,以便支持中文操作。

    完成SVN工具的安裝之后,根據(jù)配置管理工程師提供的產(chǎn)品代碼配置庫路徑,使用SVN客戶端工具的“SVN檢出(check out)”功能從配置庫下載代碼到代理服務(wù)器的指定路徑下。

    3.2 搭建構(gòu)建工程

    打開ICP-CI的網(wǎng)頁頁面,持續(xù)集成工程師在ICP-CI的頁面上創(chuàng)建以“軟件產(chǎn)品名稱+版本號”為名稱的構(gòu)建工程。構(gòu)建工程創(chuàng)建成功之后,編寫各類任務(wù)腳本,分別配置代碼更新、靜態(tài)檢查、進(jìn)程編譯、出包、自動化用例測試等步驟。

    3.2.1 基于SNV的代碼更新

    每天在配置庫開庫到鎖庫的時間段開發(fā)工程師提交代碼到配置庫中。SVN配置庫鎖庫后,持續(xù)集成工程師在搭建持續(xù)集成構(gòu)建工程時,調(diào)用SVN的“update”命令實現(xiàn)將軟件產(chǎn)品配置庫的代碼更新代理服務(wù)器上的代碼視圖。

    使用ICP-CI創(chuàng)建代碼視圖的創(chuàng)建更新任務(wù)時,需要撰寫代碼更新的批處理腳本(Linux環(huán)境需要撰寫Shell腳本),把代碼更新的腳本配置在任務(wù)中。更新代碼的批處理腳本內(nèi)容如下所示:

    ::配置需要更新代碼的視圖路徑

    SET CODE_PATH=D:/CodeView /Code

    ::解除代碼視圖中的文件鎖定

    svn cleanup %CODE_PATH%

    ::更新代碼到視圖路徑

    svn update %CODE_PATH% --accept postpone

    3.2.2 靜態(tài)檢查

    靜態(tài)檢查[12]方法包括兩類,一種是通過常規(guī)的人工代碼檢視來發(fā)現(xiàn)問題,另外一種是使用靜態(tài)檢查軟件進(jìn)行代碼靜態(tài)檢查。

    常規(guī)的人工代碼檢視,能發(fā)現(xiàn)少量的內(nèi)存越界和資源泄漏問題,依賴于參與檢查人員的技術(shù)水平和當(dāng)時的精神狀態(tài)。人工檢查方法進(jìn)行內(nèi)存越界和泄漏檢查效率比較低,成本較高,雖然可能發(fā)現(xiàn)一些深層次的代碼缺陷,往往不如靜態(tài)檢查軟件檢查發(fā)現(xiàn)代碼缺陷的效率高。

    靜態(tài)檢查是指使用自動化工具對程序源代碼進(jìn)行檢查,以分析產(chǎn)品源代碼行為的技術(shù),應(yīng)用于源代碼的正確性檢查、安全缺陷檢測、代碼優(yōu)化等。它的特點(diǎn)是不需要執(zhí)行程序。

    軟件產(chǎn)品使用C/C++來編碼時,采用的靜態(tài)檢查工具為Pclint;Pclint是C/C++代碼靜態(tài)檢查工具,支持幾乎所有流行的編輯環(huán)境和編譯器。當(dāng)軟件產(chǎn)品代碼使用java語言,通常采用Findbugs和Checkstyle作為靜態(tài)檢查工具。本文以由Pclint工具為例描述靜態(tài)檢查的配置過程。Pclint工具主要由以下這些文件組成,如下表1所示。

    ICP-CI工具運(yùn)行Pclint時,需要持續(xù)集成工程師根據(jù)產(chǎn)品各編譯模塊名稱來命名幾類*.lnt文件。需要配置的*.lnt文件類型如表2所示。

    表1 Pclint工具的文件組成

    表2 產(chǎn)品模塊需要配置的*.lnt文件類型

    產(chǎn)品各模塊進(jìn)行pclin檢查t時,需要在include_模塊名.lnt文件中包含各模塊需要被編譯的源代碼的路徑。include_模塊名.lnt文件配置內(nèi)容如下所示:

    -ID:INCWIN32

    -ID:INCLINUX

    -ID:INCLINUX〗-I%PROJECT_PATH%platform

    -I%PROJECT_PATH%host

    持續(xù)集成工程師在構(gòu)建工程的ICP-CI的任務(wù)頁面上,創(chuàng)建產(chǎn)品代碼的pclint任務(wù)時把調(diào)用“std_模塊名.lnt”配置在任務(wù)中。構(gòu)建工程在執(zhí)行時,參于運(yùn)行pclint任務(wù)的代理服務(wù)器使用pclint工具檢查軟件產(chǎn)品C/C++代碼的各種缺陷。

    3.2.3 編譯

    產(chǎn)品代碼在編譯過程中為出包步驟生成進(jìn)程文件,也可以查找各種編譯錯誤與編譯告警。各模塊的編譯腳本路徑、編譯腳本與編譯器需要在構(gòu)建工程的ICP-CI的任務(wù)頁面上完成配置。

    當(dāng)產(chǎn)品的進(jìn)程文件需要在Linux操作系統(tǒng)下完成編譯鏈接,需要在ICP-CI-Linux-Agent代理服務(wù)器上安裝編譯器gcc-4.3.4,安裝步驟如下所示:

    a.將gcc的安裝包拷貝到代理服務(wù)器opt目錄下,執(zhí)行tar xzvf gcc_install.tar.gz

    b.進(jìn)入解壓之后的gcc_install目錄

    c.執(zhí)行rpm -ivh *.rpm

    d.將/opt/gcc_install/make拷貝到/usr/bin下

    e.執(zhí)行./ipsec.sh,開始安裝gcc-4.3.4。

    gcc編譯器安裝完成之后,在代理服務(wù)器上執(zhí)行:“gcc -v”,如果可以查看到gcc版本的版本號則表明gcc編譯器安裝成功了。

    以dbg模塊為例,在構(gòu)建工程的ICP-CI的任務(wù)管理頁面配置編譯模塊名稱dbg,分別配置dbg模塊的編譯任務(wù),并將dbg模塊的編譯腳本make_std_dbg.sh以及dbg模塊編譯腳本路徑配置到編譯任務(wù)中。make_std_dbg.sh編譯腳本內(nèi)容如下所示:

    CUR_SH_PATH=’pwd’

    CODE_ROOT_PATH={CUR_SH_PATH}/../

    echo “change attribute=CODE_ROOT_PATH”

    chmod -R 775 CODE_ROOT_PATH

    ./ims_make.sh std9000 dbg mcca

    3.2.4 出包

    編譯任務(wù)完成后,將編譯生成的所有模塊的進(jìn)程文件和一些產(chǎn)品的配置文件通過在ICP-CI工具的軟件構(gòu)建工程運(yùn)行出包步驟,生成可以直接安裝產(chǎn)品的軟件包。出包腳本是用Ant編寫,為了能方便調(diào)用Ant腳本,需要將ICP-CI工具tool目錄下的Ant工具的路徑添加到環(huán)境變量的path路徑下。ICP-CI工具需要在構(gòu)建工程的ICP-CI的任務(wù)頁面配置出包任務(wù)package,將出包腳本task_custom_package.xml配置到任務(wù)中。出包腳本內(nèi)容如下所示:

    //生成版本包

    3.2.5 自動化用例測試

    在構(gòu)建工程的ICP-CI的任務(wù)頁面上完成測試用例任務(wù)的配置。在測試用例環(huán)境下對版本包進(jìn)行自動化測試,完成版本包的初步測試。

    持續(xù)集成采用的HLT(HIGH LEVEL TEST)自動化測試。HLT通常指SDV(系統(tǒng)設(shè)計驗證)/SIT(系統(tǒng)集成測試)/SVT(系統(tǒng)驗證測試)等測試活動。HLT是站在系統(tǒng)的角度對整個版本進(jìn)行測試,測試的對象是一個完整的產(chǎn)品而不是產(chǎn)品內(nèi)部的模塊,常見的HLT測試包括系統(tǒng)測試和驗收測試。

    使用ICP-CI工具執(zhí)行自動化測試,需要將自動化用例的執(zhí)行工具集成到ICP-CI工具中。自動化執(zhí)行工具可以自動完成測試用例管理、測試環(huán)境配置、測試版本自動安裝與卸載、自動化測試用例執(zhí)行等任務(wù)。

    如果出包階段生成的版本包能夠完成HLT自動化測試則證明版本包的基本功能沒有問題。版本包可以合入代碼配置庫的特性與問題單,作為進(jìn)行驗證性測試的版本;也可以作為測試人員回歸問題單的版本。

    使用ICP-CI工具完成HLT任務(wù),需要在構(gòu)建工程的ICP-CI任務(wù)管理頁面配置HLT任務(wù)。配置HLT任務(wù)需要配置產(chǎn)品的自動化測試用例庫名稱、自動化測試服務(wù)管理系統(tǒng)名稱、自動化測試端口號(通常為8080)、控制HLT任務(wù)下發(fā)的配置文件的路徑和VersionReleaseInfo.ini文件。VersionReleaseInfo.ini文件的配置內(nèi)容如下所示:

    [Summary_Info]

    IssueTime=2015-01-23_02.00.11

    cVersion=產(chǎn)品名稱 版本號_CI

    bVersion=產(chǎn)品名稱 版本號_CIB000 //持續(xù)集成自動化測試用例庫

    IssueStatus=0

    VerDescription=版本號

    CmsType=DailyTest

    Priority=0

    [STD_LEM_SRV]

    Version=版本號

    Directory=出包任務(wù)完成之后,需要將版本包拷貝的路徑

    Filename=版本包名稱

    ICP-CI工具通過執(zhí)行相應(yīng)的ANT腳本將出包步驟生成的版本包拷貝到Directory參數(shù)配置的路徑下,通過以下步驟來完成HLT任務(wù):

    (1)更新VersionReleaseInfo.ini配置文件的IssueTime,觸發(fā)CIMonitor工具;

    (2)根據(jù)bVersion參數(shù)配置,CIMonitor工具提交測試集中控制中心持續(xù)集成自動化測試任務(wù);

    (3)測試集中控制中心將任務(wù)下發(fā)至執(zhí)行測試用例的執(zhí)行機(jī),承擔(dān)測試任務(wù)的執(zhí)行機(jī),需要卸載前一次的測試用例版本庫,卸載后安裝本次測試用例版本庫。版本庫安裝完成后,開始執(zhí)行測試用例;

    (4)當(dāng)所有測試用例執(zhí)行完成之后將執(zhí)行結(jié)果從用例執(zhí)行機(jī)、測試集中控制中心、CIMonitor工具一層層反饋到ICP-CI頁面的執(zhí)行結(jié)果頁面上。

    4 持續(xù)集成失敗的原因分析與處理方法

    進(jìn)行持續(xù)集成工作時,難免會出現(xiàn)持續(xù)集成失敗的情況,對于整個軟件項目團(tuán)隊而言,持續(xù)集成失敗需要引起極大地重視。一旦出現(xiàn)持續(xù)集成失敗,持續(xù)集成工程師需要第一時間發(fā)現(xiàn)持續(xù)集成構(gòu)建工程已經(jīng)失敗,根據(jù)已經(jīng)失敗的構(gòu)建工程失敗的位置、構(gòu)建工程頁面上提示失敗的錯誤信息以及構(gòu)建工程的詳細(xì)日志文件來確定本次持續(xù)集成失敗的原因,來確定解決問題的方案。持續(xù)集成失敗的原因通常有以下幾類。

    4.1 持續(xù)集成構(gòu)建環(huán)境存在問題

    由于構(gòu)建環(huán)境存在問題導(dǎo)致構(gòu)建失敗,通常表現(xiàn)為:主控服務(wù)器與代理服務(wù)器之間失去聯(lián)系、代理服務(wù)器斷開連接、需要?dú)w檔到固定路徑下的結(jié)果文件歸檔失敗以及磁盤或根分區(qū)的空間過滿導(dǎo)致構(gòu)建失敗。對于這類問題,大部分可以在持續(xù)集成構(gòu)建開始之前通過對構(gòu)建環(huán)境的檢查和構(gòu)建環(huán)境的日常維護(hù)來解決。對于避免構(gòu)建環(huán)境原因?qū)е碌某掷m(xù)集成構(gòu)建失敗需要做到以下幾點(diǎn):

    1)在啟動持續(xù)集成構(gòu)建之前,檢查所有構(gòu)建環(huán)境是否能正常登陸;

    2)檢查構(gòu)建環(huán)境中所有的ICP-CI相關(guān)的進(jìn)程是否能正常啟動;

    3)每周重啟一次所有的構(gòu)建環(huán)境,保持構(gòu)建環(huán)境性能穩(wěn)定;

    4)每三天清理一次構(gòu)建環(huán)境上的日志文件以及各種中間文件存放的文件夾,確保所有構(gòu)建環(huán)境內(nèi)存的大于某個最小內(nèi)存下限值。

    4.2 持續(xù)集成腳本存在問題

    持續(xù)集成腳本是完成持續(xù)集成構(gòu)建的基礎(chǔ);將軟件產(chǎn)品從單獨(dú)的某個進(jìn)程文件編譯或者單個模塊的靜態(tài)檢查過程串聯(lián)起來,形成產(chǎn)品所有模塊源代碼的靜態(tài)檢查、編譯、出包以及自動化測試過程為一體的源代碼問題檢測和產(chǎn)品版本包驗證機(jī)制。持續(xù)集成腳本在這個機(jī)制中是串聯(lián)各個環(huán)節(jié)的紐帶。

    1)通常持續(xù)集成腳本問題導(dǎo)致的失敗比較多的情況,出現(xiàn)在構(gòu)建環(huán)境剛剛搭建完成的工程調(diào)試階段。常見的表現(xiàn)形式為各種中間文件拷貝失敗等。為了避免這些失敗需要仔細(xì)分析構(gòu)建日志中的各種問題現(xiàn)象找到問題發(fā)生的原因并對構(gòu)建腳本進(jìn)行相應(yīng)的修改來解決。

    2)在軟件產(chǎn)品開發(fā)過程中,不斷會有因為產(chǎn)品在安全方面或者客戶需求方面的變化導(dǎo)致的軟件產(chǎn)品版本包內(nèi)文件在出包過程中參于出包的文件發(fā)生變化,這需要產(chǎn)品的系統(tǒng)工程師和軟件開發(fā)工程師及時知會持續(xù)集成工程師完成出包腳本的修改,以確保軟件產(chǎn)品的版本包能符合安全方面或者客戶需求。

    4.3 軟件源代碼問題

    軟件源代碼問題導(dǎo)致持續(xù)集成失敗是持續(xù)集成失敗中出現(xiàn)頻率最高的情況。軟件產(chǎn)品版本從原型系統(tǒng)階段到轉(zhuǎn)維護(hù)的在研開發(fā)階段中解決了上千次的源代碼問題導(dǎo)致的構(gòu)建失敗。這些問題主要包括編譯錯誤、*.sql文件執(zhí)行失敗、Pclint靜態(tài)檢查錯誤和告警;編譯完成的版本包加載到自動化測試環(huán)境上之后,由于源代碼缺陷導(dǎo)致的模塊進(jìn)程文件故障。

    為了保證每次持續(xù)集成都使用最新的代碼,在持續(xù)集成之先需要更新代碼。開發(fā)工程師將沒有進(jìn)行充分編譯、靜態(tài)檢查以及功能驗證的代碼直接合入SVN配置庫,就會導(dǎo)致在持續(xù)集成過程中出現(xiàn)編譯失敗、靜態(tài)檢查失敗以及自動化測試用例失敗等一系列構(gòu)建失敗。這類失敗的原因是源代碼開發(fā)完成之后驗證不充分就合入了SVN配置庫。開發(fā)工程師完成源代碼編碼之后,需要完成編譯驗證、靜態(tài)檢查,單元測試、代碼評審,確認(rèn)合入配置庫的源代碼沒有問題后,才能將源代碼合入SVN配置庫,這樣就可以最大限度的降低源代碼問題導(dǎo)致持續(xù)集成失敗。

    5 典型案例

    某公司的有一個軟、硬件結(jié)合的中型軟件開發(fā)項目,總的代碼量超過兩百萬行。采用的SVN版本是1.6.16,客戶端安裝SVN命令行工具和SVN圖形客戶端工具Tortoise;數(shù)據(jù)庫為PostgreSQL數(shù)據(jù)庫;持續(xù)集成使用ICP-CI工具。1臺主控服務(wù)器和7臺代理服務(wù)器參與持續(xù)集成。主控服務(wù)器操作系統(tǒng)為WINDOWS 2003 Server,部署工具為ICP-CI-Windows-Master。5臺代理服務(wù)器操作系統(tǒng)為Suse Linux 10 x86-64,部署工具ICP-CI-Linux-Agent。產(chǎn)品的編譯和出包環(huán)境為Suse Linux 10 x86-64,采用Linux環(huán)境下的shell腳本和ANT腳本編程完成軟件持續(xù)集成中的進(jìn)程編譯以及版本出包任務(wù)。剩余的2臺代理服務(wù)器安裝Windows 2003操作系統(tǒng),部署工具ICP-CI-Windows-Agent,使用批處理腳本和ANT腳本編程完成持續(xù)集成過程中的靜態(tài)檢查和出包準(zhǔn)備任務(wù)。工作實踐表明持續(xù)集成有助于及早發(fā)現(xiàn)并解決軟件源代碼的問題和缺陷,便于產(chǎn)品主管了解工作進(jìn)度和解決存在的問題。

    6 結(jié)束語

    長期的工作實踐表明在軟件的開發(fā)過程中采用基于SVN的持續(xù)集成,可以提高軟件的質(zhì)量和軟件開發(fā)效率,降低軟件的的成本。利用持續(xù)集成完成自動化構(gòu)建,可以快速向開發(fā)工程師反饋軟件源代碼的缺陷,使開發(fā)工程師能夠很快修復(fù)源代碼的缺陷,大大減少了開發(fā)中埋藏代碼缺陷,有效避免大量的源代碼缺陷在軟件開發(fā)的某個階段集中爆發(fā),同時也給項目的管理提供了很好的保證。

    [1] 羅時飛.敏捷持續(xù)集成 : CruiseControl版:高效硏發(fā)之道[M].北京:電子工業(yè)出版社,2008.

    [2] Paul M.Duvall,Steve Matyas,Andrew Glover.持續(xù)集成軟件質(zhì)量改進(jìn)和風(fēng)險降低之道[M].北京:電子工業(yè)出版社,2012.

    [3] 董 越.軟件集成策略—如何有效率地提升質(zhì)量[M].北京:電子工業(yè)出版社,2013.

    [4] 周 念. 基于SVN的軟件配置管理的應(yīng)用研究[D].武漢:武漢理工大學(xué), 2013.

    [5] 相玉娟.基于變更管理的持續(xù)集成研究與應(yīng)用[D].安徽:合肥工業(yè)大學(xué),2009.

    [6] Ben Collins—Sussman,Brian W.Fitzpatrick,C.Michael Pilato.Version Control with Subversion For Subversion 1.5[M].Karl Fogel,2005:1-142.

    [7] Ste fan Kung,Lubbe Onken,Simon Large.Tortoise SVN Versionl 1.5.2[M].Karl Fogel,2005:102-132.

    [8] David Bellagio,Tom Milligan.Software Configuration Management Strategies and IBM Rational ClearCase:A Practical Introduction.2ndEdition[M].IBM Press.2005.

    [9] 徐仕成,楊邦榮. 基于C ruiseControl的持續(xù)集成實現(xiàn)方案[J]. 計算機(jī)與數(shù)字工程,2007,35(4):169-171.

    [10] 李坤寧.單元測試和持續(xù)集成在企業(yè)級軟件開發(fā)中的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2011.

    [11] 陳婧欣.基于Hudson的持續(xù)集成方案的研究與實現(xiàn)[D].長春:東北師范大學(xué),2011.

    [12] 李 進(jìn).某公司軟件持續(xù)集成改進(jìn)的分析設(shè)計及實施[D].北京:北京郵電大學(xué),2012.

    Continuous Integration of Application Software Based on SVN

    Jiang Wen,Liu Likang

    (School of Telecommunication Engineering, Xidian University, Xi’an 710071,China)

    With the development of the software development technology, software configuration management and continuous integration has become an important part in the process of software development. In order to correctly apply the new technology in the process of software development, needs to research work in this field, combines with working practice, uses SVN as configuration management tool, analyzes the characteristics of continuous integration tool ICP-CI, deployment mode and operation mechanism. Construction process of ICP-CI continuous integration building project , building process including the SCM tool SVN client installation, based on the static code SVN update, check and compilation, packaging, release package for automated tests is described in detail. In every stage of building project, possible errors causes the failure of building, through the analysis of the building failure reason, building failures can be divided into 3 groups, and gives the corresponding solutions. Finally introduces a typical case. Practice shows that the continuous integration based on SVN in the process of software development, reduces the cost of software development.

    continuous Integration;ICP-CI; ICP-CI server;build;SVN

    2015-08-23;

    2015-10-30。

    國防預(yù)研基金項目(A1120110007)。

    姜 文(1986-),女,陜西西安人,工程師,碩士研究生,CCF會員(E200032324M),主要從事圖像處理與分析,文字信息分析處理,數(shù)據(jù)庫應(yīng)用和軟件工程方向的研究。

    劉立康(1962-),男,陜西西安人,副教授,主要從事數(shù)字通信、圖像傳輸與處理、圖像分析與圖像識別等方向的研究。

    1671-4598(2016)03-0109-05

    10.16526/j.cnki.11-4762/tp.2016.03.030

    TP311.5

    A

    猜你喜歡
    代理服務(wù)器源代碼腳本
    人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
    酒駕
    基于TXL的源代碼插樁技術(shù)研究
    安奇奇與小cool 龍(第二回)
    地鐵信號系統(tǒng)中代理服務(wù)器的設(shè)計與實現(xiàn)
    數(shù)據(jù)庫系統(tǒng)shell腳本應(yīng)用
    電子測試(2018年14期)2018-09-26 06:04:24
    軟件源代碼非公知性司法鑒定方法探析
    IP地址隱藏器
    快樂假期
    揭秘龍湖產(chǎn)品“源代碼”
    亚洲欧美精品自产自拍| 国产又色又爽无遮挡免| 国产免费福利视频在线观看| 777米奇影视久久| 国产99久久九九免费精品| 国产乱来视频区| tube8黄色片| 久久精品人人爽人人爽视色| e午夜精品久久久久久久| 日韩成人av中文字幕在线观看| 老司机在亚洲福利影院| 久久毛片免费看一区二区三区| 国产成人精品久久久久久| 日日撸夜夜添| 欧美国产精品va在线观看不卡| 黑人巨大精品欧美一区二区蜜桃| 欧美在线黄色| 久久久久久久大尺度免费视频| 久久久久国产一级毛片高清牌| 又大又黄又爽视频免费| 亚洲精品国产一区二区精华液| av电影中文网址| 国产在线一区二区三区精| 国产在线免费精品| 99久久精品国产亚洲精品| 美女福利国产在线| 亚洲国产精品国产精品| 亚洲欧美精品自产自拍| 成人三级做爰电影| 九色亚洲精品在线播放| 一本一本久久a久久精品综合妖精| 一级片免费观看大全| 亚洲国产欧美在线一区| a 毛片基地| 精品国产超薄肉色丝袜足j| 亚洲欧美激情在线| 日韩大片免费观看网站| 国产亚洲午夜精品一区二区久久| 黄片播放在线免费| 亚洲国产欧美网| 亚洲专区中文字幕在线 | 亚洲熟女精品中文字幕| 少妇猛男粗大的猛烈进出视频| 欧美日韩亚洲高清精品| 看十八女毛片水多多多| 亚洲欧美成人综合另类久久久| 日本av手机在线免费观看| 超碰97精品在线观看| 深夜精品福利| 黄片无遮挡物在线观看| 天美传媒精品一区二区| 亚洲av成人不卡在线观看播放网 | 欧美老熟妇乱子伦牲交| av福利片在线| 亚洲欧美清纯卡通| 搡老岳熟女国产| 精品免费久久久久久久清纯 | 国产精品嫩草影院av在线观看| 无遮挡黄片免费观看| 国产av精品麻豆| 精品一区二区三区四区五区乱码 | 97人妻天天添夜夜摸| 久久精品熟女亚洲av麻豆精品| 午夜福利网站1000一区二区三区| 欧美中文综合在线视频| 免费看av在线观看网站| 国产又爽黄色视频| 亚洲国产欧美网| av免费观看日本| 哪个播放器可以免费观看大片| 亚洲av福利一区| 亚洲精品国产色婷婷电影| 免费在线观看视频国产中文字幕亚洲 | 少妇人妻 视频| 中文精品一卡2卡3卡4更新| 久久国产精品大桥未久av| 性高湖久久久久久久久免费观看| 国产黄色免费在线视频| 性少妇av在线| 国产精品三级大全| 热re99久久国产66热| 九九爱精品视频在线观看| 亚洲中文av在线| 国产麻豆69| 精品少妇内射三级| 亚洲欧美色中文字幕在线| 国产成人精品久久二区二区91 | 亚洲欧美中文字幕日韩二区| 黄片小视频在线播放| 亚洲人成电影观看| 国产成人a∨麻豆精品| 三上悠亚av全集在线观看| 亚洲av电影在线进入| av片东京热男人的天堂| 中文乱码字字幕精品一区二区三区| 亚洲精品久久成人aⅴ小说| 国产精品 国内视频| av天堂久久9| 精品国产超薄肉色丝袜足j| 国产一区二区三区综合在线观看| 七月丁香在线播放| 九色亚洲精品在线播放| 国产成人精品福利久久| av网站在线播放免费| 老司机在亚洲福利影院| 捣出白浆h1v1| 日日撸夜夜添| 亚洲精品第二区| 免费在线观看完整版高清| 99精品久久久久人妻精品| 好男人视频免费观看在线| 在线观看人妻少妇| 这个男人来自地球电影免费观看 | 亚洲成人av在线免费| 菩萨蛮人人尽说江南好唐韦庄| 精品久久久精品久久久| avwww免费| 国产精品久久久久久人妻精品电影 | 久久久久久久国产电影| 一级毛片黄色毛片免费观看视频| 国产亚洲午夜精品一区二区久久| 中文字幕亚洲精品专区| 最近中文字幕2019免费版| 午夜老司机福利片| 黄色毛片三级朝国网站| 99九九在线精品视频| 国产精品成人在线| 欧美精品人与动牲交sv欧美| 看非洲黑人一级黄片| 国产人伦9x9x在线观看| 黄色毛片三级朝国网站| 亚洲精品在线美女| 日本欧美视频一区| 性高湖久久久久久久久免费观看| 伊人亚洲综合成人网| 99热网站在线观看| 国产亚洲最大av| 久久韩国三级中文字幕| 国产精品99久久99久久久不卡 | 国产极品天堂在线| 午夜久久久在线观看| 久久97久久精品| 久久精品久久久久久久性| 丝袜喷水一区| 老汉色av国产亚洲站长工具| 免费高清在线观看视频在线观看| av又黄又爽大尺度在线免费看| av天堂久久9| 最近的中文字幕免费完整| 91成人精品电影| 中文天堂在线官网| 啦啦啦在线免费观看视频4| 亚洲欧美激情在线| 免费女性裸体啪啪无遮挡网站| 免费av中文字幕在线| 如何舔出高潮| 高清黄色对白视频在线免费看| 伦理电影免费视频| 极品少妇高潮喷水抽搐| 超色免费av| 午夜福利视频精品| 午夜福利一区二区在线看| 观看av在线不卡| 婷婷色综合www| 久久久精品免费免费高清| 黄片无遮挡物在线观看| 日韩免费高清中文字幕av| 秋霞伦理黄片| 日韩精品有码人妻一区| 在现免费观看毛片| 亚洲男人天堂网一区| 亚洲国产av新网站| 97人妻天天添夜夜摸| 欧美日本中文国产一区发布| 操美女的视频在线观看| 婷婷色av中文字幕| 国产免费福利视频在线观看| 国产免费视频播放在线视频| 美女中出高潮动态图| 成人手机av| 一本久久精品| 国产探花极品一区二区| av又黄又爽大尺度在线免费看| 久久久精品区二区三区| 美女脱内裤让男人舔精品视频| 亚洲欧洲日产国产| 精品人妻一区二区三区麻豆| 91国产中文字幕| 日韩欧美精品免费久久| 亚洲第一青青草原| 国产亚洲欧美精品永久| 自线自在国产av| 亚洲国产欧美一区二区综合| 日本av手机在线免费观看| videos熟女内射| 亚洲精品视频女| 少妇猛男粗大的猛烈进出视频| 青春草视频在线免费观看| 国产黄频视频在线观看| 咕卡用的链子| 看免费成人av毛片| 成人影院久久| 一级片'在线观看视频| 亚洲精品成人av观看孕妇| 性高湖久久久久久久久免费观看| 国产精品女同一区二区软件| 亚洲成人免费av在线播放| av在线观看视频网站免费| 色播在线永久视频| 亚洲精品一二三| 操美女的视频在线观看| 在线亚洲精品国产二区图片欧美| 免费高清在线观看视频在线观看| 日韩免费高清中文字幕av| 亚洲男人天堂网一区| 女人精品久久久久毛片| 老司机靠b影院| 肉色欧美久久久久久久蜜桃| 卡戴珊不雅视频在线播放| 80岁老熟妇乱子伦牲交| 在线观看三级黄色| 国产在线一区二区三区精| 日韩大码丰满熟妇| 老司机深夜福利视频在线观看 | 成年av动漫网址| 中文天堂在线官网| 一区二区三区乱码不卡18| 欧美激情 高清一区二区三区| 人人妻人人澡人人看| 侵犯人妻中文字幕一二三四区| 成人亚洲精品一区在线观看| 人人妻人人添人人爽欧美一区卜| 精品国产一区二区三区四区第35| 99热网站在线观看| 中文字幕亚洲精品专区| 亚洲美女黄色视频免费看| 王馨瑶露胸无遮挡在线观看| 日本黄色日本黄色录像| 国产精品欧美亚洲77777| 老汉色∧v一级毛片| 欧美xxⅹ黑人| 一区二区三区乱码不卡18| 在线精品无人区一区二区三| 搡老乐熟女国产| 国产在线一区二区三区精| 这个男人来自地球电影免费观看 | 亚洲精品自拍成人| 免费在线观看视频国产中文字幕亚洲 | 亚洲熟女毛片儿| 免费女性裸体啪啪无遮挡网站| 久久精品久久精品一区二区三区| 久久亚洲国产成人精品v| 亚洲精品乱久久久久久| 精品人妻一区二区三区麻豆| 观看av在线不卡| 免费黄色在线免费观看| 成人毛片60女人毛片免费| 啦啦啦视频在线资源免费观看| 午夜免费观看性视频| 国产一区二区在线观看av| 日韩中文字幕欧美一区二区 | av网站在线播放免费| 日韩制服丝袜自拍偷拍| 91aial.com中文字幕在线观看| 曰老女人黄片| 天堂中文最新版在线下载| 日日爽夜夜爽网站| 亚洲精品美女久久久久99蜜臀 | 精品少妇内射三级| 日本欧美视频一区| 交换朋友夫妻互换小说| 午夜激情久久久久久久| 国产av国产精品国产| 黄色 视频免费看| 久久99一区二区三区| 王馨瑶露胸无遮挡在线观看| 国产精品.久久久| 成人18禁高潮啪啪吃奶动态图| 天天影视国产精品| 成人国语在线视频| 极品少妇高潮喷水抽搐| 日本一区二区免费在线视频| 亚洲熟女毛片儿| 男女下面插进去视频免费观看| 中文字幕高清在线视频| 欧美日本中文国产一区发布| 国产精品女同一区二区软件| 少妇被粗大的猛进出69影院| 啦啦啦在线观看免费高清www| 人人妻,人人澡人人爽秒播 | 一级片'在线观看视频| 人人妻,人人澡人人爽秒播 | 69精品国产乱码久久久| 亚洲国产欧美在线一区| 一级毛片 在线播放| 国产免费视频播放在线视频| 成年女人毛片免费观看观看9 | 啦啦啦啦在线视频资源| 搡老岳熟女国产| 久久精品熟女亚洲av麻豆精品| 久久久国产精品麻豆| 色吧在线观看| 久久精品国产综合久久久| 男人添女人高潮全过程视频| 日本av免费视频播放| 久久人人爽av亚洲精品天堂| 人人妻,人人澡人人爽秒播 | 老汉色∧v一级毛片| 人成视频在线观看免费观看| 午夜免费鲁丝| 日韩 亚洲 欧美在线| 久久毛片免费看一区二区三区| 国产成人91sexporn| 麻豆乱淫一区二区| av有码第一页| 国产亚洲最大av| 国产在线一区二区三区精| 成年美女黄网站色视频大全免费| 男女国产视频网站| 妹子高潮喷水视频| 91精品三级在线观看| 国产一区二区在线观看av| 2021少妇久久久久久久久久久| 1024香蕉在线观看| 国产97色在线日韩免费| 国产乱来视频区| 色94色欧美一区二区| av片东京热男人的天堂| 色婷婷久久久亚洲欧美| 精品人妻熟女毛片av久久网站| 成人国产av品久久久| 国产男女超爽视频在线观看| 观看美女的网站| 尾随美女入室| 人人澡人人妻人| 18禁国产床啪视频网站| 国产在视频线精品| 久久久久久久久久久免费av| 国产成人免费无遮挡视频| 国产伦理片在线播放av一区| 欧美日韩视频高清一区二区三区二| 午夜免费男女啪啪视频观看| 成人18禁高潮啪啪吃奶动态图| 另类亚洲欧美激情| 久久久久精品国产欧美久久久 | 欧美日韩av久久| 天堂中文最新版在线下载| 亚洲综合精品二区| 狠狠婷婷综合久久久久久88av| 丰满少妇做爰视频| 狠狠婷婷综合久久久久久88av| 咕卡用的链子| 免费女性裸体啪啪无遮挡网站| 一本久久精品| 久久精品国产亚洲av高清一级| 日韩免费高清中文字幕av| 色94色欧美一区二区| 91精品国产国语对白视频| 亚洲精品美女久久av网站| 国产一区二区 视频在线| 熟女av电影| 激情五月婷婷亚洲| 免费在线观看完整版高清| 久久影院123| 欧美激情 高清一区二区三区| 成人18禁高潮啪啪吃奶动态图| kizo精华| 日韩成人av中文字幕在线观看| 亚洲,欧美,日韩| 精品第一国产精品| 在线精品无人区一区二区三| 亚洲精品av麻豆狂野| 91精品三级在线观看| 日韩成人av中文字幕在线观看| 亚洲成av片中文字幕在线观看| 在线观看国产h片| 精品视频人人做人人爽| 久久久久精品久久久久真实原创| 精品少妇一区二区三区视频日本电影 | 在现免费观看毛片| 亚洲成人国产一区在线观看 | 黑人猛操日本美女一级片| 人人妻,人人澡人人爽秒播 | 一区二区三区精品91| 夜夜骑夜夜射夜夜干| 色94色欧美一区二区| 日本爱情动作片www.在线观看| 午夜福利一区二区在线看| 日韩一卡2卡3卡4卡2021年| 麻豆精品久久久久久蜜桃| 色网站视频免费| 久久热在线av| 天天躁狠狠躁夜夜躁狠狠躁| 免费观看a级毛片全部| 国产精品久久久久久精品电影小说| 亚洲av日韩精品久久久久久密 | 操美女的视频在线观看| 国产乱来视频区| 在线精品无人区一区二区三| 亚洲国产av影院在线观看| 97人妻天天添夜夜摸| 欧美黑人精品巨大| 国产精品一国产av| 黄色视频在线播放观看不卡| 国产男女超爽视频在线观看| 啦啦啦中文免费视频观看日本| 80岁老熟妇乱子伦牲交| 精品久久蜜臀av无| 纯流量卡能插随身wifi吗| 久久99精品国语久久久| 热99国产精品久久久久久7| 99精国产麻豆久久婷婷| 免费av中文字幕在线| 久久久久久久精品精品| 欧美在线黄色| 午夜老司机福利片| 国产乱来视频区| 国产有黄有色有爽视频| xxxhd国产人妻xxx| 成人午夜精彩视频在线观看| 日韩大片免费观看网站| 亚洲专区中文字幕在线 | 人妻人人澡人人爽人人| 老汉色av国产亚洲站长工具| 久久久久精品国产欧美久久久 | 十分钟在线观看高清视频www| 悠悠久久av| 大香蕉久久成人网| 免费日韩欧美在线观看| 亚洲人成77777在线视频| 一区二区三区四区激情视频| 国产精品国产av在线观看| 亚洲精品国产一区二区精华液| 国产精品久久久av美女十八| 日本vs欧美在线观看视频| 亚洲美女搞黄在线观看| 亚洲精品视频女| a级毛片黄视频| 精品国产乱码久久久久久男人| 五月天丁香电影| 日韩av不卡免费在线播放| 久久久久久免费高清国产稀缺| 观看av在线不卡| 高清在线视频一区二区三区| 熟女少妇亚洲综合色aaa.| kizo精华| 毛片一级片免费看久久久久| 亚洲一码二码三码区别大吗| 在线观看www视频免费| 国产欧美日韩综合在线一区二区| videos熟女内射| 日本猛色少妇xxxxx猛交久久| 亚洲第一青青草原| 嫩草影院入口| www.av在线官网国产| 日韩电影二区| 黄片无遮挡物在线观看| 97精品久久久久久久久久精品| 成年美女黄网站色视频大全免费| 最近中文字幕高清免费大全6| 亚洲第一青青草原| 色综合欧美亚洲国产小说| 啦啦啦啦在线视频资源| 又大又爽又粗| 美女国产高潮福利片在线看| 肉色欧美久久久久久久蜜桃| 欧美日韩国产mv在线观看视频| 成人免费观看视频高清| 久久99热这里只频精品6学生| 1024香蕉在线观看| 国产亚洲欧美精品永久| 欧美精品高潮呻吟av久久| 狂野欧美激情性xxxx| 久久久精品免费免费高清| 午夜久久久在线观看| 亚洲国产看品久久| 丝袜人妻中文字幕| 国产成人91sexporn| 国产欧美日韩一区二区三区在线| 街头女战士在线观看网站| 美女视频免费永久观看网站| 欧美日韩视频精品一区| 亚洲精品国产区一区二| 欧美日韩视频精品一区| 亚洲三区欧美一区| 天天躁夜夜躁狠狠久久av| 国产日韩欧美视频二区| 视频在线观看一区二区三区| 国产日韩欧美视频二区| 超色免费av| 飞空精品影院首页| 1024香蕉在线观看| 亚洲欧洲日产国产| 一级爰片在线观看| av福利片在线| 国产精品久久久久久久久免| 中文字幕人妻熟女乱码| 熟妇人妻不卡中文字幕| 99热网站在线观看| 国产亚洲av片在线观看秒播厂| 亚洲欧美成人综合另类久久久| 亚洲伊人色综图| 色吧在线观看| 国产成人系列免费观看| 欧美日韩亚洲国产一区二区在线观看 | 国产又爽黄色视频| 一边亲一边摸免费视频| 成年动漫av网址| 男女高潮啪啪啪动态图| 国产精品久久久人人做人人爽| 欧美精品av麻豆av| 宅男免费午夜| 久久人人爽av亚洲精品天堂| 99国产精品免费福利视频| 黑人欧美特级aaaaaa片| 99国产精品免费福利视频| 少妇猛男粗大的猛烈进出视频| 人人妻人人澡人人爽人人夜夜| 丰满少妇做爰视频| 免费女性裸体啪啪无遮挡网站| 欧美乱码精品一区二区三区| 亚洲av电影在线进入| 国产在视频线精品| 国产av码专区亚洲av| 99久久99久久久精品蜜桃| 国产探花极品一区二区| 免费观看性生交大片5| 亚洲欧美精品自产自拍| 婷婷色av中文字幕| av又黄又爽大尺度在线免费看| 男女床上黄色一级片免费看| 亚洲综合精品二区| 两性夫妻黄色片| 涩涩av久久男人的天堂| 9色porny在线观看| 国产精品av久久久久免费| 日韩一区二区三区影片| 成人国产av品久久久| 欧美另类一区| 亚洲av电影在线进入| 亚洲五月色婷婷综合| 性少妇av在线| 免费在线观看完整版高清| 婷婷色综合www| 91aial.com中文字幕在线观看| 久久久久久人妻| av片东京热男人的天堂| 欧美在线黄色| 亚洲色图综合在线观看| 永久免费av网站大全| 精品少妇一区二区三区视频日本电影 | 啦啦啦在线观看免费高清www| 亚洲精品美女久久av网站| av女优亚洲男人天堂| 精品国产乱码久久久久久小说| 秋霞伦理黄片| 王馨瑶露胸无遮挡在线观看| 免费高清在线观看视频在线观看| 亚洲成人免费av在线播放| 精品一区二区三区av网在线观看 | 好男人视频免费观看在线| 亚洲精品久久久久久婷婷小说| 国产野战对白在线观看| 日韩成人av中文字幕在线观看| 久久99一区二区三区| 999久久久国产精品视频| 一级毛片电影观看| 美女脱内裤让男人舔精品视频| 久久精品久久久久久久性| av又黄又爽大尺度在线免费看| 亚洲精品美女久久av网站| 老司机在亚洲福利影院| 精品一区二区免费观看| 亚洲国产精品999| 超碰成人久久| 操出白浆在线播放| 国产又色又爽无遮挡免| 欧美久久黑人一区二区| 亚洲中文av在线| 人妻人人澡人人爽人人| 国产淫语在线视频| 老鸭窝网址在线观看| 无限看片的www在线观看| 制服丝袜香蕉在线| 亚洲精品第二区| 亚洲精品视频女| 国产精品久久久久久精品古装| 99香蕉大伊视频| 悠悠久久av| 99热网站在线观看| 久久精品熟女亚洲av麻豆精品| 久久午夜综合久久蜜桃| 在线精品无人区一区二区三| 大片免费播放器 马上看| 满18在线观看网站| 国产日韩欧美视频二区| 又大又黄又爽视频免费| 国产免费又黄又爽又色| 欧美精品av麻豆av| 国产在线免费精品| 欧美人与性动交α欧美软件| 亚洲av中文av极速乱| 中文字幕制服av| 一本—道久久a久久精品蜜桃钙片| 亚洲人成网站在线观看播放| 日韩成人av中文字幕在线观看| 国产av码专区亚洲av| 久热爱精品视频在线9| 别揉我奶头~嗯~啊~动态视频 | 中文精品一卡2卡3卡4更新| 日本黄色日本黄色录像| 久热爱精品视频在线9| 日韩中文字幕视频在线看片| 黄色一级大片看看| 一区二区三区激情视频|