999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

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

張云 魏強 何永江 付征

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

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

1 引言

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

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

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

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

3 接口測試全流程梳理

3.1 接口測試原理

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

3.2 接口測試流程介紹

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

(1)接口文檔分析;

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

(3)用例評審;

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

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

(6)缺陷提交;

(7)回歸測試;

(8)測試報告和交付物提交。

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

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

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

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

3.3.1 性能測試

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

(2)吞吐量;

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

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

3.3.2 安全測試

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

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

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

(4)惡意請求測試;

(5)SQL 注入測試。

3.3.3 功能測試

(1)業(yè)務(wù)功能測試(正向場景、反向場景、錯誤場景);

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

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

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

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

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

圖5:查看結(jié)果

圖6:重點標紅失敗的接口

3.4 接口用例執(zhí)行

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

3.4.1 工具測試

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

3.4.2 代碼測試

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

3.4.3 平臺測試

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

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

3.5 中航信Service API項目接口測試實例

3.5.1 測試工具

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

圖8:生成SoapUI 格式的全字段請求

3.5.2 測試用例生成

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

圖9:生成SoapUI Test Suit

3.5.3 測試執(zhí)行

使用soapUI 工具導入生成的Test Suite,再在工具中進行點擊、執(zhí)行。

3.5.4 回歸測試

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

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

4.1 使用測試工具

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

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

1.bs4

2.Paramiko

3.ElementTree

4.2 程序概要設(shè)計

程序分為如下四部分:

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

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

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

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

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

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

4.全部請求按照soapUI 的Test Suit 格式生成為一個xml 文件,供SoapUI 導入使用。

4.3 程序詳細設(shè)計

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

實現(xiàn)思路:

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

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

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

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

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

4.3.2 生成SoapUI 格式的全字段請求

實現(xiàn)思路:

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

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

1.讀取接口字典;

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

生成SoapUI 格式的全字段請求如圖8 所示。

4.3.3 生成SoapUI Test Suit

實現(xiàn)思路:

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

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

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

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

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

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

生成SoapUI Test Suit 如圖9 所示。

5 總結(jié)

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

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

猜你喜歡
頁面信息
微信群聊總是找不到,打開這個開關(guān)就好了
大狗熊在睡覺
刷新生活的頁面
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
同一Word文檔 縱橫頁面并存
淺析ASP.NET頁面導航技術(shù)
其實IE也懂Chrome的心
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
404 Not Found

404 Not Found


nginx
主站蜘蛛池模板: 亚洲AV无码一区二区三区牲色| 亚洲精品午夜无码电影网| 亚洲品质国产精品无码| 另类专区亚洲| 日韩天堂视频| 国产精品视屏| 欧美日韩亚洲综合在线观看| 免费aa毛片| 热re99久久精品国99热| 亚洲精品亚洲人成在线| 九九线精品视频在线观看| 亚洲一级色| 亚洲va精品中文字幕| 人妻中文久热无码丝袜| 免费观看三级毛片| 精品人妻无码中字系列| 国产精品久久久久鬼色| 亚洲日韩久久综合中文字幕| 久久人人妻人人爽人人卡片av| 91小视频版在线观看www| 99视频全部免费| 精品一区二区三区波多野结衣| 国产精欧美一区二区三区| 国产免费a级片| 久久精品无码专区免费| 五月婷婷精品| 青青国产在线| 国产精品丝袜在线| 国产国产人在线成免费视频狼人色| 国产乱人伦精品一区二区| 婷婷五月在线| 国产91无码福利在线| 欧美激情第一区| 国产粉嫩粉嫩的18在线播放91 | 欧美日韩亚洲综合在线观看| 午夜激情福利视频| 色呦呦手机在线精品| 久精品色妇丰满人妻| 免费a在线观看播放| 日韩欧美中文字幕一本| 国产在线视频福利资源站| 女人18毛片一级毛片在线| 十八禁美女裸体网站| 久久国产乱子伦视频无卡顿| 久久女人网| 久久精品aⅴ无码中文字幕 | 人妻免费无码不卡视频| 亚洲天堂网2014| 亚洲天堂.com| 久久综合色天堂av| 久久精品国产精品一区二区| 欧美yw精品日本国产精品| 国产一区成人| 亚洲国产精品一区二区第一页免 | 国产在线观看91精品亚瑟| 波多野结衣AV无码久久一区| 男女男精品视频| 2018日日摸夜夜添狠狠躁| 狠狠干综合| 国产香蕉97碰碰视频VA碰碰看| igao国产精品| 成人国产免费| 日韩国产无码一区| 日本亚洲欧美在线| 国产中文一区二区苍井空| 国产欧美视频一区二区三区| 乱人伦中文视频在线观看免费| 亚洲无码在线午夜电影| 欧美无专区| 2021国产v亚洲v天堂无码| 精品视频在线观看你懂的一区| 国产福利拍拍拍| 欧美色图久久| 亚洲第一区欧美国产综合| 国产精品福利一区二区久久| 欧美福利在线播放| 免费精品一区二区h| 国产在线视频自拍| 久久99精品久久久大学生| a在线亚洲男人的天堂试看| 久草中文网| 日韩毛片免费视频|