1.背景
隨著自動(dòng)化測試的設(shè)計(jì)理念不斷完善、新的技術(shù)不斷應(yīng)用,自動(dòng)化測試資產(chǎn)的積累代價(jià)和維護(hù)成本不斷降低,自動(dòng)化測試資產(chǎn)的數(shù)量持續(xù)增長。同時(shí),隨著DevOps的普及,應(yīng)用研發(fā)過程越來越敏捷,自動(dòng)化測試能力逐步從測試部門輸出至開發(fā)部門,在每日構(gòu)建、制品晉級(jí)、版本發(fā)布等流程中成為必備環(huán)節(jié)。
![]()
隨著自動(dòng)化測試執(zhí)行能力的不斷提升,自動(dòng)化測試執(zhí)行結(jié)果數(shù)據(jù)指數(shù)級(jí)增加,大量的結(jié)果分析處理工作成為自動(dòng)化測試開展的瓶頸。本文介紹一種基于知識(shí)庫的接口自動(dòng)化測試結(jié)果分析方法與裝置,通過接口測試結(jié)果模型化方法和基于錯(cuò)誤碼庫、非缺陷知識(shí)庫的錯(cuò)誤歸類分析方法,輔助測試人員高效實(shí)施大規(guī)模、多系統(tǒng)的接口自動(dòng)化測試結(jié)果分析處理。
2.接口測試結(jié)果模型化
接口自動(dòng)化測試,簡單地說,就是按測試需求裝報(bào)文,發(fā)送給被測系統(tǒng),接收并解析返回報(bào)文,判斷測試成功失敗。
在自動(dòng)化測試平臺(tái)中,對(duì)接口測試過程模型化統(tǒng)一封裝:
- (1)通訊過程是報(bào)文發(fā)送和接收,其相關(guān)內(nèi)容抽象為通訊組件;
- (2)報(bào)文是被測系統(tǒng)與其客戶端或調(diào)用方針對(duì)具體接口約定的交互信息。其中,報(bào)文組裝和解析相關(guān)內(nèi)容抽象為報(bào)文組件,具體接口交互信息抽象為報(bào)文格式,對(duì)發(fā)送給被測系統(tǒng)的報(bào)文稱為輸入報(bào)文,被測系統(tǒng)返回的報(bào)文稱為輸出報(bào)文。
![]()
3.對(duì)測試結(jié)果的第一級(jí)分析:根據(jù)返回標(biāo)志位進(jìn)行初步判斷
因此,在接口自動(dòng)化測試執(zhí)行過程中,執(zhí)行程序?qū)⒔涌跍y試結(jié)果預(yù)處理為統(tǒng)一數(shù)據(jù)模型,包括結(jié)果標(biāo)志、錯(cuò)誤碼、錯(cuò)誤信息和返回報(bào)文,便于后續(xù)處理。
一般而言,符合一定開發(fā)規(guī)范的應(yīng)用系統(tǒng),會(huì)在返回報(bào)文公有域特定字段返回應(yīng)用級(jí)處理結(jié)果。若應(yīng)用級(jí)處理錯(cuò)誤,則還會(huì)在返回報(bào)文公有域特定字段返回錯(cuò)誤碼和錯(cuò)誤信息。
![]()
其中,結(jié)果標(biāo)志分為5類:
(1)應(yīng)用級(jí)處理正確,則結(jié)果標(biāo)志為N,此時(shí)錯(cuò)誤碼、錯(cuò)誤信息均為空;
(2)應(yīng)用級(jí)處理錯(cuò)誤,則結(jié)果標(biāo)志為E,錯(cuò)誤碼、錯(cuò)誤信息存儲(chǔ)返回報(bào)文提取的相應(yīng)信息;
(3)在金融系統(tǒng)中,為保證安全,重要金融交易一般會(huì)涉及雙人復(fù)核或者遠(yuǎn)程授權(quán)的過程,此時(shí)應(yīng)用級(jí)處理結(jié)果為“需要授權(quán)”,則結(jié)果標(biāo)志為A,錯(cuò)誤碼、錯(cuò)誤信息均為空;
(4)在平臺(tái)執(zhí)行接口測試的過程中,若出現(xiàn)任何程序未處理的內(nèi)部異常,則結(jié)果標(biāo)志為I,此時(shí)錯(cuò)誤碼、錯(cuò)誤信息均為空;
(5)在常見的HTTP/HTTPS、TCP等通訊方法中,若無法正常通訊并拿到預(yù)期的返回報(bào)文,則認(rèn)為在通訊級(jí)發(fā)生異常,結(jié)果標(biāo)志為U,此時(shí)錯(cuò)誤碼、錯(cuò)誤信息均為空。
通過第一級(jí)分析,可以對(duì)接口測試結(jié)果進(jìn)行初步分類,輔助測試人員判斷接口測試報(bào)錯(cuò)類型,排除網(wǎng)絡(luò)等環(huán)境因素造成的誤報(bào)。
![]()
4.對(duì)測試結(jié)果的第二級(jí)分析:根據(jù)錯(cuò)誤碼庫和非缺陷知識(shí)庫進(jìn)行精準(zhǔn)判斷
一般而言,符合一定開發(fā)規(guī)范的應(yīng)用系統(tǒng),會(huì)在返回報(bào)文公有域特定字段返回應(yīng)用級(jí)處理結(jié)果。若應(yīng)用級(jí)處理錯(cuò)誤,則還會(huì)在返回報(bào)文公有域特定字段返回錯(cuò)誤碼和錯(cuò)誤信息。
僅通過返回報(bào)文分析,對(duì)于“大幅降低接口測試誤報(bào)率”的預(yù)期是不夠的,需要配合錯(cuò)誤碼庫和非缺陷知識(shí)庫進(jìn)行第二級(jí)精準(zhǔn)分析。其實(shí)現(xiàn)方式是:自動(dòng)化測試平臺(tái)按系統(tǒng)名稱為各系統(tǒng)提供錯(cuò)誤碼庫,對(duì)結(jié)果標(biāo)志為E的接口測試結(jié)果細(xì)分錯(cuò)誤碼,分別設(shè)置錯(cuò)誤描述、匹配方式和匹配表達(dá)式。
匹配方式分為三種:
- (1)精確匹配:該匹配方式適用于統(tǒng)籌設(shè)計(jì)良好的系統(tǒng),項(xiàng)目組能夠較好的歸類業(yè)務(wù)錯(cuò)誤、分配錯(cuò)誤碼,并在系統(tǒng)接口設(shè)計(jì)中在公有域有固定字段返回錯(cuò)誤碼和錯(cuò)誤信息,此類系統(tǒng)直接采用錯(cuò)誤碼庫中的錯(cuò)誤碼與接口測試結(jié)果模型中的錯(cuò)誤碼匹配;
- (2)錯(cuò)誤信息模糊匹配:該匹配方式適用于能夠從固定字段輸出錯(cuò)誤信息,但沒有固定字段返回錯(cuò)誤碼或者錯(cuò)誤碼定義不規(guī)范(如錯(cuò)誤碼是中文信息)的系統(tǒng),此類系統(tǒng)錯(cuò)誤碼和錯(cuò)誤信息由測試人員自行定義,每類錯(cuò)誤碼需對(duì)應(yīng)設(shè)計(jì)匹配表達(dá)式,即一條正則表達(dá)式,若接口測試結(jié)果模型中的錯(cuò)誤信息能匹配該正則表達(dá)式則歸為該類錯(cuò)誤;
- (3)返回報(bào)文模糊匹配:該匹配方式適用于接口設(shè)計(jì)不規(guī)范、無固定字段返回錯(cuò)誤信息的系統(tǒng),此類系統(tǒng)錯(cuò)誤碼和錯(cuò)誤信息由測試人員自行定義,每類錯(cuò)誤碼需對(duì)應(yīng)設(shè)計(jì)匹配表達(dá)式,即一條正則表達(dá)式,若接口測試結(jié)果模型中的返回信息能匹配該正則表達(dá)式則歸為該類錯(cuò)誤。
在實(shí)際接口測試中,由于被測系統(tǒng)配置錯(cuò)誤、被測系統(tǒng)鋪底數(shù)據(jù)異常等問題而出現(xiàn)的錯(cuò)誤并非本次測試結(jié)果中需重點(diǎn)關(guān)注的內(nèi)容,對(duì)于該類錯(cuò)誤,將錯(cuò)誤碼庫中的對(duì)應(yīng)錯(cuò)誤條目增加標(biāo)志位,即納入非缺陷知識(shí)庫。
經(jīng)過實(shí)踐,在實(shí)施第二級(jí)精準(zhǔn)分析后,往往能大幅降低接口自動(dòng)化測試的誤報(bào)率,減少一線測試團(tuán)隊(duì)的分析工作量。
5.接口測試結(jié)果歸類分析
基于接口測試結(jié)果的模型化和兩級(jí)分析,我們將接口測試的結(jié)果分類分析,輸出概要表和錯(cuò)誤分類表。
概要表如下:
執(zhí)行錯(cuò)誤的交易將進(jìn)一步處理為錯(cuò)誤明細(xì)表,如下:
![]()
利用該分析結(jié)果,測試人員可重點(diǎn)關(guān)注結(jié)果類型為“執(zhí)行錯(cuò)誤”的分類,確認(rèn)為缺陷的應(yīng)提交給開發(fā)人員修復(fù);對(duì)于“執(zhí)行錯(cuò)誤非缺陷”的分類,應(yīng)在解決對(duì)應(yīng)問題后再次測試相關(guān)接口。
??轉(zhuǎn)崗軟件測試/野路子技能提升
??想了解更多漲薪技能提升方法
??可以到我的個(gè)人號(hào):atstudy-js
即可加入領(lǐng)取 ??????
轉(zhuǎn)行、入門、提升、需要的各種干貨資料
內(nèi)含AI測試、 車載測試、AI大模型開發(fā)、BI數(shù)據(jù)分析、銀行測試、游戲測試、AIGC
6.結(jié)語
本文介紹的接口自動(dòng)化測試結(jié)果分析方法,將不同系統(tǒng)、不同通訊方式、不同報(bào)文協(xié)議的接口測試結(jié)果標(biāo)準(zhǔn)化為的統(tǒng)一數(shù)據(jù)模型,并依據(jù)組織級(jí)錯(cuò)誤碼庫和非缺陷知識(shí)庫對(duì)標(biāo)準(zhǔn)化的測試結(jié)果進(jìn)行分類分析,大大降低測試結(jié)果的人工分析工作量。
其中,錯(cuò)誤碼庫及配套的三種錯(cuò)誤匹配方式,使得測試人員可以靈活自主地為被測系統(tǒng)定制錯(cuò)誤歸類識(shí)別方案,在不同應(yīng)用系統(tǒng)接口設(shè)計(jì)標(biāo)準(zhǔn)化程度不一的場景下,解決了接口測試結(jié)果的錯(cuò)誤識(shí)別問題;
非缺陷知識(shí)庫的設(shè)計(jì),使得測試人員可以預(yù)設(shè)部分不關(guān)注的錯(cuò)誤類型,以獲取重點(diǎn)更加突出的錯(cuò)誤分析結(jié)果,輔助測試人員更加高效地完成測試活動(dòng)。
接口自動(dòng)化測試的誤報(bào)率控制,是提升自動(dòng)化測試效能的關(guān)鍵點(diǎn),筆者也將繼續(xù)探索相關(guān)方法,致力于自動(dòng)化測試效能的不斷提升。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.