1. 前言
繼前面一章《RobotFramework環境搭建》介紹了在本地如何將接口自動化實施過程所需要的基礎環境搭建好,在這里假設大家都已經知道環境如何搭建了,如果不清楚的可直接查看上一章節 RobotFrameWork環境搭建(基於HTTP協議的接口自動化),那么環境一切ready了,是不是代表就可以開干了呢?
不急,對於一個team在開展這類大工程的時候,要考慮到團隊多人協作,如何讓自己的東西,別人能更快看懂上手,如何讓大家風格保持統一,這里就還需要在真正開始之前,制定一些針對團隊達到統一共識的約定或者規范。就好比我相信任何一個較成熟的研發團隊,都會有自己內部的一套編碼規范如:Java編碼規范、Python編碼規范、JavaScript編碼規范等。
那么接口在開始之前,你覺得需要有哪些規范呢?下面我就介紹一下以前我在公司開展接口項目時,制定的一些針對接口項目的約定規范。(當然不同公司可以根據公司文化、項目差異自行制定,不一定我們的就是最好的,找到一套適合自己的才是關鍵)
2. 規則細分
那對於開展接口自動化來講,有哪些地方規范需要注意呢,這里我分幾部分進行介紹:
目錄結構規則 -> 接口命名規則->用例命名規則->用例分類規則->用例編寫規則->公共方法命名規則
3. 規則說明
3.1、用例目錄結構規則
好的目錄結構可以讓項目呈現一目了然,假如公司統一采取git倉庫來管理各項目的接口,這里假定git倉庫地為:git@xx.xx.xx.xx:xx/robotframework-interface-cn.git,那各個業務項目組可以通過不同分支的形式來管理各業務接口,如公司某產品通過業務線分為移動端業務線和web網站業務線,那么可為兩個業務線開各自獨立分支如develop-mobile、develop-web,至於詳細的代碼管理形式,后面再另開一章節來介紹,再此就不再過多的說明了。
另一方面通過好的目錄結構可以很好的區分開各接口歸類,建議最多3層目錄層級,比如一個直播混合app,那么第1層目錄可以按模塊調用方划分,比如Mobile_Show(直播看模塊)、Mobile_Sing(直播聽模塊)、H5_Mobile(H5頁面調用的接口)、Mobile_Socket(前端調用socket協議的接口)。
第2,3層目錄主要按產品應用模塊來划分或者根據接口url的路徑來划分,比如: mobileshow/json/v2/cdn/mv/supportStatus接口可划分到Mobile_Show目錄的子目錄MV下。
3.2、接口命名規則
自動化腳本中接口命名通常可以按照接口部分url+接口方法類型組成,部分url是指非參數部分的最后兩級路徑。Http接口方法類型主要分為:get、post等,例如:
/json/v2/cdn/user/getUserInfo 接口命名為: user_getUserInfo_get
/json/v2/user/getUserInfo 接口命名為:user_getUserInfo_post
3.3、用例命名規則
用例命名主要為了區分用例驗證點和用例作用,這里建議可以按照以下4種:
Class_序號:表示常規經典值用例,可以理解為最常用的數據,按照等價類的原則,此處每組用例所需要達到的作用應該是一致的,序號當存在多條用例的時候使用,用兩位數值,如:Class_01,Class_02;
Field_序號_結果:表示字段校驗用例,序號由2位數字組成,2位數字表示字段驗證序號,結果通常可以分為三類,當有錯誤碼時為錯誤碼,當無錯誤碼返回為空時為Null,當有數據返回時為data,例如:
返回錯誤碼:Field_01_1100018;
返回空:Field_02_null;
返回數據:Field_05_data;
Business_序號:表示業務用例,主要用例驗證業務邏輯,序號由2位數字組成,表示驗證序號,如:Business_01,Business_02,Business_03;
Safe_序號:表示此用例驗證安全方面,序號由2位數字組成,表示字段驗證序號,如:Safe _01,Safe _02,Safe _03;
3.4、用例分類規則
用例會隨着不斷的接口迭代越來越多,而且有時在跑接口巡檢時,也會隨着測試范圍的不同,而希望選取不同的測試集下的用例來運行。
所以最好的方式是在在設計之初的階段就要考慮好用例的分類,而在RobotFramework中通過標簽Tag的形式,很方便就可以將用例划分成不同歸類。
那么最常用的用例分類原則,有3類:
第1類,按照環境划分:按筆者經驗,可以分成四類不同運行環境的用例,如:online-線上環境、test-測試環境、general-預發布環境、develop-開發環境;
第2類,按用例編寫者來划分:如這條用例是張三編寫的還是李四編寫的,所以需要增加用例所屬者的標簽,如zhangsan;
第3類,按照特性標簽來划分:特性標簽可由使用用途來自行定義,根據特殊場景來定義,比如每日巡檢如果跑主流程的核心接口,則可以增加main標簽代表此條用例是核心接口用例。
3.5、用例編寫規范
a. 公共方法類和公共用例的腳本,需要每句注解其作用;
b. 接口定義方面需要有屬於如個版本需求、用途。如用接口有修改需要增加修改原因和版本及其用途記錄;
c. 測試用例對業務用例需要注解其驗證點,其它類型可自行要求。
d. 接口請求公共字段放在公共方法中
3.6、公共方法
接口項目用到的公共方法需要單獨抽離到公共庫層,不能和用例層混在一起,可以根據應用產品及方法作用來命名,當各產品項目都適用可不帶產品名稱直接用方法來命名,如:
mobile_show_post: 表示直播看模塊的post請求公共方法
md5_encode: 表示md5加解密方法
4. 教程目錄大綱(已更新)
RobotFrameWork環境搭建(基於HTTP協議的接口自動化)
5. 下節預告
《RobotFramework接口項目分層和通用控制方式》
更加詳細可見: 原文鏈接