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

    基于Charles錄制會話的HTTP接口自動化測試框架設(shè)計與實現(xiàn)

    2019-06-17 09:27:58劉國慶汪興軒
    計算機應(yīng)用與軟件 2019年6期
    關(guān)鍵詞:測試報告測試人員服務(wù)端

    劉國慶 汪興軒

    (復(fù)旦大學(xué)信息科學(xué)與工程學(xué)院 上海 200433)

    0 引 言

    接口測試是指Web系統(tǒng)組件間的測試,它主要用于檢測組件與組件之間的交互點[1]。在移動軟件開發(fā)領(lǐng)域,大多采用分層軟件體系結(jié)構(gòu),服務(wù)提供者和消費者基于接口契約傳遞數(shù)據(jù)和上下文信息。應(yīng)用軟件的數(shù)據(jù)大多來源于服務(wù)端的接口返回,持續(xù)保障接口有效返回、及時發(fā)現(xiàn)異常接口是移動軟件測試中的一個重要課題[2]。

    在Web應(yīng)用開發(fā)領(lǐng)域,客戶端服務(wù)器模型是一種被廣泛應(yīng)用的網(wǎng)絡(luò)架構(gòu),它把整套軟件系統(tǒng)劃分為客戶端和服務(wù)端[3],即客戶端請求數(shù)據(jù),服務(wù)端響應(yīng)內(nèi)容。超文本傳輸協(xié)議是一個基于請求與響應(yīng)的無狀態(tài)Web傳輸協(xié)議,因其具有傳輸效率高、占用較低的網(wǎng)絡(luò)帶寬等特點而被廣泛使用[4]。

    Charles是一款被廣大Web開發(fā)者廣泛使用的HTTP/HTTPS代理服務(wù)器、監(jiān)視器、反向代理服務(wù)器軟件,當(dāng)Web應(yīng)用程序通過Charles的代理訪問互聯(lián)網(wǎng)時,Charles可以監(jiān)控HTTP/HTTPS應(yīng)用程序發(fā)送和接收的所有數(shù)據(jù)。Charles允許開發(fā)者查看所有連接互聯(lián)網(wǎng)的HTTP/HTTPS通信,包括Request、Response以及Headers等,在Web開發(fā)中扮演著重要的角色。

    1 概 述

    傳統(tǒng)的HTTP接口測試需要測試人員手工設(shè)計用例與構(gòu)建參數(shù),利用接口測試工具,如postman、jmeter、fiddler等[5],模擬客戶端向服務(wù)端發(fā)送請求,服務(wù)端處理后返回請求結(jié)果,測試人員手工檢查返回的結(jié)果是否符合預(yù)期。傳統(tǒng)的測試工具雖然使用方便,易于上手,但是它們也有很多不足之處:

    (1) 測試數(shù)據(jù)需手工輸入 接口測試本質(zhì)上是對接口輸入和輸出數(shù)據(jù)對應(yīng)關(guān)系的測試。測試人員手動調(diào)用接口,輸入測試數(shù)據(jù),然后驗證接口返回數(shù)據(jù)的正確性。每次接口測試之前,測試人員必須手動向工具輸入測試數(shù)據(jù),耗時耗力。

    (2) 無法測試加密接口 接口測試工具無法自動執(zhí)行加解密操作,例如md5、base64、AES等加密方式。對于加密接口,測試人員需使用加解密工具對參數(shù)處理之后才能進(jìn)行測試,導(dǎo)致測試效率低下。

    (3) 擴展能力不足 接口測試工具雖然有它的便利性,但與此同時也伴隨著局限性。例如,測試人員需要將測試結(jié)果生成HTML形式的測試報告后發(fā)到指定的郵箱、需要對接口做持續(xù)集成測試等,這些都是工具難以做到的。

    對應(yīng)客戶端服務(wù)端模型,在移動軟件測試領(lǐng)域中,基本上采用“端分離測試”的工作模式,即各端保障各端質(zhì)量[6]。實際上,客戶端工作時往往頻繁地調(diào)用服務(wù)端接口,獲得了大量的測試數(shù)據(jù),生成了豐富的測試用例。而“端分離測試”這種工作模式忽略了客戶端測試人員在測試過程產(chǎn)生的大量的服務(wù)端測試用例,從而導(dǎo)致了冗余的測試工作。

    傳統(tǒng)的接口測試需要測試人員了解接口定義、設(shè)計測試用例、配置請求參數(shù)、觀察接口響應(yīng)等[7]。由于軟件開發(fā)中接口設(shè)計場景化、請求參數(shù)復(fù)雜化、服務(wù)端數(shù)據(jù)動態(tài)化等趨勢愈發(fā)明顯,人工觀察接口響應(yīng)容易出錯,上述步驟必然會導(dǎo)致測試效率不高。特別對于新開發(fā)的移動應(yīng)用軟件,必伴隨著大量的服務(wù)端接口,測試人員逐個測試接口,造成了大量的重復(fù)工作。

    為此,本文提出了一種應(yīng)用于新開發(fā)移動應(yīng)用場景下,伴隨客戶端功能測試,基于Charles錄制會話的HTTP接口自動化測試框架。它依托于業(yè)界內(nèi)已有的開源持續(xù)集成平臺[8]和單元測試框架,從客戶端功能測試出發(fā),實現(xiàn)了自動生成測試用例、對測試數(shù)據(jù)自動處理、持續(xù)集成測試、生成測試報告等功能,測試人員在進(jìn)行客戶端功能測試的同時收集服務(wù)端測試數(shù)據(jù)與用例,添加接口響應(yīng)校驗規(guī)則后,便可持續(xù)檢驗接口是否正常工作。

    相較于傳統(tǒng)的接口測試工具與測試流程,本文提出的方案省去手工構(gòu)建請求參數(shù)環(huán)節(jié),實現(xiàn)自動構(gòu)建請求與校驗響應(yīng),增加集成測試與擴展功能,實現(xiàn)接口測試由人工到自動化的轉(zhuǎn)變,提高了測試效率。

    2 方案設(shè)計

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

    如圖1所示,本文提出的接口自動化測試框架主要包含測試用例錄制單元、中間件服務(wù)單元以及持續(xù)集成測試單元三部分,每個單元又由不同的子單元構(gòu)成。

    圖1 接口自動化測試框架系統(tǒng)架構(gòu)

    (1) 測試用例錄制單元:客戶端監(jiān)聽工具(Charles):記錄HTTP會話,監(jiān)聽被調(diào)用接口傳遞的參數(shù),錄制接口測試用例,導(dǎo)出“.har”文件;

    “.har”文件解析:提取會話數(shù)據(jù),生成測試用例;

    測試用例池:存放測試用例、接口請求參數(shù)與校驗規(guī)則。

    (2) 中間件服務(wù)單元:接口請求構(gòu)建:調(diào)用測試用例池中的接口Url、Method等參數(shù),構(gòu)建并向服務(wù)端發(fā)送接口請求;

    接口響應(yīng)校驗:校驗接口響應(yīng)信息,檢查接口返回的數(shù)據(jù)結(jié)構(gòu)與值是否符合預(yù)期。

    (3) 持續(xù)集成測試單元:單元測試框架:調(diào)用中間件服務(wù)單元,執(zhí)行測試用例,生成測試報告;

    持續(xù)集成平臺:定時調(diào)用單元測試框架,自動化執(zhí)行接口測試,發(fā)送測試報告,如有異常則發(fā)送報警信息。

    2.2 流程設(shè)計

    如圖2所示,當(dāng)客戶端開發(fā)人員完成應(yīng)用開發(fā)并且轉(zhuǎn)交給測試人員后,測試人員在客戶端安裝待測應(yīng)用進(jìn)行功能測試的同時,監(jiān)聽工具自動采集接口測試用例,具體流程如下:啟動Charles,客戶端連接代理服務(wù)器;測試人員進(jìn)行客戶端功能測試,Charles錄制客戶端與服務(wù)端交互過程中所調(diào)用的接口以及傳遞的參數(shù)信息;通過調(diào)用Python腳本,提取Charles錄制的接口請求數(shù)據(jù),生成測試用例;測試人員完善測試用例并且添加接口響應(yīng)校驗規(guī)則后裝入單元測試框架;持續(xù)集成平臺以任務(wù)的形式定時運行單元測試框架,其分別完成向服務(wù)端發(fā)送接口請求數(shù)據(jù)、接收服務(wù)端響應(yīng)并與預(yù)先填寫的檢驗規(guī)則作對比、發(fā)送測試結(jié)果三項任務(wù)。

    圖2 接口自動化測試框架工作流程

    2.3 工程設(shè)計

    如圖3所示,在工程上,本文提出的接口自動化測試框架由Charles+Python+Unittest+Git+Jenkins構(gòu)成,主要分為兩部分:錄制接口測試用例與接口自動化測試。

    圖3 接口自動化測試框架工程設(shè)計

    3 錄制接口測試用例

    如圖4所示,錄制接口測試用例部分以Charles為核心,Python腳本將HTTP會話過程轉(zhuǎn)換成可用的測試用例。測試人員在進(jìn)行功能測試的同時,Charles錄制客戶端與服務(wù)端會話,測試結(jié)束后,導(dǎo)出“.har”格式文件。經(jīng)過白名單與黑名單過濾后,接口測試用例存入測試用例池。

    圖4 接口測試用例錄制結(jié)構(gòu)

    3.1 錄制接口測試用例

    當(dāng)客戶端連接Charles后,客戶端的請求參數(shù)通過Charles轉(zhuǎn)發(fā)至服務(wù)端,服務(wù)端的響應(yīng)又通過Charles下發(fā)至客戶端。如圖5所示,對于某款特定的移動應(yīng)用,其接口一般歸于一個或多個域名,而Charles將客戶端與服務(wù)端會話過程中所有的數(shù)據(jù)按照域名進(jìn)行歸類,導(dǎo)出HTTP Archive(Har) format格式(“.har”)后,可查看會話詳情。

    圖5 Charles代理服務(wù)器軟件

    “.har”格式文件在本質(zhì)上是“utf-8”格式的json字符串文件,其中的“entries”字段為列表對象,保存了HTTP會話的詳情,一個元素則記錄了一條HTTP會話,“entries”的數(shù)據(jù)結(jié)構(gòu)如表1所示。

    表1 “entries”數(shù)據(jù)結(jié)構(gòu)

    3.2 構(gòu)建接口測試用例池

    從上一節(jié)得知,“entries”中的一個元素即可視為一條測試用例,而其中的“request”和“response”對象則保存了完整的請求與響應(yīng)信息。本文構(gòu)建了Python腳本將請求參數(shù)與響應(yīng)數(shù)據(jù)映射至測試用例池。測試用例根據(jù)接口的url字段歸檔,采用“一對多”的模式組織數(shù)據(jù)結(jié)構(gòu),即一個url對應(yīng)多組參數(shù),從而實現(xiàn)同一個接口對應(yīng)多個測試用例的組織模式。構(gòu)建測試用例池流程如圖6所示。

    圖6 構(gòu)建測試用例流程圖

    除了完整的請求與響應(yīng)信息以外,賦予測試用例名稱與編號,方便后期的維護(hù)與擴展。測試用例池的每條用例結(jié)構(gòu)如表2所示,其中headers、queryString、cookies、postData均為json對象。

    表2 測試用例組織結(jié)構(gòu)

    Python的xlrd和xlwt庫可以很方便地實現(xiàn)對Excel文件的寫入與讀取,而Excel表格可以直觀地顯示接口的信息以及請求的詳細(xì)數(shù)據(jù)。本文使用Excel文件作為測試用例池的存儲容器,一行為一條測試用例,而測試用例之間可能存在相同的請求對象,后期維護(hù)時可以較快擴展用例。

    4 中間件服務(wù)

    中間件服務(wù)用于連接用例池與服務(wù)端。它分為兩個部分,一部分是構(gòu)建單元,另一部分是接收單元。構(gòu)建單元負(fù)責(zé)將測試用例池中的用例參數(shù)組裝成HTTP請求并向服務(wù)端發(fā)送,待服務(wù)端解析請求后,接收單元接收接口響應(yīng)并將響應(yīng)報文轉(zhuǎn)換成預(yù)期的格式,與預(yù)先配置的校驗規(guī)則做對比。

    4.1 構(gòu)建單元

    構(gòu)建單元以Python的requests庫為基礎(chǔ),將測試用例中參數(shù)組裝成一個完整的HTTP請求。requests庫支持HTTP協(xié)議中的所有請求方法,并且其能攜帶所有的HTTP請求信息。

    本主動托換體系設(shè)計的特點是受力明確、承載力可靠、變形易于控制、能夠適應(yīng)現(xiàn)有結(jié)構(gòu)布置和樁基布置條件、托換施工期間和托換完成以后的建筑物安全控制設(shè)計采取靜態(tài)應(yīng)變測試系統(tǒng)、電子位移計、傾角儀、裂縫觀測儀對新托換梁的撓度、沉降、傾斜度、裂縫進(jìn)行高精度動態(tài)監(jiān)測,得出同步頂升時托換梁的即時變化結(jié)果,以便更準(zhǔn)確地指導(dǎo)托換梁頂升工作。

    服務(wù)端解析構(gòu)建單元的請求之后,會將響應(yīng)以Response對象的形式返回。而在移動應(yīng)用軟件開發(fā)中,大多數(shù)移動應(yīng)用基本采用json格式耦合客戶端與服務(wù)端。借助于Python中的json庫,將HTTP響應(yīng)報文轉(zhuǎn)換成json格式,方便校驗其響應(yīng)內(nèi)容。

    本文將request庫和json庫進(jìn)一步封裝,構(gòu)成基礎(chǔ)http請求包,以類方法的形式對外開放,用于傳遞HTTP數(shù)據(jù)。

    類方法介紹如表3所示,Get_main和Post_main分別對應(yīng)HTTP協(xié)議中的Get和Post方法,Headers和Data若為空,則調(diào)用默認(rèn)值,返回對象為統(tǒng)一的json格式的字符串。

    表3 封裝HTTP請求方法

    4.2 接收單元

    對于接口響應(yīng)內(nèi)容的校驗,本文選取了兩種校驗方式。對于無代碼能力的測試人員,使用Json Schema;另一種方式是使用斷言(Assert),而這也對測試人員提出了更高的要求。Json Schema指的是數(shù)據(jù)交換中的一種虛擬“合同”,用于Json數(shù)據(jù)的一致性檢驗。它可以驗證值的數(shù)據(jù)類型是否正確,是否包含所需的數(shù)據(jù),數(shù)據(jù)的組成結(jié)構(gòu)是否正確,值的范圍是否符合預(yù)期等。Python的jsonschema庫提供了豐富的json數(shù)據(jù)驗證功能,用戶僅僅需要將數(shù)據(jù)導(dǎo)入庫即可進(jìn)行可靠的json驗證。在unittest框架中,TestCase類提供了較多的方法用于對接口響應(yīng)結(jié)果的校驗,表4列出了幾個常用的斷言方法。

    表4 TestCase類常用斷言方法

    5 持續(xù)測試

    持續(xù)測試單元由unittest單元測試框架、HTMLTest Runnner、Sendmail以及Jenkins構(gòu)成。其中unittest完成測試用例池中的用例組織與管理,HTMLTestRunner用于生成測試報告,Sendmail發(fā)送測試報告,而Jenkins則是整個持續(xù)測試的核心,它定期執(zhí)行測試任務(wù),實現(xiàn)接口測試框架的持續(xù)運行。

    使用unittest單元測試框架組織管理測試用例池中的測試用例,執(zhí)行所有用例結(jié)束后利用HTMLTest Runner庫生成html格式的測試報告,同時構(gòu)建了SendMail模塊發(fā)送測試信息,便于遠(yuǎn)程測試人員查看測試詳情。

    5.1 unittest與HTMLTestRunnner

    unittest是一個Python單元測試框架,支持自動化測試,全局配置測試的開啟與關(guān)閉,測試用例以集合的形式聚合到框架中。unittest以類的形式組織測試用例,每一個測試類起始由“setup()”構(gòu)成,結(jié)束由“teardown()”構(gòu)成,中間包括各個測試用例“test_case()”。HTMLTestRunner配合unittest用于將測試結(jié)果保存至html文件中,提高可讀性。

    在調(diào)用unittest單元測試框架時,測試用例必須以“test_”開頭。通過中間件服務(wù)單元將測試用例池中的用例以方法的形式實例化并嵌入至unittest單元測試框架。另外,unittest提供了完整的斷言方法,如果某個測試用例斷言失敗,框架則拋出“AssertionError”,并標(biāo)識該用例測試失?。环駝t,則標(biāo)識該用例為測試成功狀態(tài)。例如assertEqual方法用于驗證兩個參數(shù)值是否相等,下述嵌入示例中的assertEqual驗證響應(yīng)結(jié)果的狀態(tài)碼是否為200,若不是則輸出“測試失敗”,并標(biāo)記該用例為失敗狀態(tài);否則,測試用例通過。一個類中可定義多個測試用例函數(shù),按類分組批量執(zhí)行測試用例。嵌入示例及代碼結(jié)構(gòu)如下所示:

    嵌入示例:利用assertEqual檢查接口的響應(yīng)狀態(tài)碼類名←繼承unittest中的TestCase類起始方法setUp測試用例函數(shù)func←傳入用例參數(shù)(來源于測試用例池) url←用例池中的Request.url header←用例池中的Request.headers data←用例池中的Request.data res←Get_main/Post_main(url, header, data) assertEqual(res[′status′], ′200′, ′測試失敗′)結(jié)束方法teardown

    測試用例嵌入至unittest后,給定html文件的保存路徑以及測試報告名稱,完整的接口測試框架遍搭建完畢。unitest使用TestSuite管理測試用例,一個TestSuite是多個測試用例的集合,該集合內(nèi)的所有測試用例將被一起執(zhí)行。利用TestSuite可以將不同的測試用例組成測試邏輯組,即接口測試用例可根本被測軟件的邏輯功能進(jìn)行模塊化組織,然后設(shè)置為統(tǒng)一的測試套件,對外僅暴露一個命令即可實現(xiàn)批量執(zhí)行測試用例。

    5.2 SendMail

    接口自動化測試框架托管于遠(yuǎn)程服務(wù)器中,為了方便查看測試報告,本文利用smtplib庫構(gòu)建了SendMail模塊集成至框架中,以郵件的形式發(fā)送測試報告?;玖鞒虨椋?/p>

    1) 讀取測試報告;

    2) 添加郵件內(nèi)容及附件;

    3) 連接郵件服務(wù)器;

    4) 發(fā)送郵件;

    5) 退出。

    框架定義list對象存儲郵件接收者信息,每個元素為接收者的郵箱地址,用于接收測試報告。測試報告以“MIMEText”格式集成至框架中,用戶設(shè)置本地郵箱和密碼后,建立 SMTP郵件服務(wù)器,啟動郵件發(fā)送流程,如發(fā)送異常,框架打印異常信息。

    5.3 Jenkins持續(xù)集成測試

    Jenkins平臺安裝Git插件后,將托管在Git服務(wù)器的代碼更新至測試環(huán)境后做持續(xù)集成測試。在配置Jenkins任務(wù)時選擇Git源碼管理,通過“Poll SCM”設(shè)定測試時間間隔,便可持續(xù)進(jìn)行接口測試。值得注意的是,設(shè)定測試時間間隔忌太短,以免對服務(wù)端造成額外的壓力。每次測試結(jié)束后,Jenkins控制臺輸出測試信息,同時,測試報告以html形式存放于測試環(huán)境中的指定路徑。

    6 實施驗證

    在已部署接口自動化測試框架的測試機系統(tǒng)上,本文對一個Android開發(fā)應(yīng)用實施接口自動化測試。具體環(huán)境、測試過程、結(jié)果如下所述。

    6.1 測試環(huán)境

    搭建基于CentOS 6.7 操作系統(tǒng)的的Linux測試環(huán)境, 部署本文提出的接口自動化測試框架??蚣苁褂肞ython 3.6.12版本編寫,依托于Jenkins 2.150.2版本持續(xù)集成運行。測試環(huán)境安裝Git命令行工具,Jenkins配置Git服務(wù)器地址并生成密鑰后與Git服務(wù)器建立連接。

    6.2 測試過程

    如表5所示,本文對國內(nèi)某主流動漫社區(qū)安卓應(yīng)用進(jìn)行冒煙測試,收集其一級按鈕下后端接口數(shù)據(jù)。首先使裝有待測應(yīng)用的客戶端連接Charles代理服務(wù)器,然后對移動應(yīng)用進(jìn)行指定測試范圍內(nèi)的冒煙測試。測試結(jié)束后,Charles導(dǎo)出接口“.har”文件,經(jīng)過Python解析后,共獲取124個接口測試用例,部分測試用例數(shù)據(jù)如圖7、圖8所示。

    表5 測試對象、方法、范圍

    圖7 測試用例池記錄(1)

    圖8 測試用例池記錄(2)

    6.3 添加校驗規(guī)則與配置Jenkins

    根據(jù)接口響應(yīng)數(shù)據(jù)格式以及接口數(shù)據(jù)結(jié)構(gòu)的不同,本文選取jsonschema與斷言兩種校驗方式交叉驗證接口數(shù)據(jù)是否正常返回。為上一小節(jié)測試用例池中的測試用例逐條添加校驗規(guī)則裝入unittest后,提交至Git服務(wù)器。

    如表6的配置說明所述,在Jenkins平臺,配置Git服務(wù)器地址,以Python腳本的方式每5分鐘循環(huán)遍歷用例池中的用例,每條測試用例通過unittest向服務(wù)端發(fā)出請求,檢查響應(yīng)是否符合預(yù)期設(shè)定的校驗規(guī)則。單次遍歷接口用例結(jié)束后,生成一份html格式的測試報告,包括執(zhí)行用例時間、用例狀態(tài)、成功或失敗詳情等,如圖9所示。如圖10所示,在Jenkins中配置發(fā)送者與接收者郵箱后,測試結(jié)束后便可向指定郵箱發(fā)送測試報告。

    表6 Jenkins配置說明

    圖9 測試報告

    圖10 發(fā)送測試報告

    6.4 框架運行分析

    本文將提出的接口自動化測試框架在測試環(huán)境中運行24小時。郵箱以5分鐘為間隔收集測試報告,每份報告提供測試詳情。因接口返回數(shù)據(jù)動態(tài)變化,框架運行前期會出現(xiàn)因校驗規(guī)則設(shè)計不完整與接口響應(yīng)數(shù)據(jù)不匹配的現(xiàn)象,需及時修改校驗規(guī)則以兼容所有可能的接口并正確返回;運行后期,框架便可實現(xiàn)無人值守的接口自動化測試。

    另外,本文對于某些接口設(shè)計了相應(yīng)的負(fù)向情況以檢驗框架的穩(wěn)定性,當(dāng)框架運行異常時,如腳本錯誤、服務(wù)端響應(yīng)超時、測試任務(wù)異常等,Jenkins平臺可按照向預(yù)先設(shè)置的管理員郵箱發(fā)送報警郵件,并提供出錯的堆棧輸出。

    7 結(jié) 語

    本文提出了一種基于Charles錄制測試用例的HTTP接口自動化測試框架,它融合了現(xiàn)有接口測試工具的便利性,與此同時提高了測試效率。以功能測試為出發(fā)點,收集功能測試過程中的數(shù)據(jù),以此為基礎(chǔ)快速完善與補充測試用例,配合unittest框架和Jenkins平臺實現(xiàn)完整的接口自動化測試。通過實踐證明,工具在執(zhí)行自動化接口測試的同時,起到了一定程度的監(jiān)控作用,持續(xù)保證接口下發(fā)數(shù)據(jù)正常。

    下一步的研究方向是增加參數(shù)列表,實現(xiàn)工具的自動構(gòu)建測試用例,進(jìn)而提高接口測試效率以及保證接口測試的全面性。

    猜你喜歡
    測試報告測試人員服務(wù)端
    移動應(yīng)用眾包測試人員信譽度復(fù)合計算模型研究
    關(guān)于戶外體育游戲?qū)τ變后w能影響的調(diào)查研究
    甘肅教育(2021年5期)2021-12-29 15:41:24
    云存儲中基于相似性的客戶-服務(wù)端雙端數(shù)據(jù)去重方法
    新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
    高校分析測試中心測試隊伍建設(shè)方案初探
    山東化工(2018年20期)2018-04-02 16:30:53
    淺析軟件測試中的心理學(xué)應(yīng)用
    在Windows Server 2008上創(chuàng)建應(yīng)用
    百變星君:ROLLINGSTONE 變色龍紫破風(fēng)車架測試報告
    SSAB Hardox悍達(dá)450材料輕型自卸車廂體測試報告
    專用汽車(2016年9期)2016-03-01 04:17:19
    淺談軟件測試工作的開展流程
    激情视频va一区二区三区| 亚洲国产av新网站| 黄片播放在线免费| 婷婷色av中文字幕| 免费在线观看完整版高清| 天天操日日干夜夜撸| 精品一区二区三区四区五区乱码| 国产免费一区二区三区四区乱码| 欧美+亚洲+日韩+国产| 久久久久精品人妻al黑| 男人操女人黄网站| 国产成人免费无遮挡视频| 精品国产超薄肉色丝袜足j| 考比视频在线观看| 欧美亚洲 丝袜 人妻 在线| 亚洲国产欧美在线一区| 色婷婷久久久亚洲欧美| 国产xxxxx性猛交| 精品国产乱码久久久久久男人| 亚洲色图 男人天堂 中文字幕| 国产一区二区在线观看av| 免费不卡黄色视频| 日本vs欧美在线观看视频| av片东京热男人的天堂| 国产在视频线精品| 极品少妇高潮喷水抽搐| 国产av精品麻豆| 国产麻豆69| 黄色毛片三级朝国网站| 人人妻,人人澡人人爽秒播| 性高湖久久久久久久久免费观看| 欧美人与性动交α欧美精品济南到| 亚洲av电影在线观看一区二区三区| 欧美精品亚洲一区二区| 国产不卡av网站在线观看| 亚洲黑人精品在线| 国产激情久久老熟女| 在线 av 中文字幕| h视频一区二区三区| 满18在线观看网站| 久久久精品94久久精品| 国产日韩欧美视频二区| 中文字幕人妻丝袜一区二区| 亚洲第一青青草原| 亚洲天堂av无毛| 午夜免费鲁丝| 黄网站色视频无遮挡免费观看| 另类亚洲欧美激情| 国产精品偷伦视频观看了| 国产日韩一区二区三区精品不卡| 久久久精品区二区三区| 深夜精品福利| 国产国语露脸激情在线看| 窝窝影院91人妻| 久久久久久人人人人人| 国产一区二区三区在线臀色熟女 | 又紧又爽又黄一区二区| 欧美黄色片欧美黄色片| 久久久久久久久久久久大奶| 青春草亚洲视频在线观看| 久久国产精品影院| 国产欧美日韩一区二区三 | 亚洲专区字幕在线| 午夜福利乱码中文字幕| 久久性视频一级片| 美女福利国产在线| 日本五十路高清| 精品久久久久久久毛片微露脸 | 老汉色∧v一级毛片| 18禁国产床啪视频网站| 日韩有码中文字幕| 欧美日韩国产mv在线观看视频| 老熟女久久久| 亚洲国产精品一区二区三区在线| 久久久久精品国产欧美久久久 | 欧美激情高清一区二区三区| √禁漫天堂资源中文www| 水蜜桃什么品种好| 一二三四社区在线视频社区8| 如日韩欧美国产精品一区二区三区| 色视频在线一区二区三区| 亚洲精品中文字幕在线视频| 亚洲精品美女久久av网站| 午夜精品久久久久久毛片777| 丁香六月欧美| 亚洲第一av免费看| cao死你这个sao货| 人人澡人人妻人| 飞空精品影院首页| 国产亚洲精品久久久久5区| 国产成人欧美在线观看 | 少妇猛男粗大的猛烈进出视频| 亚洲精品第二区| 18禁国产床啪视频网站| 人人妻人人澡人人看| 91精品伊人久久大香线蕉| av天堂在线播放| 精品国产一区二区三区久久久樱花| 最新在线观看一区二区三区| 一级黄色大片毛片| 国产精品九九99| 亚洲av男天堂| 亚洲一区中文字幕在线| 高清视频免费观看一区二区| 少妇人妻久久综合中文| 久久久久网色| 久久亚洲国产成人精品v| 欧美精品一区二区免费开放| 国产成人免费无遮挡视频| 精品人妻1区二区| 日韩欧美免费精品| 国产人伦9x9x在线观看| www.自偷自拍.com| 一级片免费观看大全| 青春草亚洲视频在线观看| 蜜桃国产av成人99| 亚洲精品中文字幕一二三四区 | 男人爽女人下面视频在线观看| 热99久久久久精品小说推荐| 亚洲人成电影免费在线| 男男h啪啪无遮挡| 女人高潮潮喷娇喘18禁视频| 亚洲欧美精品自产自拍| 久久ye,这里只有精品| 日韩中文字幕欧美一区二区| videosex国产| 亚洲精品国产一区二区精华液| 97精品久久久久久久久久精品| 深夜精品福利| 狂野欧美激情性xxxx| 成年人午夜在线观看视频| 久久精品国产亚洲av香蕉五月 | 国产精品久久久久久人妻精品电影 | 两个人看的免费小视频| av线在线观看网站| 亚洲黑人精品在线| 丁香六月欧美| 在线观看一区二区三区激情| 桃红色精品国产亚洲av| 亚洲欧美一区二区三区久久| 久久精品国产亚洲av香蕉五月 | 午夜福利在线观看吧| 色视频在线一区二区三区| 乱人伦中国视频| 黄频高清免费视频| 国产精品一区二区免费欧美 | 日本猛色少妇xxxxx猛交久久| 国产精品国产三级国产专区5o| 成年人免费黄色播放视频| e午夜精品久久久久久久| 久久久久网色| 国产精品.久久久| 首页视频小说图片口味搜索| 欧美成人午夜精品| 国产av精品麻豆| 亚洲欧洲日产国产| 伊人久久大香线蕉亚洲五| 免费观看人在逋| 午夜成年电影在线免费观看| 伊人久久大香线蕉亚洲五| 满18在线观看网站| 久久国产亚洲av麻豆专区| videos熟女内射| 啪啪无遮挡十八禁网站| 午夜免费鲁丝| 久久亚洲精品不卡| 欧美人与性动交α欧美精品济南到| 一本久久精品| av视频免费观看在线观看| 中文字幕人妻熟女乱码| 国产精品免费视频内射| 老司机影院毛片| 多毛熟女@视频| 每晚都被弄得嗷嗷叫到高潮| 啪啪无遮挡十八禁网站| 久久99热这里只频精品6学生| 久久久国产欧美日韩av| 国产精品二区激情视频| 国产男人的电影天堂91| 嫩草影视91久久| 天天操日日干夜夜撸| 午夜免费鲁丝| 十八禁高潮呻吟视频| 人成视频在线观看免费观看| 午夜福利视频精品| 国产一卡二卡三卡精品| 各种免费的搞黄视频| 国产亚洲av高清不卡| 性高湖久久久久久久久免费观看| 国产精品欧美亚洲77777| 丰满饥渴人妻一区二区三| 99精国产麻豆久久婷婷| xxxhd国产人妻xxx| 欧美黑人精品巨大| 亚洲国产av新网站| 欧美日韩黄片免| 国产伦人伦偷精品视频| 黄色毛片三级朝国网站| 91麻豆精品激情在线观看国产 | 国产精品久久久久久精品古装| 亚洲精品一区蜜桃| 丁香六月欧美| 色老头精品视频在线观看| 国产野战对白在线观看| a级毛片在线看网站| 日日爽夜夜爽网站| 成年动漫av网址| 午夜精品久久久久久毛片777| 女性被躁到高潮视频| 十八禁网站网址无遮挡| 国产高清videossex| 91字幕亚洲| 啪啪无遮挡十八禁网站| 国产成+人综合+亚洲专区| a级片在线免费高清观看视频| 亚洲国产av影院在线观看| 欧美精品亚洲一区二区| 国产伦人伦偷精品视频| 精品少妇内射三级| 18禁国产床啪视频网站| 国产精品免费大片| 国产亚洲av片在线观看秒播厂| 久久久久国内视频| 高清欧美精品videossex| 亚洲男人天堂网一区| 成人国产av品久久久| 一二三四在线观看免费中文在| 色94色欧美一区二区| 男女高潮啪啪啪动态图| 日韩视频在线欧美| 日韩制服骚丝袜av| 不卡一级毛片| 男女之事视频高清在线观看| 国产精品免费大片| 精品国产国语对白av| 两人在一起打扑克的视频| 久久99热这里只频精品6学生| 欧美 日韩 精品 国产| 午夜福利一区二区在线看| av超薄肉色丝袜交足视频| 操美女的视频在线观看| 亚洲精品国产av成人精品| 三上悠亚av全集在线观看| 国产一区二区激情短视频 | 人妻人人澡人人爽人人| 波多野结衣av一区二区av| 亚洲精品中文字幕一二三四区 | av天堂久久9| 国产成人欧美| 亚洲精品粉嫩美女一区| 亚洲国产av影院在线观看| 美国免费a级毛片| 国产成人系列免费观看| 国产精品久久久久久人妻精品电影 | 国产黄色免费在线视频| 人人妻人人添人人爽欧美一区卜| 999精品在线视频| 美女脱内裤让男人舔精品视频| 精品第一国产精品| 考比视频在线观看| 免费久久久久久久精品成人欧美视频| 天天躁狠狠躁夜夜躁狠狠躁| 日本wwww免费看| 亚洲三区欧美一区| 视频在线观看一区二区三区| 中文字幕精品免费在线观看视频| 黑丝袜美女国产一区| 两个人看的免费小视频| 国产不卡av网站在线观看| 18禁裸乳无遮挡动漫免费视频| 老汉色∧v一级毛片| 色精品久久人妻99蜜桃| 国产老妇伦熟女老妇高清| 一个人免费在线观看的高清视频 | 久久精品熟女亚洲av麻豆精品| 99久久国产精品久久久| 老熟妇仑乱视频hdxx| 最新的欧美精品一区二区| 久久精品亚洲熟妇少妇任你| 性高湖久久久久久久久免费观看| 亚洲色图综合在线观看| 国产精品二区激情视频| 人人澡人人妻人| 一区二区日韩欧美中文字幕| 欧美日韩亚洲国产一区二区在线观看 | 中文字幕色久视频| 三上悠亚av全集在线观看| 汤姆久久久久久久影院中文字幕| 老熟妇乱子伦视频在线观看 | 少妇猛男粗大的猛烈进出视频| 亚洲国产精品999| 亚洲国产中文字幕在线视频| 国产日韩欧美在线精品| 爱豆传媒免费全集在线观看| 男女午夜视频在线观看| 性少妇av在线| av线在线观看网站| 国产精品秋霞免费鲁丝片| 国产成人欧美| 男人操女人黄网站| 欧美亚洲日本最大视频资源| 国产色视频综合| 老司机在亚洲福利影院| 十八禁网站免费在线| 久久久精品国产亚洲av高清涩受| 久久这里只有精品19| 欧美亚洲 丝袜 人妻 在线| 黄色怎么调成土黄色| 精品人妻一区二区三区麻豆| 久久免费观看电影| 亚洲中文日韩欧美视频| 亚洲成人免费av在线播放| 国内毛片毛片毛片毛片毛片| svipshipincom国产片| 成人国产一区最新在线观看| 99国产精品一区二区蜜桃av | 中文字幕人妻丝袜制服| 久久影院123| 十八禁高潮呻吟视频| 亚洲人成电影观看| 国产免费一区二区三区四区乱码| 天堂8中文在线网| av线在线观看网站| 亚洲av欧美aⅴ国产| 久久青草综合色| 日韩电影二区| 成人黄色视频免费在线看| 国产精品久久久久成人av| 男女床上黄色一级片免费看| av又黄又爽大尺度在线免费看| 国产无遮挡羞羞视频在线观看| 欧美日韩亚洲综合一区二区三区_| 伦理电影免费视频| 日韩制服丝袜自拍偷拍| 亚洲一区二区三区欧美精品| 黄色毛片三级朝国网站| 日韩 欧美 亚洲 中文字幕| 欧美日韩视频精品一区| 两性午夜刺激爽爽歪歪视频在线观看 | 老汉色∧v一级毛片| 久久精品国产亚洲av高清一级| 精品一区二区三区av网在线观看 | 国产亚洲一区二区精品| 女性生殖器流出的白浆| 一级毛片电影观看| av线在线观看网站| 又大又爽又粗| 午夜91福利影院| 国产一卡二卡三卡精品| 99久久精品国产亚洲精品| 国产精品国产三级国产专区5o| 狠狠婷婷综合久久久久久88av| 久久综合国产亚洲精品| 国产精品久久久av美女十八| 亚洲熟女精品中文字幕| www日本在线高清视频| 十八禁网站免费在线| 久久久国产一区二区| 亚洲精品国产av蜜桃| 精品福利永久在线观看| 久久国产亚洲av麻豆专区| avwww免费| 欧美日韩福利视频一区二区| 国产精品久久久久久精品电影小说| 大香蕉久久网| svipshipincom国产片| 国产亚洲精品第一综合不卡| 在线观看免费日韩欧美大片| 美国免费a级毛片| 亚洲av美国av| 自拍欧美九色日韩亚洲蝌蚪91| 婷婷成人精品国产| 欧美精品一区二区大全| 国产成人a∨麻豆精品| 久久亚洲精品不卡| 欧美成狂野欧美在线观看| 午夜福利影视在线免费观看| 欧美黄色片欧美黄色片| 国产精品亚洲av一区麻豆| 亚洲精品中文字幕在线视频| 久久99一区二区三区| 久久青草综合色| 两个人免费观看高清视频| 性少妇av在线| 性色av一级| 亚洲精品中文字幕一二三四区 | 精品国产国语对白av| 国产精品久久久人人做人人爽| 99久久国产精品久久久| 久久人人爽人人片av| 性色av乱码一区二区三区2| 亚洲国产精品一区三区| 97在线人人人人妻| 成人手机av| a级毛片黄视频| 国产精品一区二区在线观看99| 91大片在线观看| 国产成人系列免费观看| av福利片在线| 国产精品熟女久久久久浪| 岛国毛片在线播放| 亚洲欧洲日产国产| 新久久久久国产一级毛片| 亚洲熟女精品中文字幕| 国产精品1区2区在线观看. | av在线播放精品| 国产免费av片在线观看野外av| 夜夜夜夜夜久久久久| 欧美 日韩 精品 国产| 一级,二级,三级黄色视频| 色播在线永久视频| 亚洲久久久国产精品| 午夜激情久久久久久久| 黑人巨大精品欧美一区二区蜜桃| 桃红色精品国产亚洲av| 男人爽女人下面视频在线观看| 久久国产精品大桥未久av| 精品少妇久久久久久888优播| 少妇被粗大的猛进出69影院| 狂野欧美激情性xxxx| 在线观看人妻少妇| 久久精品久久久久久噜噜老黄| 久久人人爽人人片av| 天堂中文最新版在线下载| 91精品国产国语对白视频| 亚洲国产精品999| 熟女少妇亚洲综合色aaa.| 亚洲伊人色综图| 日本av免费视频播放| 亚洲精品一卡2卡三卡4卡5卡 | 成人三级做爰电影| 人人妻,人人澡人人爽秒播| 制服诱惑二区| 一二三四在线观看免费中文在| 欧美日韩亚洲综合一区二区三区_| 高潮久久久久久久久久久不卡| 久久精品熟女亚洲av麻豆精品| 99热网站在线观看| 999久久久精品免费观看国产| 最近最新中文字幕大全免费视频| 亚洲av电影在线进入| 少妇人妻久久综合中文| 午夜两性在线视频| 纵有疾风起免费观看全集完整版| 午夜福利视频精品| 中文字幕人妻丝袜一区二区| 午夜久久久在线观看| av天堂在线播放| 波多野结衣一区麻豆| 侵犯人妻中文字幕一二三四区| 肉色欧美久久久久久久蜜桃| 日日摸夜夜添夜夜添小说| 亚洲成人国产一区在线观看| 一级片'在线观看视频| 欧美+亚洲+日韩+国产| 这个男人来自地球电影免费观看| 国产在视频线精品| www.av在线官网国产| 久久热在线av| 国产精品久久久人人做人人爽| 欧美黄色淫秽网站| www.自偷自拍.com| 成人黄色视频免费在线看| 又紧又爽又黄一区二区| 母亲3免费完整高清在线观看| 在线十欧美十亚洲十日本专区| 老司机影院成人| 午夜福利在线免费观看网站| 美女福利国产在线| 日韩三级视频一区二区三区| 久久综合国产亚洲精品| 人人妻人人爽人人添夜夜欢视频| 欧美精品av麻豆av| 国产av一区二区精品久久| 亚洲成国产人片在线观看| 嫩草影视91久久| 别揉我奶头~嗯~啊~动态视频 | 18在线观看网站| 曰老女人黄片| 性色av乱码一区二区三区2| 在线观看舔阴道视频| 女性生殖器流出的白浆| 国产av国产精品国产| 99精品欧美一区二区三区四区| 国产亚洲午夜精品一区二区久久| 无遮挡黄片免费观看| 日本wwww免费看| 老熟妇仑乱视频hdxx| 中文欧美无线码| 久热爱精品视频在线9| 天天操日日干夜夜撸| 欧美国产精品va在线观看不卡| 亚洲九九香蕉| 一本久久精品| 国内毛片毛片毛片毛片毛片| 王馨瑶露胸无遮挡在线观看| 黄色视频不卡| 脱女人内裤的视频| 1024香蕉在线观看| 久久久久精品国产欧美久久久 | 高清黄色对白视频在线免费看| 一本综合久久免费| 俄罗斯特黄特色一大片| 亚洲av成人一区二区三| 国产亚洲欧美在线一区二区| 久久国产精品人妻蜜桃| 亚洲,欧美精品.| 国产精品一区二区免费欧美 | 久久久久精品国产欧美久久久 | 亚洲av国产av综合av卡| 97精品久久久久久久久久精品| 一级,二级,三级黄色视频| 国产精品99久久99久久久不卡| 亚洲欧美精品自产自拍| 不卡av一区二区三区| 五月开心婷婷网| 免费久久久久久久精品成人欧美视频| 精品亚洲乱码少妇综合久久| 如日韩欧美国产精品一区二区三区| 女人爽到高潮嗷嗷叫在线视频| 精品少妇黑人巨大在线播放| 国产成人av激情在线播放| 亚洲av美国av| 9色porny在线观看| 久久中文看片网| 久久久久久久久免费视频了| 黄片小视频在线播放| 亚洲情色 制服丝袜| av视频免费观看在线观看| 国产高清videossex| 亚洲视频免费观看视频| 成人影院久久| 国产91精品成人一区二区三区 | 夜夜夜夜夜久久久久| 亚洲少妇的诱惑av| 免费不卡黄色视频| 91成人精品电影| 日韩制服骚丝袜av| av线在线观看网站| 99久久精品国产亚洲精品| 国产野战对白在线观看| 成人国语在线视频| 人人妻,人人澡人人爽秒播| 色婷婷av一区二区三区视频| 精品亚洲乱码少妇综合久久| 国产欧美日韩综合在线一区二区| 纯流量卡能插随身wifi吗| 操出白浆在线播放| 伊人久久大香线蕉亚洲五| 精品久久久久久电影网| 亚洲成人免费av在线播放| 久久久久视频综合| 青春草视频在线免费观看| 亚洲欧洲日产国产| 久久毛片免费看一区二区三区| 国产片内射在线| 久久亚洲国产成人精品v| 亚洲国产精品一区三区| 亚洲成av片中文字幕在线观看| 亚洲av电影在线观看一区二区三区| 欧美黄色片欧美黄色片| 久久国产精品人妻蜜桃| 热99久久久久精品小说推荐| 亚洲精品国产一区二区精华液| 午夜影院在线不卡| av片东京热男人的天堂| 欧美+亚洲+日韩+国产| 国产av又大| 丰满饥渴人妻一区二区三| 超色免费av| 一边摸一边做爽爽视频免费| 99国产精品一区二区蜜桃av | 肉色欧美久久久久久久蜜桃| 9191精品国产免费久久| 久久久国产精品麻豆| 亚洲成人手机| 女性生殖器流出的白浆| 一级毛片女人18水好多| 高清视频免费观看一区二区| 亚洲情色 制服丝袜| 一二三四社区在线视频社区8| 啦啦啦在线免费观看视频4| 国产在线免费精品| 亚洲欧美一区二区三区久久| 欧美日韩亚洲综合一区二区三区_| 我要看黄色一级片免费的| 人成视频在线观看免费观看| 一边摸一边做爽爽视频免费| 后天国语完整版免费观看| 亚洲全国av大片| 国产97色在线日韩免费| 精品视频人人做人人爽| 欧美大码av| 国产一区二区激情短视频 | 亚洲人成77777在线视频| 我要看黄色一级片免费的| 亚洲国产欧美一区二区综合| 啦啦啦啦在线视频资源| bbb黄色大片| 国产精品麻豆人妻色哟哟久久| 欧美另类一区| 99re6热这里在线精品视频| 亚洲中文日韩欧美视频| 日本a在线网址| 欧美日韩精品网址| 成人手机av| 精品亚洲乱码少妇综合久久| 精品欧美一区二区三区在线| 久久毛片免费看一区二区三区| 看免费av毛片| 日韩欧美免费精品| 欧美精品亚洲一区二区| 亚洲熟女精品中文字幕| 亚洲少妇的诱惑av| 亚洲欧洲日产国产|