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

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

學會這個Python庫,接口測試so easy!

0
分享至

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

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

jsonpath

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

安裝:pip install jsonpath。

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

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":"西北風",

"power":"2級",

"aqi":"58"

},

"future":[

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

"temperature":"10/23℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"西南風轉東北風"

},

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

"temperature":"9/15℃",

"weather":"多云轉小雨",

"wid":{

"day":"01",

"night":"07"

},

"direct":"東南風"

},

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

"temperature":"9/13℃",

"weather":"中雨轉小雨",

"wid":{

"day":"08",

"night":"07"

},

"direct":"東南風轉北風"

},

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

"temperature":"8/15℃",

"weather":"多云",

"wid":{

"day":"01",

"night":"01"

},

"direct":"北風轉東南風"

},

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

"temperature":"12/16℃",

"weather":"晴",

"wid":{

"day":"00",

"night":"00"

},

"direct":"東南風"

},

"error_code":0

通過下標提取

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

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

print(data)

------------------------------輸出結果---------------------------

{'date':'2023-03-16','temperature':'9/15℃','weather':'多云轉小雨','wid':{'day':'01','night':'07'},'direct':'東南風'}

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

通過jsonpath提取

同樣的json數(shù)據(jù),我們通過jsonpath進行提?。?/p>

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

print(data)

-----------------------------輸出結果----------------------------

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

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

jsonpath的其他用法

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

通過$獲取屬性值內容

#直接獲取到future的內容

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

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

print(data)

print(data1)

-----------------------------輸出結果----------------------

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

['查詢成功!']

通過【*】獲取對應值

通過上面的json值,獲取到關于date的時間值。

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

print(data)

-----------------------------輸出結果----------------------

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

通過切片獲取對應值

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

print(data)

-----------------------------輸出結果----------------------

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

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

總結

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

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

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

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.

相關推薦
熱點推薦
突發(fā)利空!以色列開打伊朗 中國資產(chǎn)等跳水大跌,下周A股要涼涼了?

突發(fā)利空!以色列開打伊朗 中國資產(chǎn)等跳水大跌,下周A股要涼涼了?

股市皆大事
2026-02-28 16:03:03
河村勇輝本場首發(fā)出戰(zhàn)34分鐘 得到11分19助4籃板1搶斷

河村勇輝本場首發(fā)出戰(zhàn)34分鐘 得到11分19助4籃板1搶斷

環(huán)球體壇啄木鳥
2026-02-28 17:16:45
美以襲擊伊朗——利好A股哪些板塊?

美以襲擊伊朗——利好A股哪些板塊?

風風順
2026-02-28 18:22:31
美方將對伊朗行動評估為“高風險高回報”

美方將對伊朗行動評估為“高風險高回報”

界面新聞
2026-02-28 23:17:08
大的要來了!中東大亂,A股這個板塊準備集體漲停!

大的要來了!中東大亂,A股這個板塊準備集體漲停!

新浪財經(jīng)
2026-02-28 21:57:11
成龍安排好身后事才2個月,翁靜晶再曝大瓜,沒給他留一絲體面

成龍安排好身后事才2個月,翁靜晶再曝大瓜,沒給他留一絲體面

星星沒有你亮
2026-02-28 20:40:21
伊朗高層投降意志不夠堅決,美以斬首戰(zhàn)開打

伊朗高層投降意志不夠堅決,美以斬首戰(zhàn)開打

深度財線
2026-02-28 15:25:43
法國和浙江同為6000萬人口,2025年法國創(chuàng)3萬億美元GDP,浙江呢?

法國和浙江同為6000萬人口,2025年法國創(chuàng)3萬億美元GDP,浙江呢?

八斗小先生
2026-02-28 18:56:17
32萬彩禮不讓碰后續(xù):彩禮已花完,女方全村社死,自曝另有隱情

32萬彩禮不讓碰后續(xù):彩禮已花完,女方全村社死,自曝另有隱情

離離言幾許
2026-02-28 18:06:09
伊朗第七輪導彈射向以色列

伊朗第七輪導彈射向以色列

界面新聞
2026-02-28 20:30:44
從國宴到夜宵攤:國產(chǎn)汽水如何從統(tǒng)治者淪為乞丐

從國宴到夜宵攤:國產(chǎn)汽水如何從統(tǒng)治者淪為乞丐

富貴說
2026-02-27 16:40:22
6分鐘19個導彈連全軍覆沒,82架戰(zhàn)機被擊落,此戰(zhàn)給我們敲響警鐘

6分鐘19個導彈連全軍覆沒,82架戰(zhàn)機被擊落,此戰(zhàn)給我們敲響警鐘

混沌錄
2026-02-04 22:25:03
外交部發(fā)言人就美國和以色列軍事打擊伊朗答記者問

外交部發(fā)言人就美國和以色列軍事打擊伊朗答記者問

界面新聞
2026-02-28 21:45:34
金融圈突發(fā)!涉嫌嚴重違紀違法,金春花被查

金融圈突發(fā)!涉嫌嚴重違紀違法,金春花被查

中國基金報
2026-02-28 17:17:02
以色列突然襲擊伊朗,不是強拉美國上車,而是為特朗普緩解壓力

以色列突然襲擊伊朗,不是強拉美國上車,而是為特朗普緩解壓力

以辛德之名
2026-02-28 15:29:13
中國駐伊朗大使館:3月1日起暫停辦理簽證、認證等領事證件業(yè)務

中國駐伊朗大使館:3月1日起暫停辦理簽證、認證等領事證件業(yè)務

界面新聞
2026-03-01 00:40:22
中朝邊境鴨綠江口現(xiàn)狀:朝鮮領土正在不斷增加,中方卻在逐漸減少

中朝邊境鴨綠江口現(xiàn)狀:朝鮮領土正在不斷增加,中方卻在逐漸減少

普覽
2026-02-26 21:29:19
英超進球大戰(zhàn)!爭四格局大亂,利物浦4連勝,切爾西掉到第6

英超進球大戰(zhàn)!爭四格局大亂,利物浦4連勝,切爾西掉到第6

足球狗說
2026-03-01 00:57:22
歐盟稱收到伊朗“任何船只均不得通過霍爾木茲海峽”無線電信號

歐盟稱收到伊朗“任何船只均不得通過霍爾木茲海峽”無線電信號

界面新聞
2026-02-28 23:52:50
脫口秀演員小帕被禁言!平臺公布原因與違規(guī)樣本

脫口秀演員小帕被禁言!平臺公布原因與違規(guī)樣本

看看新聞Knews
2026-02-28 12:59:03
2026-03-01 01:15:00
51Testing軟件測試網(wǎng) incentive-icons
51Testing軟件測試網(wǎng)
中國軟件測試人的精神家園
1528文章數(shù) 13252關注度
往期回顧 全部

科技要聞

狂攬1100億美元!OpenAI再創(chuàng)融資神話

頭條要聞

媒體:美以的真實目標已經(jīng)擺上臺面 不達目的不罷休

頭條要聞

媒體:美以的真實目標已經(jīng)擺上臺面 不達目的不罷休

體育要聞

球隊主力全報銷?頂風擺爛演都不演了

娛樂要聞

周杰倫兒子正面照曝光,與父親好像

財經(jīng)要聞

沖突爆發(fā) 市場變天?

汽車要聞

嵐圖泰山黑武士版3月上市 搭載華為四激光智駕方案

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

時尚
手機
房產(chǎn)
健康
教育

這6款發(fā)色居然這么火?50張圖可以直接給tony

手機要聞

澎湃OS再次公布進展通報:10個問題,僅修復一則!

房產(chǎn)要聞

濱江九小也來了!集齊海僑北+哈羅、寰島...江東教育要炸了!

轉頭就暈的耳石癥,能開車上班嗎?

教育要聞

“比預估高了20多分,激動得有點想哭!”今天有人歡呼,有人沉默,有人紅了眼眶,這一年都經(jīng)歷了什么?

無障礙瀏覽 進入關懷版