基於Jmeter的接口自動化測試實踐

  在去年實施了一年的三端(PC、無線M站、無線APP【Android、IOS】)後,今年7月份開始,咱們開始進行接口自動化的實施,目前已完成了整個框架的搭建以及接口的持續測試集成。今天作個簡單的分享。shell

  在開始自動化投入前,須要先問幾個問題編程

  1. 爲何要投入人力作自動化?
  2. 以及有UI自動化的狀況下,爲何還要作接口自動化?
  3. 測試人員須要有代碼能力嗎?若是須要,須要什麼程度的代碼能力?

  以上都是開放式問題,有機會再相互探討。設計模式

  在打算實施接口自動化後,須要解決以下幾個問題mvc

  1. 接口自動化要測試哪些接口,咱們要怎麼測試這些接口,每一個接口須要分別覆蓋什麼?
  2. 工欲善其事必先利其器,接口自動化測試如何選型工具?不少工具都具備接口測試功能,如何挑選工具
  3. 如何作到持續集成?

  接口測試從測試關注點上看能夠分爲單接口測試以及聯合接口測試框架

  單接口測試關注內容爲:編程語言

  1. 響應狀態
  2. 響應時間 
  3. 請求數據格式:協議、編碼、字段
  4. 響應數據格式:編碼、字段

  聯合接口測試關注多個接口組合特定業務場景測試;ide

  在進行持續集成的接口自動化測試中,咱們重點關注的是多個接口聯合測試,即業務場景實現過程當中各個依賴接口的自動化測試,而在手工測試中,去重點關注單個接口的各個測試內容;工具

  測試工具的比較開發工具

  在工具選擇上咱們也比較了目前市面上比較經常使用的測試工具以及自研方案測試

  從調研狀況看,選擇仍是很是多,市面上有很是成熟的工具供選擇,也能夠自研工具平臺。在難以取捨狀況下,咱們列出如上的幾個維度對工具進行橫向比較,在綜合考慮咱們團隊的狀況,選擇了jmeter進行接口自動化開發工具

  整個接口自動化就圍繞以下內容,其中Java是團隊的第一編程語言,使用Jenkins進行任務管理以及調度,達到課持續集成,使用ant做爲構建橋樑,鏈接jenkins和jmeter

  

 

  工具選擇好後,就開始設計系統的業務流程以及設計標準了,雖然是測試,可是也要以開發標準對待寫代碼,開玩笑的說以專業精神對待業餘愛好

  首先對於一個可持續集成測試系統,首先要易於使用,能很方便的執行、查看測試結果以及定位測試問題;還要團隊成員,哪怕別的團隊成員也能夠很方便的使用本系統,不須要具有不少的專業背景或者深刻的瞭解系統細節才能使用;

  整個系統的flow以下,jenkins做爲最上層的入口,負責結果展現、發生郵件、啓動執行系統,ant根據執行的target,調動jmeter執行自動化任務,每一個自動化任務須要執行的數據集從另外一套系統,咱們內部叫奧卡姆剃刀系統讀取測試數據,執行結果一種是標準的junit執行報告結果,用於生成簡易的測試報告,另外一份是自定義的測試結果集,用於分析測試數據以及往第三方關聯繫統分發測試結果

  

    

   數據流程定義好後,就是實際的編碼設計階段了,因爲作接口自動化中,特別是設計複雜業務數據時,須要自定義開發一些擴展包,beanshell是咱們經常使用的,可是這個有一個問題就是beanshell不支持即時的語法檢查,只有在運行期間出錯了才能知道語法有問題,也沒法對腳本進行調試查看運行期間的各類數據狀態,針對這個問題,咱們採用以下設計方式進行解決,

  採用PO模型方式組織代碼,基於mvc設計模式開發代碼,將jmeter做爲view層,只負責業務流程,全部的實如今擴展包裏實現,擴展包使用intellij idea開發調試,測試經過後打包給jmeter使用,調試和測試也在idea下完成,使用junit做爲測試單元,使用測試樁完成全部接口以及業務邏輯的調試

  

 

展現了部分結果以下

後面有空再寫寫實現的一些細節以及遇到的坑吧,感慨下今年過的好快,好幾天就結束了,年前定下的小目標還記得嘛  哈哈

後續打算出個jmeter培訓教程,不知道這方面是否有需求

相關文章
相關標籤/搜索