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

    Linux平臺(tái)下代碼覆蓋率報(bào)告自動(dòng)化輸出設(shè)計(jì)①

    2019-04-10 05:07:22石佳琦
    關(guān)鍵詞:拷貝服務(wù)器端腳本

    石佳琦,陳 鵬

    1(武漢郵電科學(xué)研究院,武漢 430010)

    2(烽火通信科技股份有限公司,武漢 430010)

    覆蓋率對(duì)于軟件測(cè)試有著非常重要的作用.通過(guò)代碼覆蓋率,可以發(fā)現(xiàn)程序的未測(cè)試部分,估計(jì)程序中哪段代碼最耗時(shí),幫助開發(fā)人員創(chuàng)建更高效、更快的運(yùn)行代碼,提高代碼質(zhì)量.

    GCOV是一個(gè)GNU的本地覆蓋測(cè)試工具[1],配合GCC共同實(shí)現(xiàn)對(duì)C或者C++文件的語(yǔ)句覆蓋和分支覆蓋測(cè)試.而在Linux環(huán)境下,shell腳本的魅力大放異彩,通過(guò)帶參數(shù)的指令集,可以實(shí)現(xiàn)許多的功能.Expect腳本工具可以實(shí)現(xiàn)交互式任務(wù),而無(wú)需人的干預(yù).Cygwin 工具,更是為我們提供了一種在Windows環(huán)境下類Linux的環(huán)境.本文基于GCOV工具覆蓋率生成流程,配合上述軟件工具完成Linux平臺(tái)下代碼覆蓋率報(bào)告自動(dòng)化輸出設(shè)計(jì)[2,3].

    1 GCOV覆蓋率原理與過(guò)程

    1.1 GCOV工作原理

    基本塊BB(Basic Block)是程序中一個(gè)順序執(zhí)行的語(yǔ)句序列,BB中的所有語(yǔ)句的執(zhí)行次數(shù)一定相同,一般由多個(gè)順序執(zhí)行語(yǔ)句后跟一個(gè)跳轉(zhuǎn)語(yǔ)句組成.ARC分支,從一個(gè)BB到另一個(gè)BB的跳轉(zhuǎn)記為一個(gè)ARC.

    如圖1所示.如果跳轉(zhuǎn)語(yǔ)句是有條件的,就產(chǎn)生了一個(gè)分支(ARC),該基本塊就有兩個(gè)基本塊作為目的地.如果把每個(gè)基本塊當(dāng)作一個(gè)節(jié)點(diǎn),那么一個(gè)函數(shù)中的所有基本塊就構(gòu)成了一個(gè)有向圖,稱之為基本塊圖.只要知道BB或ARC的執(zhí)行次數(shù)就可以推算出所有的BB和所有的ARC的執(zhí)行次數(shù).GCOV根據(jù)BB和ARC的統(tǒng)計(jì)情況來(lái)統(tǒng)計(jì)各BB內(nèi)各行代碼執(zhí)行情況,從而計(jì)算整個(gè)程序的覆蓋率情況[4].

    圖1 基本塊圖

    1.2 GCOV收集覆蓋率信息流程

    主要工作流程見圖2.

    1)編譯前,在編譯器中加入編譯器參數(shù)-fprofilearcs-ftest-coverage.

    2)源碼經(jīng)過(guò)編譯預(yù)處理,在生成匯編文件的階段完成插樁.生成可執(zhí)行文件,并且生成關(guān)聯(lián)BB和跳轉(zhuǎn)次數(shù)ARC的*.gcno文件.

    3)執(zhí)行可執(zhí)行文件,在運(yùn)行過(guò)程中“樁點(diǎn)”負(fù)責(zé)收集程序的執(zhí)行信息[5].

    4)生成具有BB和ARC的執(zhí)行統(tǒng)計(jì)次數(shù)等數(shù)據(jù)信的*.gcda文件.

    5)通過(guò)lcov和genhtml可將*.gcno、*.gcda中的統(tǒng)計(jì)信息圖形化,生成具體的報(bào)告文檔.

    2 設(shè)計(jì)方案及模型

    由于實(shí)際運(yùn)行環(huán)境為嵌入式分布式設(shè)備,且編譯環(huán)境和測(cè)試環(huán)境分別在不同的服務(wù)器上,我們采用模塊化設(shè)計(jì),將各功能的實(shí)現(xiàn)模塊化,便于后續(xù)的管理優(yōu)化,降低各階段執(zhí)行的耦合率,提高覆蓋率自動(dòng)化測(cè)試的時(shí)效性.

    圖2 GCOV收集覆蓋率信息流程圖

    2.1 設(shè)計(jì)方案介紹

    整體環(huán)境分為四部分: 編譯環(huán)境、運(yùn)行環(huán)境、服務(wù)器端、用戶端.

    編譯環(huán)境: 主要實(shí)現(xiàn)不同模塊軟件源代碼編譯打包,完成覆蓋率報(bào)告的生成.

    運(yùn)行環(huán)境: 軟件運(yùn)行的實(shí)際環(huán)境.通過(guò)更新軟件實(shí)際運(yùn)行,實(shí)現(xiàn)代碼在具體目標(biāo)終端設(shè)備機(jī)上 運(yùn)行的代碼覆蓋率實(shí)際情況.

    服務(wù)器端: 工程測(cè)試人員操作平臺(tái),主要完成源代碼編譯的操作的控制、更新代碼在目標(biāo)終端設(shè)備機(jī)上運(yùn)行情況的控制以及代碼自動(dòng)化覆蓋率測(cè)試及輸出的.

    用戶端: 工程測(cè)試人員個(gè)人PC覆蓋率報(bào)告文檔的目標(biāo)用戶,可以設(shè)置多個(gè).

    2.2 系統(tǒng)結(jié)構(gòu)拓?fù)鋱D

    圖3為系統(tǒng)結(jié)構(gòu)拓?fù)鋱D.

    2.3 軟件工具介紹

    Cygwin是一個(gè)在Windows平臺(tái)上運(yùn)行的類Linux模擬環(huán)境,它提供一個(gè)UNIX模擬 DLL 以及在其上上層構(gòu)建的多種可以在 Linux 系統(tǒng)中找到的軟件包.

    Expect是一種免費(fèi)的編程工具語(yǔ)言,用來(lái)實(shí)現(xiàn)自動(dòng)交互式任務(wù)進(jìn)行通信,而無(wú)需人工值守.它是一個(gè)用來(lái)實(shí)現(xiàn)自動(dòng)交互功能的軟件套件.

    在當(dāng)前Windows工作服務(wù)器安裝Cygwin 軟件,在安裝時(shí)勾選除Linux環(huán)境一些常見的軟件包外,還需勾選基于TCL 的Expect 軟件包,配置支持遠(yuǎn)程遠(yuǎn)程登錄的ssh等服務(wù)[2].

    圖3 系統(tǒng)結(jié)構(gòu)拓?fù)鋱D

    2.4 各模塊設(shè)計(jì)目的與實(shí)現(xiàn)的功能

    2.4.1 服務(wù)器端設(shè)計(jì)目的與實(shí)現(xiàn)的功能

    由于程序需要在終端設(shè)備上運(yùn)行,且測(cè)試環(huán)境和編譯環(huán)境在不同的服務(wù)器上,這就需要我們?cè)O(shè)置一個(gè)中心節(jié)點(diǎn)可以有效的將各模塊和環(huán)境聯(lián)系起來(lái),以實(shí)現(xiàn)設(shè)計(jì)的完整性和操作連貫性.

    不同用戶可以遠(yuǎn)程到服務(wù)器端,依據(jù)GCOV覆蓋率報(bào)告生成的步驟,通過(guò)調(diào)用封裝好腳本工具實(shí)現(xiàn)如下功能:

    自動(dòng)登錄編譯環(huán)境完成編譯,拷貝可執(zhí)行文至服務(wù)器端的用戶目錄;

    拷貝可執(zhí)行文件至測(cè)試環(huán)境,并將生成的*.gcda文件拷貝至用戶目錄;

    自動(dòng)檢查用戶目錄存在*.gcda文件時(shí),拷貝*.gcda文件至編譯環(huán)境對(duì)應(yīng)目錄,執(zhí)行l(wèi)cov 和 genhtml完成可視化覆蓋率報(bào)告的生成

    自動(dòng)檢查在編譯環(huán)境對(duì)應(yīng)目錄下是否存在生成的覆蓋率報(bào)告,并拷貝至服務(wù)端用戶目錄.

    2.4.2 編譯環(huán)境設(shè)計(jì)目的與實(shí)現(xiàn)的功能

    大型的C工程的編譯都有各自的makefile和編譯腳本.編譯時(shí)工程開發(fā)人員通過(guò)鍵入不同的參數(shù)來(lái)編譯外鏈庫(kù)文件或者可執(zhí)行文件.

    該模塊設(shè)計(jì)主要目的是生成覆蓋率數(shù)據(jù)文件*.gcno.通過(guò)修改編譯腳本實(shí)現(xiàn)插樁編譯以及外鏈庫(kù)和可執(zhí)行文件的單一編譯或混合編譯.通過(guò)判斷是否帶GCOV參數(shù)來(lái)控制是否進(jìn)行插樁編譯,即使在不進(jìn)行覆蓋率編譯的情況下,也可以實(shí)現(xiàn)普通編譯及文件拷貝,減少了開發(fā)人員與編譯服務(wù)器的交互.該模塊主要響應(yīng)來(lái)自“服務(wù)器端”開發(fā)人員鍵入命令,對(duì)編譯環(huán)境下常用編譯文件、腳本的解析執(zhí)行,完成軟件的編譯拷貝工作.將參數(shù)提取,根據(jù)工程開發(fā)人員在編譯模塊腳本鍵入不同的參數(shù)組合實(shí)現(xiàn)單一庫(kù)文件或可執(zhí)行文件的編譯,以及庫(kù)文件可執(zhí)行文件的混合編譯.服務(wù)器端不編譯服務(wù)器交互過(guò)程見圖4.

    2.4.3 運(yùn)行環(huán)境設(shè)計(jì)目的與實(shí)現(xiàn)的功能

    運(yùn)行環(huán)境設(shè)計(jì)的主要目的是生成覆蓋率數(shù)據(jù)文件*.gcda.運(yùn)行可執(zhí)行文件,在捕捉到外部信號(hào)時(shí),對(duì)程序進(jìn)行exit.檢查是否存在*.gcda文件并通過(guò)服務(wù)器端轉(zhuǎn)存到編譯環(huán)境.

    2.4.4 用戶側(cè)設(shè)計(jì)目的與實(shí)現(xiàn)的功能

    用戶側(cè)為遠(yuǎn)程到服務(wù)器端的客戶端.是開發(fā)人員工作的物理環(huán)境.

    圖4 服務(wù)器端不編譯服務(wù)器交互過(guò)程

    3 腳本工具封裝及流程說(shuō)明

    3.1 各腳本工具封裝

    3.1.1 流程提示工具

    main.sh 參數(shù):(0~9 的數(shù)字 或無(wú))

    功能說(shuō)明:

    主要通過(guò)echo 命令對(duì)整個(gè)流程進(jìn)行索引,指導(dǎo)流程.參數(shù): 一個(gè)數(shù)字.不帶參數(shù)時(shí)輸出整個(gè)流程提示,已數(shù)字為流程序號(hào)索引;帶參數(shù)時(shí),輸出該數(shù)字對(duì)應(yīng)流程調(diào)用的腳本及示例.

    腳本示例:

    main.sh 1

    3.1.2 拷貝工具

    copy.sh 參數(shù): 1)拷貝環(huán)境;2)需要拷貝的文件;3)目標(biāo)環(huán)境;4)目標(biāo)路徑.

    功能說(shuō)明:

    完成對(duì)本地文件拷貝到目標(biāo)環(huán)境,或從目標(biāo)環(huán)境拷貝文件到本地.其中目標(biāo)環(huán)境可以是運(yùn)行環(huán)境或用戶端.

    功能實(shí)現(xiàn):

    遠(yuǎn)程拷貝時(shí)需要輸入用戶名和密碼,以及路徑.由于我們拷貝文件的目錄比較固定,可以將這些靜態(tài)數(shù)據(jù)寫成配置文件,而動(dòng)態(tài)的拷貝環(huán)境,文件名等作為腳本工具的參數(shù).

    local_to_dst 主要完成了本地到目標(biāo)環(huán)境的遠(yuǎn)程拷貝.將 scp 命令“嵌入”到Expect腳本中,對(duì)登錄用戶寫靜態(tài)配置,當(dāng)目標(biāo)環(huán)境提示輸入密碼時(shí),將提示語(yǔ)“password”作為Expect響應(yīng)關(guān)鍵字,此時(shí)將配置好的靜態(tài)密碼通過(guò) Expect 中 send 命令發(fā)送,則實(shí)現(xiàn)了文件自動(dòng)拷貝.

    同理dst_to_local 實(shí)現(xiàn)了反向的功能.

    腳本示例:

    copy.sh local shell_shell_gcov dst board1

    3.1.3 校驗(yàn)工具

    check.sh 參數(shù): 1)校驗(yàn)環(huán)境;2)工作目錄;3)文件類型;4)文件名稱;5)user_name;6)date.

    功能說(shuō)明:

    完成對(duì)目標(biāo)環(huán)境下目標(biāo)文檔是否存在進(jìn)行校驗(yàn),完成不同拷貝動(dòng)作.

    功能實(shí)現(xiàn):

    調(diào)用本地或拷貝到運(yùn)行環(huán)境和編譯環(huán)境 shell_for_gcov 下的find_the_file.sh ,將目標(biāo)文件校驗(yàn)結(jié)果寫入校驗(yàn)文件,并拷貝到服務(wù)器端建立的用戶目錄下.我們對(duì)不同的目標(biāo)文件都設(shè)有一個(gè)以文件類型結(jié)尾的校驗(yàn)結(jié)果文件,通過(guò)這個(gè)文件寫入的內(nèi)容判斷是否存在目標(biāo)文件,是否可以進(jìn)行下一步的拷貝動(dòng)作.

    腳本示例:

    check.sh root gcov gcda gcda-0506 sjq 20180506

    3.1.4 編譯工具

    complex_compile.sh

    參數(shù): 1)編譯類別;2)編譯目錄;3)工作路徑;4)版本信息;5)user_name;6)date.

    功能說(shuō)明:

    通過(guò)編譯類別遠(yuǎn)程不同的編譯服務(wù)器,通過(guò)編譯目錄執(zhí)行不同的編譯腳本,加版本信息對(duì)每次編譯進(jìn)行區(qū)分.

    功能實(shí)現(xiàn):

    首先對(duì)編譯makefile修改增加和覆蓋率相關(guān)的編譯和鏈接選項(xiàng).

    其次在當(dāng)前前Windows 服務(wù)器選定一個(gè)工作路徑,以以此路徑為基路徑,調(diào)用mkdir.sh 腳本,兩個(gè)參數(shù) 1)、人名,2)日期 ,以u(píng)ser_name為基路徑下一級(jí)目錄,日期作為一級(jí)目錄下二級(jí)目錄,用于存放相關(guān)文件.檢查基路徑下所有一級(jí)目錄名,若不存在則新建,若存在則進(jìn)入該目錄,檢查一級(jí)目錄下二級(jí)目錄名,如不存在則新建,若存在則輸出提示,新建的目錄名后加bak后綴以作區(qū)分.

    通過(guò)Expect交互腳本完成對(duì)可執(zhí)行文件以及可執(zhí)行文件依賴的外鏈庫(kù)進(jìn)行自動(dòng)化編譯.軟件包內(nèi)的不同可執(zhí)行文件是否需要編譯可以通過(guò)修改配置文件完成,編譯時(shí)將編譯配置文件內(nèi)的參數(shù)傳入到編譯腳本.如果外鏈的庫(kù)需要編譯,則先編譯外鏈庫(kù)再將庫(kù)文件拷貝到編譯可執(zhí)行文件的lib庫(kù)目錄下編譯[6,7].

    編譯完成后拷貝到服務(wù)器端的建立用戶目錄下,完成軟件包的解壓,將可執(zhí)行文件拷貝出.

    腳本示例:

    complex_compile.sh ccu " " 686214_V2R5_new 128 sjq 20171207

    3.1.5 備份工具

    backup.sh 參數(shù): 1)備份環(huán)境;2)備份文件類型;3)是否恢復(fù)操作標(biāo)志;4)user_name;5)date.

    功能說(shuō)明:

    完成不同環(huán)境上容易變動(dòng)的文件的備份,以便環(huán)境恢復(fù)出錯(cuò)時(shí)可以降回到以前版本.

    功能實(shí)現(xiàn):

    主要在備份環(huán)境上不同類型的文件備份目錄下以u(píng)ser_name為基路徑下一級(jí)目錄,日期作為一級(jí)目錄下二級(jí)目錄.將文件拷貝只該目錄下.需要恢復(fù)環(huán)境時(shí),將該目錄下的文件拷回原目錄下.

    腳本示例:

    Backup.sh dst exe 0 sjq 20180506

    功能說(shuō)明:

    完成對(duì)本地文件拷貝到目標(biāo)環(huán)境,或從目標(biāo)環(huán)境拷貝文件到本地.其中目標(biāo)環(huán)境可以是運(yùn)行環(huán)境或用戶端.

    3.2 主要功能實(shí)現(xiàn)流程

    圖5為本系統(tǒng)工作的主要流程.

    流程簡(jiǎn)述:

    1)調(diào)用mkdir.sh 輸入 user_name 和 date 信息,在服務(wù)器端建立用戶目錄用于存放文件;

    2)調(diào)用compile.sh 完成外鏈庫(kù)或軟件的編譯,編譯成功通過(guò)控制臺(tái)會(huì)輸出關(guān)鍵字“success”;

    3)通過(guò)expect交互腳本語(yǔ)言做出匹配該關(guān)鍵字的操作,即調(diào)用服務(wù)器上shell_for_gcov 下的find_the_file.sh查找是否存在編譯好的文件并寫校驗(yàn)文件,然后將校驗(yàn)文件拷貝到服務(wù)器端.此時(shí),expect腳本會(huì)自動(dòng)調(diào)用check.sh 讀取用戶目錄下的校驗(yàn)文件,如果讀取可以拷貝,后將帶有覆蓋率編譯的軟件拷貝至用戶目錄下,解壓軟件將可執(zhí)行文件取出;

    4)將運(yùn)行環(huán)境上的可執(zhí)行文件備份,將用戶目錄的新文件拷貝運(yùn)行環(huán)境運(yùn)行;

    5)登錄運(yùn)行環(huán)境系統(tǒng)設(shè)置覆蓋率相關(guān)的環(huán)境變量,運(yùn)行程序;

    6)觸發(fā)指令操作,覆蓋代碼執(zhí)行,待程序退出此時(shí)會(huì)在環(huán)境變量設(shè)置的目錄下生成存放同名C文件的GCDA 文件目錄;

    7)校驗(yàn)運(yùn)行GCDA文件是否生成,并拷貝至編譯服務(wù)器上的編譯目錄;

    8)在編譯環(huán)境執(zhí)行覆蓋率命令,此時(shí)會(huì)將覆蓋率的信息以html格式的文件輸出;

    9)校驗(yàn)是否生成覆蓋率報(bào)告,并通過(guò)mail命令拷貝到用戶目錄.

    4 測(cè)試驗(yàn)證及優(yōu)化建議

    4.1 測(cè)試結(jié)果

    本設(shè)計(jì)通過(guò)作者本人實(shí)際工作中進(jìn)行覆蓋率測(cè)試的經(jīng)驗(yàn)和經(jīng)歷提煉而來(lái).在進(jìn)行覆蓋率統(tǒng)計(jì)時(shí),很多準(zhǔn)備工作都是是單調(diào)重復(fù)的操作[8].由最開始shell腳本設(shè)計(jì)的批處理拷貝,在實(shí)踐中不斷完善,參考覆蓋率生成的步驟,將其設(shè)計(jì)成腳本工具,在實(shí)際中的確減少了人機(jī)的頻繁交互,節(jié)省了時(shí)間,提高了工作效率.

    4.2 優(yōu)化建議

    1)該設(shè)計(jì)并不是完全自動(dòng)的,部分修改還需人工操作,如:

    需要在測(cè)試main函數(shù)中增加信號(hào)捕捉函數(shù),以便后臺(tái)程序可以exit;

    需要在運(yùn)行環(huán)境中手動(dòng)設(shè)置環(huán)境變量,該步驟可以通過(guò)腳本實(shí)現(xiàn);

    程序的運(yùn)行需要手動(dòng)操作,該步驟也可以通過(guò)腳本實(shí)現(xiàn);

    2)本設(shè)計(jì)前提是在運(yùn)行環(huán)境和編譯環(huán)境可以登錄的情況下進(jìn)行的,沒有對(duì)環(huán)境的可用性進(jìn)行檢查,可以通ping命令配合過(guò)腳本實(shí)現(xiàn)對(duì)環(huán)境的可用性檢查;

    3)日志記錄并沒有保存文件,可以通過(guò)重定向的方式將控制臺(tái)打印按一定格式存文件;

    4)本設(shè)計(jì)的分支測(cè)試需要外部命令觸發(fā),可以通gtest工具對(duì)增加測(cè)試用例,配合GCOV實(shí)現(xiàn)對(duì)代碼的全覆蓋,給出更全面的報(bào)告;

    5)目前的覆蓋率是全量的覆蓋率,可以優(yōu)化實(shí)現(xiàn)增量代碼的覆蓋率.

    還有很多不足之處和待優(yōu)化的地方需要改進(jìn).

    圖5 代碼覆蓋率報(bào)告自動(dòng)輸出流程圖

    4.3 測(cè)試驗(yàn)證

    1)如圖6,首先進(jìn)入服務(wù)器端工作路徑,調(diào)用提示工具提示操作步驟;

    2)調(diào)用目錄創(chuàng)建工具,完成用戶目錄的創(chuàng)建(見圖7);

    3)調(diào)用編譯工具完成,軟件的編譯(見圖8);

    4)在運(yùn)行環(huán)境完成*.gcda文件生成,檢驗(yàn)后拷貝到服務(wù)器端,此時(shí)調(diào)用覆蓋率自動(dòng)輸出工具,會(huì)完成覆蓋率報(bào)告的自動(dòng)輸出(見圖9),并拷貝的服務(wù)器端用戶目錄下,見圖10.

    圖6 提示工具使用樣圖

    圖7 目錄創(chuàng)建工具使用樣圖

    圖8 編譯工具使用樣圖

    圖9 覆蓋率報(bào)告自動(dòng)輸出工具使用樣圖

    圖10 拷貝到用戶目錄下的覆蓋率報(bào)告及各種校驗(yàn)結(jié)果文件

    如圖11所示,我們可以看到整個(gè)源碼的覆蓋率情況,和函數(shù)覆蓋百分比.點(diǎn)擊某個(gè)C文件我們可以看到每一行代碼執(zhí)行的頻率,還有各函數(shù)的覆蓋情況以及內(nèi)部分支執(zhí)行的情況.

    圖11 生成的覆蓋率報(bào)告

    5 結(jié)束語(yǔ)

    本文介紹了一種Linux平臺(tái)下代碼覆蓋率自動(dòng)化輸出設(shè)計(jì).首先對(duì)本設(shè)計(jì)依據(jù)原理進(jìn)行了介紹,然后對(duì)系統(tǒng)整體的架構(gòu)進(jìn)行了介紹,以及各模塊的設(shè)計(jì)目的及實(shí)現(xiàn)功能進(jìn)行了描述,最后依據(jù)該設(shè)計(jì)進(jìn)行測(cè)試,并結(jié)合實(shí)際操作所遇到的問(wèn)題,指出了本設(shè)計(jì)的不足之處和優(yōu)化建議.

    本設(shè)計(jì)是作者在進(jìn)行Linux下覆蓋率測(cè)試時(shí),發(fā)現(xiàn)基于GCOV的覆蓋率測(cè)試具有操作繁瑣單調(diào)、耗時(shí)的特點(diǎn),為解決這一問(wèn)題對(duì)覆蓋率輸出做出了改進(jìn)優(yōu)化.與原有GCOV覆蓋率輸出相比,本設(shè)計(jì)具有搭建方便、操作簡(jiǎn)單,節(jié)省時(shí)間的的優(yōu)點(diǎn).同時(shí)通過(guò)修改編譯腳本和相關(guān)路徑及IP的配置文件,可實(shí)現(xiàn)移植.在現(xiàn)有的條件下極大的提供高了覆蓋率報(bào)告的輸出效率,為工程開發(fā)人員提供了有效依據(jù),節(jié)約了大量時(shí)間.

    猜你喜歡
    拷貝服務(wù)器端腳本
    酒駕
    安奇奇與小cool 龍(第二回)
    中國(guó)生殖健康(2018年1期)2018-11-06 07:14:38
    數(shù)據(jù)庫(kù)系統(tǒng)shell腳本應(yīng)用
    淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
    成功(2018年10期)2018-03-26 02:56:14
    快樂(lè)假期
    在Windows中安裝OpenVPN
    網(wǎng)頁(yè)防篡改中分布式文件同步復(fù)制系統(tǒng)
    文件拷貝誰(shuí)最“給力”
    基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
    久久久久久久久久成人| 在线观看美女被高潮喷水网站| 国产伦在线观看视频一区| 99热这里只有是精品在线观看| 大片免费播放器 马上看| 26uuu在线亚洲综合色| av.在线天堂| 精品视频人人做人人爽| 高清毛片免费看| 亚洲va在线va天堂va国产| 97超视频在线观看视频| 午夜福利在线在线| 国产爱豆传媒在线观看| 国产成人freesex在线| 国产亚洲一区二区精品| 男女国产视频网站| 亚洲精品乱码久久久久久按摩| 美女脱内裤让男人舔精品视频| kizo精华| 日本三级黄在线观看| 国产精品熟女久久久久浪| 97在线视频观看| 婷婷色麻豆天堂久久| 国产有黄有色有爽视频| 亚洲成色77777| 久久久久久久久久久丰满| 国精品久久久久久国模美| www.色视频.com| 少妇人妻一区二区三区视频| 赤兔流量卡办理| 乱码一卡2卡4卡精品| 亚洲国产色片| 国产精品女同一区二区软件| 七月丁香在线播放| 国产精品国产三级专区第一集| 大陆偷拍与自拍| 国产精品不卡视频一区二区| 国产黄色视频一区二区在线观看| 欧美zozozo另类| 日韩大片免费观看网站| 日韩av不卡免费在线播放| 久久久久久久亚洲中文字幕| 久久精品国产亚洲网站| 久久精品久久精品一区二区三区| 亚洲成人中文字幕在线播放| 天天躁夜夜躁狠狠久久av| 午夜福利在线观看免费完整高清在| 精品99又大又爽又粗少妇毛片| 人妻少妇偷人精品九色| 国产av国产精品国产| 少妇猛男粗大的猛烈进出视频 | 观看美女的网站| 亚洲自偷自拍三级| 日韩大片免费观看网站| 亚洲av免费在线观看| 自拍偷自拍亚洲精品老妇| 精品亚洲乱码少妇综合久久| 久久影院123| 色网站视频免费| 老司机影院毛片| 伦精品一区二区三区| 国产爽快片一区二区三区| 97精品久久久久久久久久精品| 免费观看无遮挡的男女| 亚洲精品国产成人久久av| 亚洲国产欧美人成| 亚洲av男天堂| 男的添女的下面高潮视频| 成年版毛片免费区| 亚洲精华国产精华液的使用体验| 午夜视频国产福利| 成人亚洲精品av一区二区| 日本一二三区视频观看| 在线观看免费高清a一片| 免费大片18禁| 国产精品人妻久久久影院| 九九久久精品国产亚洲av麻豆| 精品人妻视频免费看| 国产午夜福利久久久久久| www.av在线官网国产| 亚洲丝袜综合中文字幕| 亚洲精品456在线播放app| 久久久精品欧美日韩精品| 色吧在线观看| 少妇人妻一区二区三区视频| 91久久精品电影网| 夫妻性生交免费视频一级片| 国产探花极品一区二区| 中文在线观看免费www的网站| 美女视频免费永久观看网站| 最近2019中文字幕mv第一页| 麻豆精品久久久久久蜜桃| 极品教师在线视频| 亚洲综合精品二区| 男女边吃奶边做爰视频| 国产亚洲91精品色在线| 久久久国产一区二区| 青春草亚洲视频在线观看| 91在线精品国自产拍蜜月| 我要看日韩黄色一级片| 亚洲av免费在线观看| av又黄又爽大尺度在线免费看| 国产av不卡久久| 亚洲自偷自拍三级| 只有这里有精品99| 制服丝袜香蕉在线| 亚洲经典国产精华液单| 国产精品久久久久久久电影| 午夜福利在线观看免费完整高清在| 国产女主播在线喷水免费视频网站| 黄色日韩在线| 麻豆成人av视频| 97超碰精品成人国产| 97超碰精品成人国产| 欧美变态另类bdsm刘玥| 高清在线视频一区二区三区| 中文字幕久久专区| 午夜视频国产福利| 在线观看一区二区三区激情| 国产精品一二三区在线看| 国产人妻一区二区三区在| 国产老妇伦熟女老妇高清| 国产美女午夜福利| 简卡轻食公司| 69av精品久久久久久| 性插视频无遮挡在线免费观看| 男男h啪啪无遮挡| 美女内射精品一级片tv| 国语对白做爰xxxⅹ性视频网站| 亚洲国产最新在线播放| 日韩欧美精品免费久久| 在线观看免费高清a一片| 欧美日韩视频高清一区二区三区二| 亚洲国产精品专区欧美| 亚洲激情五月婷婷啪啪| 中文天堂在线官网| 日本黄大片高清| 在线天堂最新版资源| 99精国产麻豆久久婷婷| 久久久久久久久久人人人人人人| 国产白丝娇喘喷水9色精品| 伊人久久精品亚洲午夜| 亚洲自偷自拍三级| 国产亚洲5aaaaa淫片| 神马国产精品三级电影在线观看| 22中文网久久字幕| 中文天堂在线官网| 中文天堂在线官网| 寂寞人妻少妇视频99o| 成年女人看的毛片在线观看| 久久久久久久久久人人人人人人| av福利片在线观看| .国产精品久久| 国产精品久久久久久久电影| 80岁老熟妇乱子伦牲交| 国产色婷婷99| 成人亚洲精品av一区二区| 精品久久久噜噜| 国产91av在线免费观看| 极品教师在线视频| 中文字幕亚洲精品专区| 欧美潮喷喷水| 国产成人精品福利久久| 日本-黄色视频高清免费观看| 99精国产麻豆久久婷婷| 亚洲色图av天堂| 九九在线视频观看精品| 欧美xxⅹ黑人| 男女边摸边吃奶| 成年女人看的毛片在线观看| 大香蕉久久网| 国产成人精品一,二区| 又爽又黄a免费视频| 中文字幕人妻熟人妻熟丝袜美| 青春草视频在线免费观看| 乱码一卡2卡4卡精品| 赤兔流量卡办理| 熟女av电影| 全区人妻精品视频| 日日啪夜夜撸| 亚洲欧美成人综合另类久久久| 亚洲av免费在线观看| 国产国拍精品亚洲av在线观看| 最近中文字幕高清免费大全6| 校园人妻丝袜中文字幕| 啦啦啦在线观看免费高清www| 国产精品人妻久久久影院| 国产精品精品国产色婷婷| 亚洲精品国产av成人精品| 在线 av 中文字幕| 2021少妇久久久久久久久久久| 最近的中文字幕免费完整| 日韩 亚洲 欧美在线| 免费看日本二区| 亚洲精品一区蜜桃| 男女无遮挡免费网站观看| 91狼人影院| 免费大片黄手机在线观看| 小蜜桃在线观看免费完整版高清| 精品酒店卫生间| 三级经典国产精品| 午夜福利在线观看免费完整高清在| 日韩欧美 国产精品| 欧美精品一区二区大全| 日日啪夜夜撸| 精华霜和精华液先用哪个| 少妇人妻久久综合中文| 大码成人一级视频| 久久人人爽av亚洲精品天堂 | 欧美精品国产亚洲| 色哟哟·www| 综合色丁香网| 国产免费一区二区三区四区乱码| 国产精品嫩草影院av在线观看| 亚洲精品第二区| 18禁动态无遮挡网站| 国产 一区 欧美 日韩| 免费人成在线观看视频色| 80岁老熟妇乱子伦牲交| 亚洲国产日韩一区二区| 中文天堂在线官网| 久久久成人免费电影| 少妇被粗大猛烈的视频| 国产国拍精品亚洲av在线观看| 69av精品久久久久久| 2021少妇久久久久久久久久久| 国产精品久久久久久精品古装| 男人添女人高潮全过程视频| 在线精品无人区一区二区三 | 亚洲av中文字字幕乱码综合| 亚洲成色77777| 国产黄频视频在线观看| 久久久成人免费电影| 99久久精品热视频| 美女国产视频在线观看| 亚洲av福利一区| 欧美日韩国产mv在线观看视频 | 亚洲国产最新在线播放| 最近2019中文字幕mv第一页| 久久久久久久国产电影| 免费av观看视频| 国产成人精品福利久久| 日日啪夜夜爽| 亚洲婷婷狠狠爱综合网| 国产亚洲一区二区精品| av在线app专区| 日本猛色少妇xxxxx猛交久久| 99久久精品热视频| 美女xxoo啪啪120秒动态图| 亚洲四区av| 精品人妻熟女av久视频| 狠狠精品人妻久久久久久综合| 久久这里有精品视频免费| 伦理电影大哥的女人| 国产免费一级a男人的天堂| 日韩伦理黄色片| 男女边吃奶边做爰视频| 嫩草影院入口| a级毛色黄片| 国产探花在线观看一区二区| 在线精品无人区一区二区三 | 男女无遮挡免费网站观看| 内射极品少妇av片p| av.在线天堂| 亚洲成人精品中文字幕电影| 国产精品国产三级国产av玫瑰| 舔av片在线| 一区二区三区乱码不卡18| 国产视频内射| 久久久a久久爽久久v久久| 亚洲无线观看免费| 亚洲第一区二区三区不卡| 街头女战士在线观看网站| 爱豆传媒免费全集在线观看| 久久人人爽av亚洲精品天堂 | 国产免费一区二区三区四区乱码| 久久精品夜色国产| 精品亚洲乱码少妇综合久久| 久久亚洲国产成人精品v| 精品熟女少妇av免费看| 久久热精品热| 国产成人91sexporn| 18禁在线播放成人免费| 亚洲欧美一区二区三区国产| 久久久a久久爽久久v久久| 国产又色又爽无遮挡免| 欧美日韩综合久久久久久| av在线观看视频网站免费| 中文精品一卡2卡3卡4更新| 成人无遮挡网站| 欧美高清性xxxxhd video| 日日摸夜夜添夜夜添av毛片| 波野结衣二区三区在线| 久久99蜜桃精品久久| 国产亚洲最大av| 97精品久久久久久久久久精品| a级一级毛片免费在线观看| 成年版毛片免费区| 日本免费在线观看一区| 黄片无遮挡物在线观看| 亚洲综合色惰| 丝袜美腿在线中文| 女的被弄到高潮叫床怎么办| 欧美人与善性xxx| 午夜福利在线在线| 日韩av免费高清视频| 插阴视频在线观看视频| 97在线人人人人妻| 国产伦理片在线播放av一区| 中文天堂在线官网| xxx大片免费视频| 禁无遮挡网站| 国产高清三级在线| 国产老妇女一区| 天天躁夜夜躁狠狠久久av| 亚洲精品,欧美精品| 午夜激情久久久久久久| 国产精品嫩草影院av在线观看| 国产欧美日韩精品一区二区| 91久久精品电影网| 精品久久久久久久久av| 亚洲欧美一区二区三区国产| 成人一区二区视频在线观看| 网址你懂的国产日韩在线| 国产真实伦视频高清在线观看| 激情 狠狠 欧美| av女优亚洲男人天堂| 九九爱精品视频在线观看| www.av在线官网国产| 草草在线视频免费看| 嫩草影院新地址| 性色av一级| 久久久精品免费免费高清| 午夜福利在线观看免费完整高清在| 国产精品av视频在线免费观看| 亚洲国产精品成人综合色| 简卡轻食公司| 成年女人在线观看亚洲视频 | 亚洲av福利一区| 国产精品99久久99久久久不卡 | 国产真实伦视频高清在线观看| 成人漫画全彩无遮挡| 色视频www国产| 色5月婷婷丁香| 男的添女的下面高潮视频| 日韩三级伦理在线观看| 下体分泌物呈黄色| 在线播放无遮挡| 国产精品福利在线免费观看| 欧美性猛交╳xxx乱大交人| 一本久久精品| 亚洲不卡免费看| 免费av不卡在线播放| 国产伦精品一区二区三区视频9| 久久韩国三级中文字幕| 国产极品天堂在线| 久久精品久久久久久噜噜老黄| 偷拍熟女少妇极品色| 99热全是精品| 黄色一级大片看看| 在线观看一区二区三区| 最近中文字幕高清免费大全6| 亚洲精品国产av蜜桃| 欧美三级亚洲精品| 久久久国产一区二区| 麻豆精品久久久久久蜜桃| 色5月婷婷丁香| 哪个播放器可以免费观看大片| 国国产精品蜜臀av免费| 下体分泌物呈黄色| 美女被艹到高潮喷水动态| 精品人妻偷拍中文字幕| 超碰av人人做人人爽久久| av卡一久久| 在线亚洲精品国产二区图片欧美 | 另类亚洲欧美激情| 国产黄频视频在线观看| 久久99热这里只频精品6学生| 中文字幕制服av| 网址你懂的国产日韩在线| 国产精品一及| 亚洲精品国产av成人精品| 天堂网av新在线| 日韩av在线免费看完整版不卡| 国产视频首页在线观看| 日韩一区二区三区影片| 人妻一区二区av| 国产极品天堂在线| 国产高清国产精品国产三级 | 日韩亚洲欧美综合| tube8黄色片| 永久免费av网站大全| 97在线视频观看| 成年免费大片在线观看| 国产伦在线观看视频一区| 日本色播在线视频| 少妇猛男粗大的猛烈进出视频 | av免费观看日本| 少妇猛男粗大的猛烈进出视频 | 日本色播在线视频| 日日摸夜夜添夜夜爱| 99久久人妻综合| 免费观看在线日韩| 丰满乱子伦码专区| 少妇人妻精品综合一区二区| 日韩成人伦理影院| 婷婷色综合大香蕉| 亚洲精品国产av成人精品| 国产在线男女| 视频区图区小说| 毛片一级片免费看久久久久| 伊人久久国产一区二区| 欧美日韩一区二区视频在线观看视频在线 | 极品教师在线视频| 伊人久久精品亚洲午夜| 亚洲一级一片aⅴ在线观看| 国产淫片久久久久久久久| 中国美白少妇内射xxxbb| 婷婷色综合大香蕉| 大香蕉97超碰在线| 尾随美女入室| 99热网站在线观看| av女优亚洲男人天堂| 久久久精品免费免费高清| 自拍偷自拍亚洲精品老妇| 免费观看无遮挡的男女| 成人美女网站在线观看视频| 国产极品天堂在线| 97热精品久久久久久| 亚洲人成网站在线观看播放| 日韩精品有码人妻一区| 午夜福利视频1000在线观看| av专区在线播放| 亚洲欧美精品专区久久| 亚洲精品国产av成人精品| 久久久欧美国产精品| 亚洲天堂av无毛| 一级毛片我不卡| 日韩成人伦理影院| 99久久中文字幕三级久久日本| 人妻少妇偷人精品九色| 色综合色国产| 一级毛片 在线播放| 乱系列少妇在线播放| 色综合色国产| 国产亚洲午夜精品一区二区久久 | 免费看不卡的av| 精品国产乱码久久久久久小说| 性插视频无遮挡在线免费观看| 欧美潮喷喷水| 久久99热这里只有精品18| 麻豆乱淫一区二区| 夫妻性生交免费视频一级片| 国产欧美另类精品又又久久亚洲欧美| 麻豆精品久久久久久蜜桃| 一个人看的www免费观看视频| 色哟哟·www| 成年av动漫网址| 永久免费av网站大全| 亚洲aⅴ乱码一区二区在线播放| 91狼人影院| 人人妻人人澡人人爽人人夜夜| 中文字幕av成人在线电影| 久久综合国产亚洲精品| 涩涩av久久男人的天堂| 国产黄色免费在线视频| 天天躁日日操中文字幕| 一级毛片aaaaaa免费看小| 久久99热这里只有精品18| 国产淫片久久久久久久久| 人妻制服诱惑在线中文字幕| 男女国产视频网站| 乱码一卡2卡4卡精品| 成人黄色视频免费在线看| 日韩 亚洲 欧美在线| 亚洲成人av在线免费| 一级毛片久久久久久久久女| 亚洲在线观看片| 亚洲天堂av无毛| 好男人在线观看高清免费视频| 亚洲欧美日韩东京热| 国产一区二区亚洲精品在线观看| 久久久久久久久久久丰满| 国产精品无大码| 精品一区二区三区视频在线| 亚洲经典国产精华液单| 偷拍熟女少妇极品色| 国产成人精品一,二区| 少妇被粗大猛烈的视频| 一本一本综合久久| 黄色日韩在线| 校园人妻丝袜中文字幕| 人妻 亚洲 视频| 免费电影在线观看免费观看| 男人狂女人下面高潮的视频| 国产高潮美女av| 毛片一级片免费看久久久久| 免费av观看视频| 久久99热这里只有精品18| 五月天丁香电影| 欧美人与善性xxx| 国产黄a三级三级三级人| 观看免费一级毛片| 久久精品久久久久久噜噜老黄| 久久久久性生活片| 永久网站在线| 大片免费播放器 马上看| 欧美潮喷喷水| 亚洲国产精品专区欧美| 国产一级毛片在线| 国产免费一级a男人的天堂| 亚洲婷婷狠狠爱综合网| 亚洲在久久综合| 综合色av麻豆| 国产淫语在线视频| 99热网站在线观看| 狠狠精品人妻久久久久久综合| 国产精品国产三级专区第一集| 一本一本综合久久| 九草在线视频观看| 我要看日韩黄色一级片| 国产在线一区二区三区精| 深夜a级毛片| 国产乱来视频区| 中文字幕av成人在线电影| 五月天丁香电影| 三级国产精品欧美在线观看| 能在线免费看毛片的网站| www.av在线官网国产| 在线观看国产h片| 午夜免费观看性视频| 亚洲精品色激情综合| 直男gayav资源| 26uuu在线亚洲综合色| 成人鲁丝片一二三区免费| 午夜日本视频在线| 成年人午夜在线观看视频| 你懂的网址亚洲精品在线观看| 少妇猛男粗大的猛烈进出视频 | 亚州av有码| 国产乱人偷精品视频| 精品久久久久久久久亚洲| 亚洲成人久久爱视频| 三级国产精品欧美在线观看| 亚洲av免费高清在线观看| 在线a可以看的网站| 女人十人毛片免费观看3o分钟| 欧美老熟妇乱子伦牲交| 一边亲一边摸免费视频| 观看免费一级毛片| 搡女人真爽免费视频火全软件| 超碰97精品在线观看| 国内少妇人妻偷人精品xxx网站| 男插女下体视频免费在线播放| 亚洲av二区三区四区| av在线播放精品| 在线精品无人区一区二区三 | 大码成人一级视频| 极品少妇高潮喷水抽搐| 成人国产麻豆网| 欧美成人精品欧美一级黄| 欧美日韩在线观看h| 日韩一区二区三区影片| 男的添女的下面高潮视频| 亚洲四区av| 夜夜看夜夜爽夜夜摸| 97热精品久久久久久| 三级经典国产精品| 亚洲,一卡二卡三卡| 日韩国内少妇激情av| av在线天堂中文字幕| 午夜视频国产福利| 一级a做视频免费观看| 国产探花在线观看一区二区| 国产精品三级大全| 午夜免费男女啪啪视频观看| 深爱激情五月婷婷| 日韩,欧美,国产一区二区三区| 午夜免费鲁丝| 伦精品一区二区三区| 免费大片18禁| 高清视频免费观看一区二区| 嫩草影院精品99| 人人妻人人爽人人添夜夜欢视频 | 久久精品国产亚洲网站| 男人舔奶头视频| 人妻系列 视频| 免费看a级黄色片| 又爽又黄无遮挡网站| 少妇丰满av| 亚洲精品国产av蜜桃| 少妇被粗大猛烈的视频| 成人亚洲精品av一区二区| 久久精品久久久久久噜噜老黄| 热re99久久精品国产66热6| 亚洲精品自拍成人| 久久久久性生活片| 国产一区二区三区av在线| 香蕉精品网在线| eeuss影院久久| 精品99又大又爽又粗少妇毛片| 一区二区av电影网| 国产久久久一区二区三区| 亚洲伊人久久精品综合| av在线老鸭窝| 午夜激情久久久久久久| a级一级毛片免费在线观看| 搡老乐熟女国产| 亚洲在久久综合| av卡一久久| 肉色欧美久久久久久久蜜桃 | 九草在线视频观看| 在线观看免费高清a一片| 大陆偷拍与自拍| 男插女下体视频免费在线播放|