国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

學(xué)會這個Python庫,接口測試so easy!

0
分享至

摘要:我們在做接口測試時,大多數(shù)返回的都是json屬性,我們需要通過接口返回的json提取出來對應(yīng)的值,然后進(jìn)行做斷言或者提取想要的值供下一個接口進(jìn)行使用。

但是如果返回的json數(shù)據(jù)嵌套了很多層,通過查找需要的詞,就很不方便,小編今天介紹一種python的第3方庫jsonpath。

jsonpath

jsonpath是使用一種簡單的方法來提取給定JSON內(nèi)容。在我們做接口測試時,目前流行的數(shù)據(jù)格式就是JSON格式的,當(dāng)碰到復(fù)雜JSON格式時,我們可以使用JsonPath快速提取數(shù)據(jù)或者更新數(shù)據(jù)。

安裝:pip install jsonpath。

小編先通過正常的接口,獲取一段json數(shù)據(jù)供我們進(jìn)行測試使用:

import requests

#請求天氣的url地址

url='http://apis.juhe.cn/simpleWeather/query'

#請求參數(shù)

data={

"city":"上海",

"key":"331eab8f3481f37868378fcdc76cb7cd"

#發(fā)送post請求

r=requests.post(url,data=data)

j=r.json()

print(j)

通過執(zhí)行后,獲取一段我們想要的json數(shù)據(jù)。

"reason":"查詢成功!",

"result":{

"city":"上海",

"realtime":{

"temperature":"23",

"humidity":"25",

"info":"多云",

"wid":"01",

"direct":"西北風(fēng)",

"power":"2級",

"aqi":"58"

},

"future":[

"date":"2023-03-15",

"temperature":"10/23℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"西南風(fēng)轉(zhuǎn)東北風(fēng)"

},

"date":"2023-03-16",

"temperature":"9/15℃",

"weather":"多云轉(zhuǎn)小雨",

"wid":{

"day":"01",

"night":"07"

},

"direct":"東南風(fēng)"

},

"date":"2023-03-17",

"temperature":"9/13℃",

"weather":"中雨轉(zhuǎn)小雨",

"wid":{

"day":"08",

"night":"07"

},

"direct":"東南風(fēng)轉(zhuǎn)北風(fēng)"

},

"date":"2023-03-18",

"temperature":"8/15℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"北風(fēng)轉(zhuǎn)東南風(fēng)"

},

"date":"2023-03-19",

"temperature":"12/16℃",

"weather":"晴",

"wid":{

"day":"00",

"night":"00"

},

"direct":"東南風(fēng)"

},

"error_code":0

通過下標(biāo)提取

json數(shù)據(jù)有了,那么我們先用正常提取json的方法,進(jìn)行提取3-16日的天氣信息,看看如何提取。

data=result['result']['future'][1]

print(data)

------------------------------輸出結(jié)果---------------------------

{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}

可以看到我們想要提取需要找到對應(yīng)的值,然后在繼續(xù)往下一層一層的查找,如果嵌套層數(shù)過多,容易出錯,返回信息格式發(fā)生改變,這里需要修改信息。

通過jsonpath提取

同樣的json數(shù)據(jù),我們通過jsonpath進(jìn)行提。

data=jsonpath.jsonpath(result,'$..[?(@.date=="2023-03-16")]')

print(data)

-----------------------------輸出結(jié)果----------------------------

[{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}]

通過上面的內(nèi)容會發(fā)現(xiàn),我們直接通過過濾器的方式來講我們的數(shù)據(jù)取出來了。有點(diǎn)類似我們的正則表達(dá)式。

jsonpath的其他用法

上面介紹的只是jsonpath的一個用法,下面小編介紹幾種jsonpath的其他用法。

通過$獲取屬性值內(nèi)容

#直接獲取到future的內(nèi)容

data=jsonpath.jsonpath(result,'$.result.future')

data1=jsonpath.jsonpath(result,'$.reason')

print(data)

print(data1)

-----------------------------輸出結(jié)果----------------------

[[{'date':'2023-03-15','temperature':'10/23℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'西南風(fēng)轉(zhuǎn)東北風(fēng)'},{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'},{'date':'2023-03-17','temperature':'9/13℃','weather':'中雨轉(zhuǎn)小雨','wid':{'day':'08','night':'07'},'direct':'東南風(fēng)轉(zhuǎn)北風(fēng)'},{'date':'2023-03-18','temperature':'8/15℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'北風(fēng)轉(zhuǎn)東南風(fēng)'},{'date':'2023-03-19','temperature':'12/16℃','weather':'晴','wid':{'day':'00','night':'00'},'direct':'東南風(fēng)'}]]

['查詢成功!']

通過【*】獲取對應(yīng)值

通過上面的json值,獲取到關(guān)于date的時間值。

data=jsonpath.jsonpath(result,'$.result.future.[*].date')

print(data)

-----------------------------輸出結(jié)果----------------------

['2023-03-15','2023-03-16','2023-03-17','2023-03-18','2023-03-19']

通過切片獲取對應(yīng)值

data=jsonpath.jsonpath(result,'$..future[0,1]')

print(data)

-----------------------------輸出結(jié)果----------------------

[{'date':'2023-03-15','temperature':'10/23℃','weather':'多云','wid':{'day':'01','night':'01'},'direct':'西南風(fēng)轉(zhuǎn)東北風(fēng)'},{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉(zhuǎn)小雨','wid':{'day':'01','night':'07'},'direct':'東南風(fēng)'}]

以上只是小編簡單的介紹幾種jsonpath的使用方法,具體的使用需要大家通過項(xiàng)目上進(jìn)行結(jié)合使用,這里小編在推薦一個jsonpath的調(diào)試器,我們可以通過調(diào)試器進(jìn)行查看編寫是否正確:http://www.atoolbox.net/Tool.php?Id=792。

總結(jié)

小編通過簡單的案例進(jìn)行介紹了如何通過jsonpath進(jìn)行提取json數(shù)值,方面我們在做接口測試對于json的數(shù)據(jù)進(jìn)行解析,文章中沒有太多的知識點(diǎn),主要是熟能生巧,經(jīng)常使用,這樣在項(xiàng)目中才能靈活運(yùn)用。感謝您的閱讀,希望對您有所幫助。

最后:在我的V:atstudy-js,可以免費(fèi)領(lǐng)取一份10G軟件測試工程師面試寶典文檔資料。以及相對應(yīng)的視頻學(xué)習(xí)教程免費(fèi)分享!其中包括了有基礎(chǔ)知識、Linux必備、Shell、互聯(lián)網(wǎng)程序原理、Mysql數(shù)據(jù)庫、抓包工具專題、接口測試工具、測試進(jìn)階-Python編程、Web自動化測試、APP自動化測試、接口自動化測試、測試高級持續(xù)集成、測試架構(gòu)開發(fā)測試框架、性能測試、安全測試等。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
烏度卡:杜蘭特訓(xùn)練時不慎與隊(duì)友膝蓋相撞,導(dǎo)致髕腱區(qū)域受傷

烏度卡:杜蘭特訓(xùn)練時不慎與隊(duì)友膝蓋相撞,導(dǎo)致髕腱區(qū)域受傷

懂球帝
2026-04-19 08:20:27
湖南29歲廖大雁去世,未婚未孕挺著“孕肚”4年,在父母懷里離世

湖南29歲廖大雁去世,未婚未孕挺著“孕肚”4年,在父母懷里離世

千言娛樂記
2026-04-18 16:23:12
王濛的八百個心眼,都用在孫怡身上了,網(wǎng)友:她倆能成閨蜜

王濛的八百個心眼,都用在孫怡身上了,網(wǎng)友:她倆能成閨蜜

圓夢的小老頭
2026-04-18 18:51:22
11年前優(yōu)衣庫男女主現(xiàn)狀曝光,他們還在一起生了兩個孩子

11年前優(yōu)衣庫男女主現(xiàn)狀曝光,他們還在一起生了兩個孩子

半糖甜而不膩
2026-04-06 12:09:15
打破一輪游魔咒!29歲趙心童獲37萬獎金 回應(yīng):壓力太大非常困難

打破一輪游魔咒!29歲趙心童獲37萬獎金 回應(yīng):壓力太大非常困難

念洲
2026-04-19 07:39:48
“二號人物”已交代!民進(jìn)黨栽贓甩鍋,鄭麗文發(fā)出怒吼:跟他拼了

“二號人物”已交代!民進(jìn)黨栽贓甩鍋,鄭麗文發(fā)出怒吼:跟他拼了

米果說識
2026-04-18 16:56:33
華人團(tuán)隊(duì)解散,印度天才入職!馬斯克承認(rèn)xAI的技術(shù)路線走錯了

華人團(tuán)隊(duì)解散,印度天才入職!馬斯克承認(rèn)xAI的技術(shù)路線走錯了

書紀(jì)文譚
2026-03-17 15:03:58
北影節(jié)開幕式出現(xiàn)搶位風(fēng)波!沈騰被擠出C位,強(qiáng)行在沈馬中間加桌

北影節(jié)開幕式出現(xiàn)搶位風(fēng)波!沈騰被擠出C位,強(qiáng)行在沈馬中間加桌

萌神木木
2026-04-16 21:18:03
王玉雯,這是什么寶藏綜藝啊

王玉雯,這是什么寶藏綜藝啊

陳意小可愛
2026-04-18 14:31:19
恒大夏海鈞:當(dāng)一個人高智商,有資源,無下限,會壞到什么地步?

恒大夏海鈞:當(dāng)一個人高智商,有資源,無下限,會壞到什么地步?

道術(shù)意義
2026-04-08 07:32:08
調(diào)查發(fā)現(xiàn):每天吃一根香蕉,就等于給血脂添負(fù)擔(dān)?答案來了

調(diào)查發(fā)現(xiàn):每天吃一根香蕉,就等于給血脂添負(fù)擔(dān)?答案來了

荷蘭豆愛健康
2026-04-19 07:36:39
雷軍拼了!15小時直播1265公里只充一次電,京滬高速全程無剪輯

雷軍拼了!15小時直播1265公里只充一次電,京滬高速全程無剪輯

聽心堂
2026-04-17 10:37:54
李想把“理想平替”喂成了狼

李想把“理想平替”喂成了狼

市象
2026-04-17 16:42:52
淪為共享單車的女色虎

淪為共享單車的女色虎

深度報
2026-03-05 22:39:27
楊子帶23歲新女友見91歲母親,銅錢盆搶鏡,黃圣依17年終是一場空

楊子帶23歲新女友見91歲母親,銅錢盆搶鏡,黃圣依17年終是一場空

林雁飛
2026-04-17 15:07:46
沙特帶頭,阿聯(lián)酋緊跟,卡塔爾隨后,中東開始大變局

沙特帶頭,阿聯(lián)酋緊跟,卡塔爾隨后,中東開始大變局

是v的地方吧
2026-04-19 08:32:55
同學(xué)聚會收8萬,我裝病拒去,次日警察敲門:昨晚參會的都出事

同學(xué)聚會收8萬,我裝病拒去,次日警察敲門:昨晚參會的都出事

七分瘦三分肥
2025-09-17 15:51:21
38歲梅西發(fā)威:無敵雙響炮,助邁阿密國際3-2+終結(jié)2輪不勝

38歲梅西發(fā)威:無敵雙響炮,助邁阿密國際3-2+終結(jié)2輪不勝

側(cè)身凌空斬
2026-04-19 06:53:09
為何越來越多女高管染上艾滋病?2位35歲的女高管,公開講述經(jīng)歷

為何越來越多女高管染上艾滋病?2位35歲的女高管,公開講述經(jīng)歷

千秋文化
2026-04-16 20:18:37
尼克斯113-102勝G1,四人表現(xiàn)需點(diǎn)名,數(shù)據(jù)不會說謊!

尼克斯113-102勝G1,四人表現(xiàn)需點(diǎn)名,數(shù)據(jù)不會說謊!

二爺臺球解說
2026-04-19 09:31:34
2026-04-19 10:11:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1558文章數(shù) 13260關(guān)注度
往期回顧 全部

科技要聞

50分26秒!榮耀獲得人形機(jī)器人半馬冠軍

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結(jié)果印度遭了殃

頭條要聞

牛彈琴:伊朗遭到特朗普"羞辱"被激怒 結(jié)果印度遭了殃

體育要聞

時隔25年重返英超!沒有人再嘲笑他了

娛樂要聞

劉德華回應(yīng)潘宏彬去世,拒談喪禮細(xì)節(jié)

財經(jīng)要聞

華誼兄弟,8年虧光85億

汽車要聞

奇瑞威麟R08 PRO正式上市 售價14.48萬元起

態(tài)度原創(chuàng)

本地
手機(jī)
藝術(shù)
健康
公開課

本地新聞

12噸巧克力有難,全網(wǎng)化身超級偵探添亂

手機(jī)要聞

華為Pura X Max:被曝24日開賣!華為Pura 90:發(fā)售日成謎!

藝術(shù)要聞

鄭麗文大陸之行引發(fā)熱議,孫中山贈對聯(lián)成焦點(diǎn)!

干細(xì)胞抗衰4大誤區(qū),90%的人都中招

公開課

李玫瑾:為什么性格比能力更重要?

無障礙瀏覽 進(jìn)入關(guān)懷版