基於知識庫的介面自動化測試——結果模型化方法與裝置的分析
一、背景
隨著自動化測試的設計理念不斷完善、新的技術不斷應用,自動化測試資產的積累代價和維護成本不斷降低,自動化測試資產的數量持續增長。同時,隨著DevOps的普及,應用研發過程越來越敏捷,自動化測試能力逐步從測試部門輸出至開發部門,在每日構建、製品晉級、版本釋出等流程中成為必備環節。
隨著自動化測試執行能力的不斷提升,自動化測試執行結果資料指數級增加,大量的結果分析處理工作成為自動化測試開展的瓶頸。本文介紹一種基於知識庫的介面自動化測試結果分析方法與裝置,透過介面測試結果模型化方法和基於錯誤碼庫、非缺陷知識庫的錯誤歸類分析方法,輔助測試人員高效實施大規模、多系統的介面自動化測試結果分析處理。
二、介面測試結果模型化
介面自動化測試,簡單地說,就是按測試需求裝報文,傳送給被測系統,接收並解析返回報文,判斷測試成功失敗。
在自動化測試平臺中,對介面測試過程模型化統一封裝:
(1)通訊過程是報文傳送和接收,其相關內容抽象為通訊元件;
(2)報文是被測系統與其客戶端或呼叫方針對具體介面約定的互動資訊。其中,報文組裝和解析相關內容抽象為報文元件,具體介面.互動資訊抽象為報文格式,對傳送給被測系統的報文稱為輸入報文,被測系統返回的報文稱為輸出報文。
三、對測試結果的第一級分析:根據返回標誌位進行初步判斷
一般而言,符合一定開發規範的應用系統,會在返回報文公有域特定欄位返回應用級處理結果。若應用級處理錯誤,則還會在返回報文公有域特定欄位返回錯誤碼和錯誤資訊。
因此,在介面自動化測試執行過程中,執行程式將介面測試結果預處理為統一資料模型,包括結果標誌、錯誤碼、錯誤資訊和返回報文,便於後續處理。
其中,結果標誌分為5類:
(1)應用級處理正確,則結果標誌為N,此時錯誤碼、錯誤資訊均為空;
(2)應用級處理錯誤,則結果標誌為E,錯誤碼、錯誤資訊儲存返回報文提取的相應資訊;
(3)在金融系統中,為保證安全,重要金融交易一般會涉及雙人複核或者遠端授權的過程,此時應用級處理結果為“需要授權”,則結果標誌為A,錯誤碼、錯誤資訊均為空;
(4)在平臺執行介面測試的過程中,若出現任何程式未處理的內部異常,則結果標誌為I,此時錯誤碼、錯誤資訊均為空;
(5)在常見的HTTP/HTTPS、TCP等通訊方法中,若無法正常通訊並拿到預期的返回報文,則認為在通訊級發生異常,結果標誌為U,此時錯誤碼、錯誤資訊均為空。
透過第一級分析,可以對介面測試結果進行初步分類,輔助測試人員判斷介面測試報錯型別,排除網路等環境因素造成的誤報。
四、對測試結果的第二級分析:根據錯誤碼庫和非缺陷知識庫進行精準判斷
僅透過返回報文分析,對於“大幅降低介面測試誤報率”的預期是不夠的,需要配合錯誤碼庫和非缺陷知識庫進行第二級精準分析。其實現方式是:自動化測試平臺按系統名稱為各系統提供錯誤碼庫,對結果標誌為E的介面測試結果細分錯誤碼,分別設定錯誤描述、匹配.方式和匹配表示式。匹配.方式分為三種:
(1)精確匹配:該匹配.方式適用於統籌設計良好的系統,專案組能夠較好的歸類業務錯誤、分配錯誤碼,並在系統介面設計中在公有域有固定欄位返回錯誤碼和錯誤資訊,此類系統直接採用錯誤碼庫中的錯誤碼與介面測試結果模型中的錯誤碼匹配;
(2)錯誤資訊模糊匹配:該匹配.方式適用於能夠從固定欄位輸出錯誤資訊,但沒有固定欄位返回錯誤碼或者錯誤碼定義不規範(如錯誤碼是中文資訊)的系統,此類系統錯誤碼和錯誤資訊由測試人員自行定義,每類錯誤碼需對應設計匹配表示式,即一條正規表示式,若介面測試結果模型中的錯誤資訊能匹配該正規表示式則歸為該類錯誤;
(3)返回報文模糊匹配:該匹配.方式適用於介面設計不規範、無固定欄位返回錯誤資訊的系統,此類系統錯誤碼和錯誤資訊由測試人員自行定義,每類錯誤碼需對應設計匹配表示式,即一條正規表示式,若介面測試結果模型中的返回資訊能匹配該正規表示式則歸為該類錯誤。
在實際介面測試中,由於被測系統配置錯誤、被測系統鋪底資料異常等問題而出現的錯誤並非本次測試結果中需重點關注的內容,對於該類錯誤,將錯誤碼庫中的對應錯誤條目增加標誌位,即納入非缺陷知識庫。
經過實踐,在實施第二級精準分析後,往往能大幅降低介面自動化測試的誤報率,減少一線測試團隊的分析工作量。
五、介面測試結果歸類分析
基於介面測試結果的模型化和兩級分析,我們將介面測試的結果分類分析,輸出概要表和錯誤分類表。
概要表如下:
執行錯誤的交易將進一步處理為錯誤明細表,如下:
利用該分析結果,測試人員可重點關注結果型別為“執行錯誤”的分類,確認為缺陷的應提交給開發人員修復;對於“執行錯誤非缺陷”的分類,應在解決對應問題後再次測試相關介面。
六、結語
本文介紹的介面自動化測試結果分析方法,將不同系統、不同通訊方式、不同報文協議的介面測試結果標準化為的統一資料模型,並依據組織級錯誤碼庫和非缺陷知識庫對標準化的測試結果進行分類分析,大大降低測試結果的人工分析工作量。其中,錯誤碼庫及配套的三種錯誤匹配.方式,使得測試人員可以靈活自主地為被測系統定製錯誤歸類識別方案,在不同應用系統介面設計標準化程度不一的場景下,解決了介面測試結果的錯誤識別問題;非缺陷知識庫的設計,使得測試人員可以預設部分不關注的錯誤型別,以獲取重點更加突出的錯誤分析結果,輔助測試人員更加高效地完成測試活動。
介面自動化測試的誤報率控制,是提升自動化測試效能的關鍵點,筆者也將繼續探索相關方法,致力於自動化測試效能的不斷提升。
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70034708/viewspace-3000531/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 自動化裝置測試與自動化測試的區別
- 關於介面測試自動化的總結與思考
- 基於 Htte 的 API 自動化測試API
- 關於介面測試——自動化框架的設計與實現框架
- 介面自動化測試
- python+pytest介面自動化之測試函式、測試類/測試方法的封裝Python函式封裝
- python+pytest介面自動化(11)-測試函式、測試類/測試方法的封裝Python函式封裝
- 移動裝置的自動化測試工具,如何選型?
- 基於 HttpRunner 的介面自動化測試平臺宣講 (已落地)HTTP
- 基於知識圖譜的呼叫鏈分析精準化測試平臺
- 介面自動化測試框架搭建總結框架
- Python自動化測試~PO模型封裝Python模型封裝
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 基於 Pytest+Requests+Allure 實現介面自動化測試
- 基於 LangChain 的自動化測試用例的生成與執行LangChain
- 基於Python的介面自動化-unittest測試框架和ddt資料驅動Python框架
- 從0到1學習介面自動化測試必備知識!
- JB測試之旅-淺談自動化知識
- 基於postman的api自動化測試實踐PostmanAPI
- Python 介面自動化測試Python
- 介面自動化測試框架搭建的思路框架
- python+pytest介面自動化(1)-介面測試基礎Python
- 一個基於多介面的業務自動化測試框架框架
- 基於Pytest豆瓣自動化測試【1】
- 基於Python豆瓣自動化測試【2】Python
- UI自動化基礎知識UI
- 基於Selenium+Python的web自動化測試框架PythonWeb框架
- 一種基於 cypress 的 UI 自動化測試框架UI框架
- 基於AI的移動端自動化測試框架的設計與實踐AI框架
- 『居善地』介面測試 — 7、介面自動化測試框架的設計與實現框架
- protobuf 介面自動化測試摸索
- 介面自動化測試框架 HttpFPT框架HTTP
- 二、介面自動化測試(2)
- 介面自動化測試 - RobotFramework RESTinstanceFrameworkREST
- python 裝飾器在介面自動化測試中的應用Python
- python裝飾器在介面自動化測試中的應用Python
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- 基於 HttpRunner + Django + Vue + Element UI 的介面自動化測試平臺,生產可用HTTPDjangoVueUI