Qunar自動化測試框架ARES

2021-12-23 Qunar技術沙龍

ares-client

ares-client可以理解為ares在被測模塊中的埋點,完成dump和replay過程在被測模塊裡需要執行的流程。ares-client由ares-client-base、ares-client-common、ares-client-target三部分組成:

ares-client的實現與業務無關,針對模塊間常用的交互方式以插件的形式進行擴展,例如HTTP交互、RPC框架、異步消息隊列等,在大多數場景下開箱即用,只需根據說明完成相關配置,埋點即可工作,數據dump和replay的過程對業務完全透明。

ares-client-base提供的基礎API可用來自定義埋點以豐富ARES的適用範圍,例如實際應用中可能需要dump模塊與緩存的交互數據(作為離線replay時的mock數據,replay過程就不依賴緩存了),那麼就用ares-client-base的API吧。

ares-server

ares-server是ARES服務端的核心模塊,也是唯一與使用者直接交互的模塊,定義了整個replay過程的用戶操作、完成replay過程的控制及結果展示。主要包括以下功能:

1.建立測試任務

2.管理測試case

3.完成測試環境部署與管理

4.測試結果的可視化展示

mock-server

mock-server是ARES的數據模塊,維護的數據主要包括:

1.線上請求的入口請求參數&返回值(生成case)、運行時配置信息(復原線上環境)、下遊接口調用參數&返回值&調用時間軸(作為mock數據)

2.回放測試產生的case返回值、下遊接口調用參數&調用時間軸

3.其他用來關聯數據、輔助測試的信息

將數據模塊作為ARES的獨立部分可以方便對數據的深度使用,除了目前提供回放、mock、diff使用外,還可進一步擴展出case篩選、修改、統計等功能;另一方面將數據的交互方式與ARES其他模塊解耦,例如將數據收集方式從目前的HTTP交互修改為基於flume的日誌收集,將不影響數據的使用。

diff-server

diff-server是ARES的測試結果分析模塊,完成線上dump數據與回放結果數據的比對與分析工作,主要的diff範圍包括:

1.被測模塊的返回值

2.被測模塊的下遊接口調用參數

3.被測模塊的下遊接口調用順序

如果一個模塊對上遊模塊提供的數據(返回值)、與下遊模塊的交互(調用順序與調用參數)未發生變化,或者說未發生我們預計範圍之外的變化,那被測項目的改動即測試通過。

相關焦點

  • 搭建關鍵字驅動自動化測試框架
    本文是根據吳曉華編著的《Selenium WebDriver 實戰寶典》的16.3節:關鍵字框架搭建及實戰;根據本文內容能夠快速的搭建關鍵字驅動自動化框架,實現功能:成功登錄qq郵箱,點擊「寫信」,給好友發送郵件。
  • 自動化測試中的那些誤解和偏見
    OK, 既然把自動化測試抬得如此高,我們來看看自動化測試是何方神聖。自動化測試的優點:1、對程序的回歸測試更方便。這可能是自動化測試最主要的任務,特別是在程序修改比較頻繁時,效果是非常明顯的。由    如果寫個小工具,能輔助提高測試效率,算不算自動化測試?    如果寫個代碼,能造一些測試數據,算不算上自動化測試中的一部分?其實自動化測試,就是一種測試手段,只是用代碼來代替人工。    如果你會自動化測試技巧,不去了解業務,就不知如何將手工測試case轉化成自動化測試case.
  • 一文搞定前端自動化測試(React 實戰)
    這篇文章是前端自動化測試系列的 React 實戰部分,自動化測試系列會從理論走向實踐,真正帶領大家學會使用前端自動化測試框架,並能在業務中落地。看完整個系列,還不會使用自動化測試工具為生產提效,請來找我!老規矩,點讚過兩百,持續更新 Vue 與自動化測試的結合教程。
  • PTAA:一款功能強大的紫隊自動化滲透測試工具
    為了評估安全檢測與事件響應能力,我們正在嘗試尋找一種自動化模擬對手攻擊策略的方式。
  • 8 個開源自動化框架,輕鬆搞定機器學習!
    自動化機器學習(AutoML)可以幫助機器學習管道中的某些關鍵組件實現自動化。其中機器學習管道包括數據理解、數據工程、特徵工程、模型訓練、超參數調整、模型監控等。在這篇文章中,我將分享 8 個開源的 autoML 框架:1、Auto-SklearnAuto-sklearn 是基於 scikit-learn 軟體包構建的開源 AutoML 庫。它為給定的數據集找到最佳性能的模型以及最佳的超參數集。
  • 基於Selenium的Grafana自動化截圖工具
    基於Selenium的Grafana自動化截圖工具Selenium是一個用於Web應用程式測試的工具,它可以直接運行在瀏覽器中,通過一系列命令來模擬用戶操作。近幾年,Selenium被越來越多的公司採用作為Web自動化測試的輕量級框架,它可以支持對多瀏覽器進行測試,如IE、Firefox、Safari、Chrome、Android手機瀏覽器等。當使用Selenium實現自動化測試時,主要需要以下三個部分:驅動是根據不同的瀏覽器開發的,不同的瀏覽器使用不同的Webdriver驅動程序並且需要對應相應的瀏覽器版本。
  • 機車TCMS網絡控制系統自動化仿真測試平臺
    由於 機車網絡控制系統的複雜性,對其進行準確調試的難度很大,因此在進行完調試的基礎之上,對機車網絡進行測試是非常重要的。為克服傳統網絡控制系統測試過程 中的諸多困難,採用TCMS網絡控制系統自動化測試平臺。
  • 自動化機器學習入門指南,來了
    ——auto-sklearn介紹與入門這裡會簡單地講一下auto-sklearn的框架,讓大家對這個學習框架有一定的了解,接下來就會拿官方的慄子來說明一下怎麼使用,然後羅列一下這個auto-sklearn可以做什麼內容,讓大家對這個框架的功能有一定的了解。
  • 測試了5款最常見的模擬器,發現與Airtest自動化最配的竟然是...
    模擬器是我們的測試小夥伴非常喜歡的一款工具。
  • 史上最全的 iOS 各種測試工具集錦
    UIAutomation 是蘋果提供的 UI 自動化測試框架,使用 JavaScript 編寫。基於 UIAutomation 有擴展型的工具框架和驅動型的框架。驅動型 UI Automation 在自動化測試底層使用了 UI Automation 庫,通過 TCP 通信的方式驅動 UI Automation 來完成自動化測試,通過這種方式,編輯腳本的語言不再局限於 JavaScript。這個工具在 iOS UI 自動化測試中使用非常廣泛。
  • 按鍵精靈對APP自動化測試實戰
    承接這個任務的同事都感到「煩」,我一向認為簡單的工作就應該由電腦自己完成,今天這件事,用專業的自動化測試工具,完全能自動進行。但出差在外,不方便安裝大型的工具,其他人也不會掌握這個工具。於是,決定用按鍵記錄工具這種「半自動化」的工具軟體。
  • 軟體測試工程師生存指南
    再往上面走,就是我們的自動化/性能測試工程師。3-5年左右的工作經驗可以達到15-25K這樣子的一個範圍。如果有5-8年軟體測試相關技術經驗,那就是25K往上走了,如果能達到測試總監,就是30K以上。其實在我們軟體測試行業中間,更關注的是你的技能(技術)你的技術越高,你對應的一個薪資報酬也會越多。
  • Appium界面自動化測試(4)(Android/Java):詳解應用程式操作
    上一節中,筆者首先安裝了被測應用程式到被測設備中,然後進行自動化測試,但實際項目中往往需要自動化測試腳本自己安裝被測應用程式。
  • KITT-Lite:基於Python實現的輕量級命令行滲透測試工具集
    KITT滲透測試框架-輕量級版本KITT滲透測試框架是一種基於Python實現的輕量級命令行滲透測試工具集,本質上上來說,它就是一個針對滲透測試人員設計的開源解決方案
  • 夜神安卓模擬器:開發、測試三步搞定
    操作助手可以錄製使用者在測試應用時的任何操作。以微信應用為例,使用者輸入帳號、密碼,點擊登錄按鈕,等待微信登錄成功,然後選擇一好友進行聊天,查看朋友圈,註銷登錄等人為的操作,都能夠被夜神安卓模擬器提供的【操作助手】記錄,記錄的操作保存為夜神特定的腳本形式,可用以回放這些操作。【操作助手】功能極大的方便了開發者調試應用,測試人員進行回歸測試自動化,錄製一次,任意回放,提高工作效率。
  • 測試Windows Subsystem for Linux
    這主要包括訪問命令行實用程序,執行原生的ELF64二進位文件,以及支持開發人員常用的框架(如MEAN和LAMP Web伺服器堆棧)。此外,為了讓系統儘可能原生,WSL自動公開Windows文件系統和網絡堆棧。 所有這一切都是通過內核級仿真層實現的,該層將系統調用從Linux轉換為相應的NT副本。而WSL沒有直接的NT副本來填補這些差距。
  • WinPwn-windows自動化域滲透測試工具
    WinPwn簡介在過去的許多內部滲透測試中,由於缺少代理支持,我經常對現有的Powershell Recon / Exploitation腳本遇到問題
  • 自動化鎖螺絲架構
    4.傳感信號的採集類  5.圖像採集類現在布置一個任務:        有1萬塊電路板,每個電路板上有10個螺絲孔(已知螺絲孔的位置),用三軸步進電機和一個力矩電動螺絲道做一臺簡易的鎖螺絲機,實現自動化完成這個任務
  • 分利寶IOS自動化打包
    到了測試階段,需要頻繁的打包提交到測試平臺,整個流程包括:編譯-打包-上傳,整個過程需要我們去堅守每一步操作,提交app store同樣免不了一系列複雜動手操作過程。對此,我們研究了iOS自動化打包,通過使用shell腳本,輸入命令,一鍵打包上傳,提高工作效率。