背景:在介面測試中,一般返回都是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...