4、大型項目的接口自動化實踐記錄----數據分離


一、為什么做數據分離

前面實現了接口的請求到校驗

那么如果要對多個商品價格查詢,或者要做對不存在的商品查詢之類的反例呢

於是我們再次新建一條case,再次編寫了下腳本


 

那如果用例有10條,100條,那這些代碼就要寫10遍100遍,那么萬一它的地址改了,我們就要改10遍100遍。

我們觀察這條用例,發現與前面那條用例,只有skuids與預期結果不一樣,那么我們是否可以把那些一樣的部分提取出來,做成一個類似模板的東西,每次使用的時候套用呢?

二、數據分離實現

1、新建關鍵字(模板)

右鍵目錄,點擊New Resource


 

輸入Name,勾選Txt或者ROBOT,點擊OK


 

如前面導入庫的方式,導入RequestsLibrary


 

新增New User Keyword


 

輸入名字,點擊OK


 

如下圖,點擊該關鍵字,在右側腳本行把腳本寫入,其中${skuIds}, ${except_result}參數化

PS:另外養成良好習慣,在documentation處寫上對應的備注


 

以上我們關鍵字就建好了,要怎么使用呢

2、使用關鍵字

跟導入庫類似,要先導入剛才新建的resource,這樣才能使用resource下的關鍵字

回到suite,點擊suite,右側點擊Resource,輸入剛才新建的resource文件名(練習flow.txt),點OK


 

回到suite下的測試用例,輸入前面新增的user keyword名,可以看到是藍色字樣,后面紅色格子代表該方法必傳的參數


 

光標在方法名上,按ctrl,可以看到方法說明,可以看到我們前面的備注也有展示


 

把skuids和預期結果再方法后面輸入,執行case,可以發現與前面完整case執行的效果一樣。

所以我們多個case的時候,通過這種方式,數據分離后,數據只管對應的輸入輸出,具體執行過程封裝到方法中。


 

3、數據維護方式

數據分離實現了,那么數據部分有哪些維護方式呢:

1、一條數據一個case

如下圖,每個case對應一條數據


 

2、通過模板在一個case中寫所有數據

如下圖,通過Template,在一個case中維護所有數據


 

以上數據直接維護在RF的case文件中,除了這種方式,還可以把數據維護在其他地方

3、通過excel、csv等文件維護數據,腳本從文件讀取(這塊因為作用與前兩種方式一樣,先不寫,以后補充)

4、數據維護在數據庫中,腳本從數據庫獲取(這塊是下個方法的簡化版)

5、直接獲取手工測試后生成的數據,處理后作為測試數據(后面的文章里寫這塊)

四、其他簡單封裝

回到我們接口的例子中,一個項目接口執行多個,我們會發現,項目中大多數接口的請求頭、請求的過程都相似,因此我們再做一下封裝:

在項目下新建一個resource文件(接口基礎方法),導入庫RequestsLibrary


 

封裝方法:獲取默認headers


 

封裝請求方法:


 

返回碼異常,拋異常或者提示


 

返回的結果如果本身就報錯,也可以拋異常(視情況使用)


 

這樣我們就可以更專注於實際業務


 

當然前面的結果對比,也可以做下封裝(這部分比較復雜,可跳過)

判斷兩個json是否相等,先全文本對比,如果相等則正確,跳過,若不相等則進行深入判斷


 

通過遞歸,逐層進行判斷,當找到不同的值時,拋出路徑及不等的原因

 
 
 


免責聲明!

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



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