亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        接口測(cè)試全流程梳理和關(guān)鍵技術(shù)

        2020-04-23 11:16:32張?jiān)?/span>魏強(qiáng)何永江付征
        電子技術(shù)與軟件工程 2020年8期
        關(guān)鍵詞:頁面信息

        張?jiān)?魏強(qiáng) 何永江 付征

        (1.中國民航信息網(wǎng)絡(luò)股份有限公司 北京市 100000 2.北京市民航大數(shù)據(jù)工程技術(shù)研究中心 北京市 100000)

        (3.沈陽民航東北凱亞有限公司 遼寧省沈陽市 110000)

        1 引言

        根據(jù)研發(fā)中心“松耦合,強(qiáng)管理”的技術(shù)原則,系統(tǒng)內(nèi)各軟件越來越多,各軟件之間通過接口進(jìn)行交互。自2020年開始,研發(fā)中心著力打造PSS 對(duì)外服務(wù)接口體系。因此,接口測(cè)試的需求近期明顯井噴。如何校驗(yàn)字段繁多結(jié)構(gòu)復(fù)雜的接口功能、如何設(shè)計(jì)規(guī)范化的測(cè)試用例、如何實(shí)現(xiàn)回歸測(cè)試是接口測(cè)試中的三大難點(diǎn)。

        2 接口測(cè)試現(xiàn)狀

        在2018年對(duì)Service API(簡(jiǎn)稱SAT)接口的測(cè)試過程中,我們發(fā)現(xiàn),手工測(cè)試存在報(bào)文拼接出錯(cuò)率高、字段覆蓋不全等諸多風(fēng)險(xiǎn)。經(jīng)研究,可以通過報(bào)文自動(dòng)化拼接的方式來實(shí)現(xiàn)接口的自動(dòng)化測(cè)試。

        自動(dòng)化測(cè)試能大大減少人工投入、顯著提高工作效率。但是,由于自動(dòng)化測(cè)試的學(xué)習(xí)成本比較高,所以接口測(cè)試的自動(dòng)化目前還沒有大規(guī)模推廣和普及。本文通過讀取接口文檔、自動(dòng)生成字段結(jié)構(gòu)測(cè)試用例和字段校驗(yàn)用例等技術(shù)手段,使接口的自動(dòng)化測(cè)試流程化、工具化,從而達(dá)到減少學(xué)習(xí)成本、提高工作效率的目的。

        3 接口測(cè)試全流程梳理

        3.1 接口測(cè)試原理

        接口,Application Programming Interface(API),在軟件領(lǐng)域泛指不同功能之間的交互通信部分。接口測(cè)試,一般與頁面測(cè)試進(jìn)行區(qū)分,是直接測(cè)試接口功能的一種測(cè)試類型。通過軟件測(cè)試的理論和方法去測(cè)試接口,找出接口的功能缺陷,從而驗(yàn)證服務(wù)端是否滿足了它所提供的服務(wù)。

        3.2 接口測(cè)試流程介紹

        接口測(cè)試流程根據(jù)軟件項(xiàng)目所采用的開發(fā)模式而略有不同,通常的測(cè)試流程如下:

        (1)接口文檔分析;

        (2)接口用例設(shè)計(jì);

        (3)用例評(píng)審;

        (4)接口測(cè)試環(huán)境搭建;

        (5)接口用例執(zhí)行;

        (6)缺陷提交;

        (7)回歸測(cè)試;

        (8)測(cè)試報(bào)告和交付物提交。

        3.3 接口測(cè)試用例設(shè)計(jì)方法

        圖1:Jenkins 自動(dòng)部署設(shè)置

        圖2:自動(dòng)執(zhí)行時(shí)間設(shè)置

        接口測(cè)試總體分為功能和非功能的測(cè)試。非功能方面一般需要測(cè)試接口的性能、安全方面,功能測(cè)試需求根據(jù)軟件測(cè)試的理論方法進(jìn)行用例的設(shè)計(jì)。常見的測(cè)試設(shè)計(jì)如下:

        3.3.1 性能測(cè)試

        (1)響應(yīng)時(shí)間;

        (2)吞吐量;

        (3)并發(fā)數(shù);

        (4)服務(wù)器資源使用率(CPU、內(nèi)存、IO、網(wǎng)絡(luò)等)。

        3.3.2 安全測(cè)試

        (1)敏感信息是否加密;

        (2)傳輸過程是否加密;

        (3)日志系統(tǒng);

        (4)惡意請(qǐng)求測(cè)試;

        (5)SQL 注入測(cè)試。

        3.3.3 功能測(cè)試

        (1)業(yè)務(wù)功能測(cè)試(正向場(chǎng)景、反向場(chǎng)景、錯(cuò)誤場(chǎng)景);

        (2)邊界分析測(cè)試(業(yè)務(wù)規(guī)則邊界、參數(shù)邊界);

        (3)參數(shù)組合測(cè)試;

        (4)異常情況測(cè)試(系統(tǒng)異常、網(wǎng)絡(luò)異常、重復(fù)請(qǐng)求、分布式測(cè)試、事務(wù)測(cè)試等)。

        圖3:自動(dòng)執(zhí)行腳本設(shè)置

        圖4:自動(dòng)發(fā)送結(jié)果郵件

        圖5:查看結(jié)果

        圖6:重點(diǎn)標(biāo)紅失敗的接口

        3.4 接口用例執(zhí)行

        對(duì)于接口用例的執(zhí)行,可以根據(jù)測(cè)試人員的能力選擇適合的測(cè)試方式,不同的測(cè)試方式會(huì)有效率、質(zhì)量上的差異。本文列舉了業(yè)界應(yīng)用最廣泛的3 種方式:

        3.4.1 工具測(cè)試

        常見的工具有SoapUI、Postman、Jmeter,采用工具測(cè)試對(duì)測(cè)試人員的能力要求較低,但是測(cè)試過程會(huì)由于測(cè)試工具的局限性而受到影響,如果測(cè)試工具不支持則不能滿足測(cè)試的特殊要求。

        3.4.2 代碼測(cè)試

        對(duì)測(cè)試人員有較高的代碼能力要求,測(cè)試通過編寫程序代碼來構(gòu)造自己的測(cè)試框架,并且可以根據(jù)自身的需求隨意的擴(kuò)展代碼,可以打造出完全符合需求的測(cè)試程序。

        3.4.3 平臺(tái)測(cè)試

        適用于較大型的軟件項(xiàng)目,項(xiàng)目組有測(cè)試開發(fā)人員專門編寫統(tǒng)一的、適合本項(xiàng)目或者本公司需求的接口測(cè)試平臺(tái)。如此打造的接口平臺(tái)可以不斷迭代功能,從而滿足層出不窮的需求,且對(duì)執(zhí)行測(cè)試的人員沒有較高的代碼能力要求。

        圖7:抓取接口頁面的接口信息

        3.5 中航信Service API項(xiàng)目接口測(cè)試實(shí)例

        3.5.1 測(cè)試工具

        由于項(xiàng)目組初期人員較少,測(cè)試人員沒有較強(qiáng)代碼能力,經(jīng)項(xiàng)目組研究選擇了SoapUI 作為測(cè)試工具。SoapUI 本身有著強(qiáng)大的接口測(cè)試功能和良好的用例管理功能,并且可以通過腳步插入的方式進(jìn)行功能擴(kuò)展,可以滿足SAT 的絕大部分測(cè)試需求。

        圖8:生成SoapUI 格式的全字段請(qǐng)求

        3.5.2 測(cè)試用例生成

        使用Python 編寫工具從網(wǎng)頁版的API 文檔中抓取信息、生成請(qǐng)求并整合成SoapUI 的Test Suite 文件,根據(jù)接口逐一生成Test Suite 文件作為測(cè)試用例。技術(shù)細(xì)節(jié)請(qǐng)見第4 章。

        圖9:生成SoapUI Test Suit

        3.5.3 測(cè)試執(zhí)行

        使用soapUI 工具導(dǎo)入生成的Test Suite,再在工具中進(jìn)行點(diǎn)擊、執(zhí)行。

        3.5.4 回歸測(cè)試

        將測(cè)試過的Test Suite 放在Git 倉庫中,使用Jenkins 集成測(cè)試環(huán)境、測(cè)試腳本,并在Jenkins 中設(shè)置每天早上自動(dòng)執(zhí)行Test Suite中的用例,自動(dòng)生成報(bào)告發(fā)送給相關(guān)人員。如圖1 至圖6 所示。

        4 關(guān)鍵技術(shù)研究

        4.1 使用測(cè)試工具

        (1)SoapUI(開源接口測(cè)試工具);

        (2)Python(測(cè)試程序開發(fā)工具),按照如下模塊:

        1.bs4

        2.Paramiko

        3.ElementTree

        4.2 程序概要設(shè)計(jì)

        程序分為如下四部分:

        (1)按照接口的url 地址,抓取頁面,返回接口信息;

        (2)根據(jù)抓取接口,生成SoapUI 格式的全字段請(qǐng)求;

        (3)步驟(1)和(2)的內(nèi)容,生成包含接口全部必填校驗(yàn)和字段內(nèi)容校驗(yàn)的Test Suit,供導(dǎo)入SoapUI 后自動(dòng)執(zhí)行:

        1.根據(jù)接口信息,生成必填字段校驗(yàn),和字段內(nèi)容校驗(yàn)的正、反用例測(cè)試點(diǎn)和對(duì)應(yīng)的斷言;

        2.必填字段測(cè)試請(qǐng)求和斷言:如是普通字段,則從全字段請(qǐng)求中移除此字段,如是數(shù)組中的一個(gè)元素,則清空此數(shù)組;

        3.字段內(nèi)容校驗(yàn)測(cè)試請(qǐng)求和斷言:生成此字段的參數(shù)化soapUI請(qǐng)求,自動(dòng)為參數(shù)化字段分配此字段校驗(yàn)規(guī)則對(duì)應(yīng)的測(cè)試數(shù)據(jù),根據(jù)數(shù)據(jù),生成此soapUI 請(qǐng)求的斷言;

        4.全部請(qǐng)求按照soapUI 的Test Suit 格式生成為一個(gè)xml 文件,供SoapUI 導(dǎo)入使用。

        4.3 程序詳細(xì)設(shè)計(jì)

        4.3.1 抓取接口頁面的接口信息

        實(shí)現(xiàn)思路:

        (1)Python 中著名的第三方庫BeautifulSoup 可以用于解析網(wǎng)頁;

        (2)Confluence 頁面的授權(quán),可以通過http 訪問登錄頁面后保存cookie,使用cookie 驗(yàn)證以減少認(rèn)證時(shí)間;

        (3)通過標(biāo)題名稱,控制訪問的頁面區(qū)間,通過輸入?yún)?shù)["req","res"],確定返回頁面的請(qǐng)求信息還是返回信息;

        (4)把搜索到的信息,按照字典格式返回,共后續(xù)程序使用。

        抓取接口頁面的接口信息如圖7 所示。

        4.3.2 生成SoapUI 格式的全字段請(qǐng)求

        實(shí)現(xiàn)思路:

        (1)獲取到接口信息后,使用ElementTree,逐級(jí)構(gòu)造XML請(qǐng)求。

        (2)若JSON 請(qǐng)求格式不能直接通過XML 轉(zhuǎn)換,需要按照如下步驟轉(zhuǎn)換:

        1.讀取接口字典;

        2.遍歷XML 請(qǐng)求,結(jié)合接口字段,判斷當(dāng)前節(jié)點(diǎn)類型:是普通接口,直接轉(zhuǎn)換,同時(shí)需要注意值類型的轉(zhuǎn)換;該節(jié)點(diǎn)下包含其他節(jié)點(diǎn),則此節(jié)點(diǎn)創(chuàng)建為數(shù)組結(jié)構(gòu),如A 字段,轉(zhuǎn)換為A:[],此節(jié)點(diǎn)下的結(jié)節(jié),不填寫名稱,而向此數(shù)組中添加值即可。

        生成SoapUI 格式的全字段請(qǐng)求如圖8 所示。

        4.3.3 生成SoapUI Test Suit

        實(shí)現(xiàn)思路:

        (1)使用此接口的全報(bào)文字段,作為后續(xù)請(qǐng)求生成的基礎(chǔ);

        (2)解析全報(bào)文信息,可以把報(bào)文按照TestSuit,TestCase,Json 請(qǐng)求,XML 請(qǐng)求,參數(shù)設(shè)置、斷言這幾部分;

        (3)通過Confluence 上的接口文檔,可以獲取每個(gè)請(qǐng)求字段的屬性,是否必填,類型,父節(jié)點(diǎn)等信息;

        (4)對(duì)于屬性的校驗(yàn),可以通過程序自動(dòng)生成有效,無效等價(jià)類或者文件的方法,生成對(duì)應(yīng)的用例和斷言;

        (5)對(duì)于M 字段的校驗(yàn),可以通過程序,自動(dòng)從全字段報(bào)文中,去除此字段,然后添加對(duì)應(yīng)的用例和斷言;

        (6)這個(gè)腳本,其實(shí)是要給文本處理腳本,使用Python 抓取接口請(qǐng)求信息后,使用請(qǐng)求信息中內(nèi)容,生成符合SoapUI 接口要求的XML 文檔。

        生成SoapUI Test Suit 如圖9 所示。

        5 總結(jié)

        通過對(duì)接口測(cè)試全流程、用例設(shè)計(jì)以及接口自動(dòng)化技術(shù)等的梳理,SAT 測(cè)試人員對(duì)相關(guān)的流程、范圍和方法等都有了全面深入的了解,能設(shè)計(jì)出更完善的測(cè)試用例,提高了測(cè)試質(zhì)量。此外,關(guān)鍵技術(shù)的研究,使得測(cè)試流程自動(dòng)化正逐步取代手工操作,大大提高了測(cè)試效率。同時(shí),隨著研究的深入和技術(shù)的不斷加強(qiáng),測(cè)試人員已經(jīng)有能力優(yōu)化測(cè)試流程,從而形成了雙向拉動(dòng)的良性循環(huán)。經(jīng)過一年的不斷實(shí)踐和改進(jìn),測(cè)試用例的平均設(shè)計(jì)時(shí)間已從3 天縮至1天,測(cè)試執(zhí)行效率提高了30%,接口的回歸測(cè)試周期也大大縮短。

        接下來,將在工作中做更加全面的改進(jìn)和提升,使接口測(cè)試流程更加順暢、用例設(shè)計(jì)更加完善、自動(dòng)化程度更加提高,以進(jìn)一步提高接口測(cè)試的質(zhì)量和效率。

        猜你喜歡
        頁面信息
        微信群聊總是找不到,打開這個(gè)開關(guān)就好了
        大狗熊在睡覺
        刷新生活的頁面
        訂閱信息
        中華手工(2017年2期)2017-06-06 23:00:31
        展會(huì)信息
        同一Word文檔 縱橫頁面并存
        淺析ASP.NET頁面導(dǎo)航技術(shù)
        其實(shí)IE也懂Chrome的心
        信息
        健康信息
        祝您健康(1987年3期)1987-12-30 09:52:32
        国产日韩精品中文字无码| 亚洲国产高清精品在线| 日韩在线精品视频一区| 女优av一区二区三区| 99久久99久久久精品齐齐| 日本怡春院一区二区三区| 国产精品麻豆成人av电影艾秋| 亚洲av熟妇高潮30p| 久久精品性无码一区二区爱爱| 亚洲熟妇av乱码在线观看 | 亚洲色婷婷综合开心网| av网页在线免费观看| 在线观看日本一区二区三区| 美艳善良的丝袜高跟美腿| 久久黄色视频| 一本一道av无码中文字幕﹣百度 | 成人欧美一区二区三区在线| 激情综合丁香五月| 俺来也俺去啦最新在线| 狠狠干视频网站| 国产午夜视频高清在线观看| 亚洲中文字幕久久在线| 国产精品区一区二区三在线播放| 朝鲜女人大白屁股ass| 97超在线视频免费| 亚洲国产成人手机在线电影| 亚洲国产日韩精品综合| 国产人妖av在线观看| 亚洲一区二区三区,日本| 国产激情无码一区二区三区| 真人无码作爱免费视频禁hnn| 国产精品黄网站免费观看| 欧美性爱一区二区三区无a| 二区三区视频在线观看| 国产熟女白浆精品视频二| 最新露脸自拍视频在线观看| 国产md视频一区二区三区| 国产在线观看免费观看| 国产日韩欧美911在线观看| 久久婷婷夜色精品国产| 日韩精品视频高清在线|