文章目錄
- 前言
- 一、requests庫的使用
- 二、json和字典的區(qū)別
- 三、后端登錄接口-請求數(shù)據(jù)生成
- 四、接口自動化-對應(yīng)電商項目中的功能
- 五、來自postman的代碼-后端登錄
- 總結(jié)
前言
記錄:json和字典的區(qū)別,json和字段的相互轉(zhuǎn)化;postman發(fā)送請求與Python中代碼發(fā)送請求的區(qū)別。
一、requests庫的使用
安裝:
pip install requests
官方文檔:https://docs.python-requests.org/zh_CN/latest/
1、導(dǎo)入requests
2、requests的請求方法:
requests.get(url,param=None) 發(fā)起get請求。params是請求參數(shù),是追加在url后面的。字典類型。
requests.post(url,data=None,json=None) 發(fā)起post請求:
data參數(shù):任意的content-type都可以用參數(shù)傳參。
不指明content-type的情況下,默認的content-type是x-www-form-urlencoded,且是字典格式。
如果是其它的content-type,需要在headers當中,加上content-type類型。
json參數(shù): 給content-type為application/json格式使用的。
字典類型? ?不需要在header當中指定content-type
?
以上2個方法,都是使用的requests.request(method,url,**kwargs)
Requests類 -?
Response類 -?
?resp.headers是響應(yīng)頭
?resp.status_code是響應(yīng)狀態(tài)碼
?resp.text是字符串類型
二、json和字典的區(qū)別
學(xué)習(xí)地址:https://www.w3cschool.cn/json/
一些區(qū)別:
字符串:
json: 雙引號。
python字典:單引雙號都可以。
python: None
java/javascript: null(python不認識。如果響應(yīng)結(jié)果當中有null, 需要轉(zhuǎn)換成None)?
布爾值:
json: true,false
python:True, False
字典:數(shù)據(jù)類型。
json: 數(shù)據(jù)格式。 json格式的字符串
注意:json其實是字符串(只不過這種字符串是格式化了的字符串,也就是長得像字典的字符串),字典是數(shù)據(jù)類型
json格式的字符串和字典之間的轉(zhuǎn)換:json庫
內(nèi)置庫:json
json.loads(json串) ?把json串,轉(zhuǎn)換成python字典
json.dumps(python字典對象,indent=空格個數(shù)) ?把python字典,轉(zhuǎn)換成json串。indent是格式化展示json串
可以這樣記憶:load向下(向下就更高級轉(zhuǎn)化成字典),dump向上(向上就是向原始數(shù)據(jù)轉(zhuǎn)化,就是字符串)
關(guān)于requests處理json參數(shù)的文章:
? ? ?https://www.cnblogs.com/Simple-Small/p/9830270.html
舉例(不完善):
建議看我另一篇文章有詳細闡述(Python中的接口測試中關(guān)于request方法中的json和data參數(shù)接收數(shù)據(jù)的區(qū)別_python request接收json_宏基騎士的博客-CSDN博客)
?
三、后端登錄接口-請求數(shù)據(jù)生成
免費公開的api: 聚合數(shù)據(jù) - https://www.juhe.cn/docs?bd_vid=7361015517896645400
舉例(一個登錄接口):
url: http://mall.lemonban.com:8108/adminLogin
method: post
請求數(shù)據(jù):
????????t(可選): 時間戳(13位) ?int(time.time()*1000)
????????principal(必傳): 用戶名
????????credentials(必傳): 密碼
????????sessionUUID(可選):uuid
????????imageCode(必傳): 驗證碼
注意點:
1、關(guān)于Python生成UUID
文章:https://blog.csdn.net/yl416306434/article/details/80569688
2、驗證碼:
1)萬能驗證碼:lemon
2)第三方打碼平臺: 圖鑒(http://www.ttshitu.com/)
代碼截圖(驗證碼為萬能驗證碼時):
四、接口自動化-對應(yīng)電商項目中的功能
舉例:
1、登錄后臺管理
2、添加一個商品
3、注冊前臺用戶
4、登錄前臺用戶
5、購買、下訂單、支付
五、來自postman的代碼-后端登錄
第一種寫法(直接拿取postman當中的Python寫法)
另一種寫法(不使用json庫去序列化字典):
注意:我們從第二寫法很第一種寫法對比,發(fā)現(xiàn)第二種寫法少了請求頭,那么想想這是為什么呢?
因為,我們使用第一種方式時,原本data默認的是x-www-form-urlencoded這種格式,是不需要指明請求頭的,那么使用其他格式的時候,需要在請求頭里面指明? 'Content-Type': 'application/json'。當然這里只是針對data傳參才會特別去指明請求頭。
如果使用的是第二方式,那么就不需要在請求頭里面指明? 'Content-Type':? 因為有個關(guān)鍵字參數(shù)json,這個就直接自動轉(zhuǎn)化成了json格式的字符串,其實對應(yīng)postman中,就是raw(原始數(shù)據(jù)),而這個原始時間就是json格式。
也就是說:Python里面提供了2種處理數(shù)據(jù)的方式。就看看自己喜歡用哪種了。
?文章來源:http://www.zghlxwxcb.cn/news/detail-428308.html
總結(jié)
暫無文章來源地址http://www.zghlxwxcb.cn/news/detail-428308.html
到了這里,關(guān)于接口自動化【一】(抓取后臺登錄接口+postman請求通過+requests請求通過+json字典區(qū)別)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!