0、大型項目的接口自動化實踐記錄--序言


編寫目的

1、為什么要寫這這塊內容

  ①記錄實踐過程,組內討論學習

  ②另外希望有朋友一起來討論,怎么可以針對不同的項目達到最佳實踐

 

  談到接口自動化測試,印象里網上的教程,一般都是工具介紹、入門級介紹(有API文檔,入參個位數,出參完善易懂),給人的感覺都是泡杯茶,它就自己唰唰唰的測試完了,還有完善的測試報告,節省了好多人力。

 

  以前也有做過簡單的項目,emmmmm,確實容易。這次負責的是大型的ERP項目,人手少,業務復雜,一開始真的無從入手。

  先說明下項目業務,業務中業務鏈很長(長的一條鏈路中走的接口上百),業務鏈分支多。

  下圖為其中一個業務鏈的部分內容:

   手工測試中有兩個主要痛點:
    1、前置數據構造繁瑣:如上圖,假如需要測試收款單,則需要准備前置數據訂單->計划->賬單,花費14分鍾(這里的時間指的是無腦構造,實際中一般都會大於)准備,然后才開始正式測試。
    2、業務表單復雜,分支多:如訂單,字段數超過150+,其中的一些字段是嵌套的json(服務明細);然后訂單的類別超過120+,還有各種不同的計費方式等,即case數極多,修改其中一個場景,需要回歸的case量很大。
  因此自動化的方案上考慮分成兩塊,1、2兩塊互相補充:
    1、自動化測試:這塊主要在自動化測試環境執行,做回歸測試,執行前獲取mysqlbinlog的節點,執行后還原至該節點;
    2、自動構造數據:這塊主要用於手工測試環境准備各個節點數據,減少前置數據構造時間,每個節點都會不停構造可用數據,設置闕值為10,小於10時自動新增該節點數據。
 
    其中的難點在於 數據
     接口用數據:每個接口case量很多,每個case的data構造耗時都很多,工作量極大極大。這里考慮與手工測試相結合,各個接口封裝對應的從DB獲取數據,生成api用data(可跨環境獲取)的方法:其中數據分成sourcedata(來源數據,一般來源於手工測試后存儲在DB的數據)+prefixdata(前置數據,比如訂單提交審批,會用到草稿的訂單的ID等)-->處理后的數據processeddata-->映射成apidata。每次同一場景新增case,只需要添加用例名+數據主鍵。
 
     前置數據
    ①常見方案一:在用例prepare部分,調用前置的接口來新增數據,這種方案在業務鏈較短的業務中適用,長業務鏈的話會導致用例執行速度很慢,且穩定性較低。
    ②常見方案二:先人工准備好各個用例的前置數據(也可以用前置接口的腳本來生成),每次執行完自動化腳本后,回滾數據庫,則可以反復使用。如果只是做自動化測試,那么這種方案就可以了。
    ③方案三:因為考慮要減少手工測試構造數據時間,因此在手工測試環境,不能還原數據庫,數據每次被使用就消耗了。這里考慮每個節點的腳本執行完,把場景+數據主鍵+其他信息存入數據池,狀態為可用。手工測試通過數據平台查詢數據,被查詢的數據狀態置為不可用。每個節點的可用數據小於設定的闕值時,腳本自動執行新增該節點數據。
    項目里方案二、三結合使用。
    
 

下一篇        1、大型項目的接口自動化實踐記錄--robotframework環境搭建


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM