目錄
引言
一、JSON是啥?
二、JSON的有效數(shù)據(jù)類型
三、Python JSON庫的使用
結(jié)語
引言
? ? ? ? 在使用Python進行接口自動化測試腳本時,一般都是腳本只寫接口測試邏輯實現(xiàn),而執(zhí)行腳本時需要的測試用例數(shù)據(jù)都是寫入excel、數(shù)據(jù)庫或者指定的配置文件中,腳本通過讀取這些測試數(shù)據(jù)來進行不同測試用例的執(zhí)行,這樣就做到了測試腳本和測試數(shù)據(jù)的分離,易于后續(xù)寫實腳本的維護,這部分后續(xù)接口自動化框架來介紹怎么實現(xiàn)腳本和數(shù)據(jù)的分離。
在python腳本構(gòu)建接口測試請求時,如發(fā)送put、post這樣的請求時,一般都是以JSON格式的進行請求體數(shù)據(jù)發(fā)送請求,我們編寫的接口測試數(shù)據(jù)一般都是參考接口文檔說明進行的,也就是編寫的接口測試數(shù)據(jù)的請求體一般都是JSON格式。
由于python數(shù)據(jù)類型與標準的JSON數(shù)據(jù)格式不一樣,因此在python腳本讀取數(shù)據(jù)進行接口測試前,需要將JSON數(shù)據(jù)轉(zhuǎn)換成python對象。
針對json數(shù)據(jù)交換,python語言封裝實現(xiàn)了相關(guān)的模塊:json,以下介紹python json模塊的主要操作和應(yīng)用。
一、JSON是啥?
JSON(JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫。在現(xiàn)在的應(yīng)用程序軟件中前端和后端數(shù)據(jù)交互一般都是使用的JSON
二、JSON的有效數(shù)據(jù)類型
在 JSON 中,一般數(shù)據(jù)都是key-value對形式存在,數(shù)據(jù)使用花括號{}包含,value值必須是以下數(shù)據(jù)類型之一:
- 字符串
- 數(shù)字
- 對象(JSON 對象)
- 數(shù)組
- 布爾
- Null
JSON 的值不可以是以下數(shù)據(jù)類型之一:
- 函數(shù)
- 日期
- undefined
有效JSON數(shù)據(jù)示例:
字符串:{ "name":"John" }
數(shù)字:{ "name":123 }
對象:{"employee":{ "name":"Bill Gates", "age":62, "city":"Seattle" }}
數(shù)組:{"employees":[ "Bill", "Steve", "David" ]}
布爾:{ "sale":true }
null:{ "middlename":null
如果json比較復(fù)雜,可以上json在線解析網(wǎng)站:JSON在線 | JSON解析格式化—SO JSON在線工具,核驗json是否標準正確。
三、Python JSON庫的使用
使用 JSON 函數(shù)需要導(dǎo)入 json 庫:import json
打開Pycharm工具導(dǎo)入json庫后,模塊下封裝的方法如下:
其主要封裝json.dumps()、json.loads()、json.dump()、json.load()
json.dumps():將 Python 對象編碼成 JSON 字符串
json.loads():將已編碼的 JSON 字符串解碼為 Python 對象
json.dump():將Python內(nèi)置類型序列化為json對象后寫入文件
json.load():將文件中讀取到的json形式的字符串轉(zhuǎn)化為python類型
python數(shù)據(jù)類型和json類型轉(zhuǎn)換關(guān)系表如下:
python數(shù)據(jù)轉(zhuǎn)成json類型:
json類型轉(zhuǎn)成python數(shù)據(jù)類型:
json.dumps()使用示例:
編輯如下代碼:
import json
data1 = (1,2,3) # 元組
data2 = {'張山':'25','王五':'30'} # 字典
data3 = [1,2,3] # 列表
print(json.dumps(data1))
print(json.dumps(data2))
print(json.dumps(data3))
運行結(jié)果如下:
[1, 2, 3]
{"\u5f20\u5c71": "25", "\u738b\u4e94": "30"}
[1, 2, 3]
運行后發(fā)現(xiàn)python對象都轉(zhuǎn)換成json類型了,其中元組和列表轉(zhuǎn)換成json的數(shù)組,字典轉(zhuǎn)換成帶雙引號的json格式,其中默認將字符串轉(zhuǎn)換成ascii碼,如果不想轉(zhuǎn)換成ascii碼,將上面代碼改成如下即可:
print(json.dumps(data2,ensure_ascii=False))
json.loads()使用示例:
編輯如下代碼:
import json
data1 = '{"name":"zhangshan","age":25}'
print(json.loads(data1))
輸出如下:
{'name': 'zhangshan', 'age': 25}
json.dump()使用示例:
編輯如下代碼:
import json
data = {
'name': 'wangwu',
'liebiao': [1, 2, 3, 4],
'yuanzu': (1, 2, 3)
}
with open('json_test.txt', 'w+') as f:
json.dump(data,f)
運行完成后會生成同路徑下生成一個json_test.txt的文件,文件內(nèi)容如下:
?json.load()使用示例:
在上面生成的文件基礎(chǔ)上,讀取文件的內(nèi)容,代碼如下:
import json
data = {
'name': 'wangwu',
'liebiao': [1, 2, 3, 4],
'yuanzu': (1, 2, 3)
}
with open('json_test.txt', 'w+') as f:
json.dump(data,f)
with open('json_test.txt') as f:
print(json.load(f))
輸出如下:
{'yuanzu': [1, 2, 3], 'name': 'wangwu', 'liebiao': [1, 2, 3, 4]}
如上就是python json庫的相關(guān)方法的使用和應(yīng)用,后續(xù)有json數(shù)據(jù)和python類型交互轉(zhuǎn)換時就需要引入json庫,實現(xiàn)數(shù)據(jù)轉(zhuǎn)換。
結(jié)語
如果你覺得文章還不錯,請大家 點贊、分享、留言 下,因為這將是我持續(xù)輸出更多優(yōu)質(zhì)文章的最強動力!
如果有不明白的地方可以去看這個Python接口自動化測試實戰(zhàn)教程,還是講的蠻詳細的!
------------------------------
【留言:自動化測試,免費獲取教程】文章來源:http://www.zghlxwxcb.cn/news/detail-475066.html
從入門到精通【Python+接口自動化測試】實戰(zhàn)項目進階合集?。?span toymoban-style="hidden">文章來源地址http://www.zghlxwxcb.cn/news/detail-475066.html
到了這里,關(guān)于基于Python的接口自動化-JSON模塊的操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!