介面測試中使用json串對比

2021-10-10 12:16:55 字數 2004 閱讀 2443

背景:在介面測試中,一般返回都是json字串,同乙個介面隨著開發**的改動或者相關業務需求的變更,需要反覆測試多次,但使用的case都是一樣的,反覆的人工比對效率低下還容易出錯,於是想著如果能實現兩個json字串的自動比對的話,豈不是可以解放很多的人工比對工作,哈哈哈哈哈------於是乎,想做乙個懶人的自己終於開始了實現json比對函式編寫的開始,廢話不多數,上**:

def

compare_one

(src_data,dst_data,flag)

: flag=flag

#print("------------------進入compare",flag)

from collections import iterable

ifisinstance

(dst_data,iterable)

andisinstance

(src_data,iterable):if

len(dst_data)

!=len

(src_data)

:print

("dst_data和src_data的長度不一致:%s-----%s"

%(dst_data,src_data)

) flag=

0return flag

ifisinstance

(src_data,

dict

)and

isinstance

(src_data,

dict):

#print("----進入instance_dict_____")

for key in dst_data:

if key not

in(src_data)

:print

("src_data不存在這個:%s"

% key)

flag=

0return flag

ifisinstance

(dst_data[key],(

dict

,list))

: flag=compare_one(src_data[key]

,dst_data[key]

,flag)

else

:if dst_data[key]

!=src_data[key]

:print

("dst_data和src_data的:%s的值對應不上:%s--%s"

%(key,dst_data[key]

,src_data[key]),

'\n'

) flag=

0return flag

ifisinstance

(dst_data,

list

)and

isinstance

(src_data,

list):

#print("----進入instance_list_____")

for i in

range

(len

(dst_data)):

ifisinstance

(dst_data[i],(

dict

,list))

: flag=compare_one(dst_data[i]

,src_data[i]

,flag)

else

:if dst_data[i]

notin src_data:

print

("%s和%s列表的值對不上"

%(dst_data,dst_data)

,'\n'

) flag=

0return flag

return flag

引數:

src_data:用於作為參考的json串

dst_data:介面返回的json串

flag:初始傳入為1,如果返回1表示兩個json串一致,如果返回1表示不一致

(翻譯)使用者介面約束中使用低顏色對比

低顏色對比一直是網頁設計中的常見問題,它讓使用者很難識別文字和按鈕。文字和按鈕最好用高顏色對比,但是低顏色對比也有用處。使用者介面設計中的約束用於限制使用者使用控制項 降低與使用者互動過程中的出錯率,提高可用性。當用包含約束的使用者介面控制項時,低顏色對比可以有效地表達這些約束。以下示例展示有用和必...

主流介面測試框架對比

公司計畫系統的開展介面自動化測試,需要我這邊調研一下主流的介面測試框架給後端測試 主要測試介面 的同事介紹一下每個框架的特定和使用方式。後端同事根據他們介面的特點提出一下需求,看哪個框架更適合我們。1 介面編寫方便。2 方便除錯介面。3 支援資料初始化。4 生成測試報告。5 支援引數化。優點 缺點 ...

python介面測試之json模組的使用

json.dumps json.loads json.dump json.load 一 json.dumps 將python字典型別轉換成json物件 import json python 字典型別轉換為 json 物件 data json str json.dumps data print pyt...