1. 程式人生 > 其它 >太全面了!RF介面自動化框架專案實戰

太全面了!RF介面自動化框架專案實戰

每天進步一點點,關注我們哦,每天分享測試技術文章

本文章出自【碼同學軟體測試】

碼同學公眾號:自動化軟體測試,領取資料可加:magetest

碼同學抖音號:小碼哥聊軟體測試

以碼同學VIP課程中的微服務專案進行介面自動化實戰



01搭建專案結構

建立一個專案,名字自己起,課上叫微服務專案介面測試框架,初始專案結構如下,不要著急對著圖去建立,看下方解釋再建立

配置:這是一個目錄,用來存放公共資訊的

  • 公共配置:這是一個Resource,建立是右鍵配置New Resource

介面層:這是一個目錄,用來管理和定義介面基本資訊 

按照專案業務進行分類管理

  • 買家api:這是一個Resource,建立是右鍵介面層New Resource

  • 賣家api:這是一個Resource,建立是右鍵介面層New Resource

  • 管理員api:這是一個Resource,建立是右鍵介面層New Resource

  • 基礎服務api:這是一個Resource,建立是右鍵介面層New Resource

  • 介面預設引數:這是一個目錄,當介面引數比較多時,用來儲存預設引數的,存到檔案裡, 方便管理

  • 業務關鍵字:這是一個Resource,用來封裝一些自定義的業務關鍵字,建立是右鍵介面層 New Resource

測試用例層:這是一個目錄,用來管理所有測試用例 

測試資料層:這是一個目錄,管理測試資料的,測試資料存在檔案 



02公共配置

根據專案情況,新增公共配置變數,各個服務的域名,資料庫資訊,redis資訊,買家/賣家/管理員賬號,並且匯入需要的第三方庫RequestsLibrary



03介面層各介面定義

首先在各個api分類中匯入,注意是每個哦 

01買家api編寫 

每個介面定義都是一個使用者關鍵字,右鍵選擇New User Keyword 

1、買家登入介面 

2、新增購物車介面

3、清空購物車介面 

4、立即購買介面 

5、設定收貨地址介面 

6、設定支付型別介面

7、建立交易介面 

8、確認收貨介面 

9、評論介面 

評論介面的引數是json串,引數較多,不方便一個個傳遞,所以將其作為整體傳遞 

設計思路: 

  • 在[介面預設引數]目錄中建立一個 評論.json檔案,內容寫所有引數的預設值,其中寫xxxx代表這個是動態資料,必須每次都由呼叫方傳遞

  • 關鍵字入參的含義:

    ${order_sn}、${sku_id}都是必傳引數,${other}給了一個預設值,表示可以不傳,如果使用者需要針對json引數裡除了order_sn和sku_id的引數進行測試時就要以${other}代表,${other}的傳遞規則是字串形式的json格式字串,key必須是jsonpath表 達式,value是要替換的新值

    例如:

  • 針對替換json串中的特定欄位封裝一個自定義關鍵字,在業務關鍵字.robot下建立一個使用者自定義關鍵字如下,業務關鍵字需要匯入JSONLibrary 

  • 指令碼解釋: 

    第一行:讀取 [介面預設引數] 目錄下的評論.json檔案,得到預設json引數 

    第二/三行:把使用者傳入的order_sn和sku_id更新到${comment_info}中去 

    第四行:判斷${other}不等於default,說明使用者傳了其他資料,那麼${other}轉換成json

    第五行:判斷${other不等於default},呼叫[替換json資料]關鍵字替換並且返回資料

02賣家api編寫

每個介面定義都是一個使用者關鍵字,右鍵選擇New User Keyword 

1、賣家登入介面

2、建立商品介面 

建立商品的引數是json串,引數較多,不方便一個個傳遞,所以將其作為整體傳遞 

免費領取碼同學軟體測試課程筆記+超多學習資料+完整視訊+面試題,可加微信:magetest

設計思路: 由於建立商品的介面引數裡從業務上來說,沒有不可重複的引數或者動態引數,所以我們將其整體作為引數傳遞 

  • 在[介面預設引數]目錄中建立一個 建立商品.json檔案,內容寫所有引數的預設值 

  • 關鍵字入參的含義:

    ${new_params}給了一個預設值,表示可以不傳,不傳時介面使用預設引數發起請求,如果使用者需要針對預設json引數裡的某些欄位進行修改,${new_params}的傳遞規則是字串形式的json格式字串,key必須是jsonpath表示式,value是要替換的新值

    例如

  • 指令碼解釋

    第一行:讀取預設引數

    第二行:判斷有${new_params}不等於default,說明使用者傳了其他資料

    第三行:判斷有${new_params}不等於default,呼叫[替換json資料]關鍵字替換並返回

3、確認發貨介面

4、確認收款介面 

5、獲取商品sku資訊介面

03管理員api編寫

管理員登入介面 

稽核商品介面

04各個登入關鍵字封裝 

由於各個服務在測試時都必須先完成登入獲取token,所以我們將各個服務的登入做成關鍵字 在業務關鍵字.robot下進行依次建立和封裝 

匯入需要的 

建立買家session和提取token 關鍵字 

建立賣家session和提起token 關鍵字

建立管理員session和提取token 關鍵字 



04測試用例指令碼設計和編寫

01新增購物車介面測試

1、資料設計 

採用資料驅動的方式來做,首先設計新增購物車測試用例資料檔案,在測試資料層目錄下建立一個買家介面測試資料.xlsx檔案,sheet工作表名稱新增購物車

資料如下:

2、資料驅動用例編寫 

  • 建立買家介面目錄 

在測試用例層,建立買家介面目錄 

  • 建立新增購物車測試集合

在買家介面目錄下建立新增購物車測試集合,按照下圖填寫以及匯入相關庫

  • 建立新增購物車介面模板 

在新增購物車測試集合下建立一個使用者關鍵字

  • 建立測試用例 

在新增購物車測試集合下建立一個測試用例

  • 嘗試執行 

02立即購買介面測試

1、資料設計 

採用資料驅動的方式來做,首先設計立即購買測試用例資料檔案,在測試資料層目錄下的買家介面測試資料.xlsx檔案,sheet工作表名稱立即購買

資料如下:

2、資料驅動用例編寫

  • 建立立即購買測試集合 

在買家介面目錄下建立立即購買測試集合,按照下圖填寫以及匯入相關庫 

  • 建立立即購買介面模板 

在立即購買測試集合下建立一個使用者關鍵字

  • 建立測試用例 

在立即購買測試集合下建立一個測試用例

  • 嘗試執行 

03建立交易測試

1、資料設計 

採用資料驅動的方式來做,首先設計建立交易測試用例資料檔案,在測試資料層目錄下的買家介面測試資料.xlsx檔案,sheet工作表名稱建立交易

資料如下:

2、資料驅動用例編寫 

  • 建立測試集合 

在買家介面目錄下建立建立交易測試集合,按照下圖填寫以及匯入相關庫

  • 建立交易介面模板 

在建立交易測試集合下建立一個使用者關鍵字

  • 建立測試用例 

在建立交易測試集合下建立一個測試用例

  • 嘗試執行

免費領取碼同學軟體測試課程筆記+超多學習資料+學習完整視訊 ☞ 可加:magetest/關注碼同學公眾號:自動化軟體測試

本文著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。