Requests模塊詳解(一)

一、環(huán)境配置

MacOS
Python3.7
requests庫(kù)(安裝方法:pip3 install requests

二、簡(jiǎn)單使用

import requests  # 導(dǎo)入requests庫(kù)


r = requests.get('https://wwww.baidu.com')  # 最基本的不帶參數(shù)的請(qǐng)求
print(r.content)  # 查看返回的信息

查看返回結(jié)果時(shí),你會(huì)發(fā)現(xiàn)部分內(nèi)容亂碼,此時(shí)type(r.content)一下你會(huì)發(fā)現(xiàn)返回的是'bytes'型;只需要解碼一下就好了r.content.decode('utf-8')
查看返回結(jié)果的還有以下幾種形式:

  • r.content:返回的是bytes
  • r.text:返回的是string
  • r.json():返回的是json格式

三、傳參數(shù)

這里是get請(qǐng)求接口的基本模版--

import requests  # 導(dǎo)入requests庫(kù)

r = requests.get('https://dict.baidu.com/s',params={'wd':'python'})  # 帶參數(shù)請(qǐng)求
print(r.content.decode('utf-8'))

這里是post請(qǐng)求接口的基本模版--

import requests  # 導(dǎo)入requests庫(kù)

r = requests.post('https://dict.baidu.com/s',json={'wd':'python'})  # 帶參數(shù)請(qǐng)求
print(r.content.decode('utf-8'))

這兩者的區(qū)別除了請(qǐng)求方法外,還有請(qǐng)求參數(shù)時(shí)所帶的字段params/json

四、接口測(cè)試

先拋開(kāi)請(qǐng)求頭部不說(shuō),我們做一次簡(jiǎn)單的接口測(cè)試:
1.首先,我們得弄清楚為什么要接口測(cè)試?
::主要是一般情況后端開(kāi)發(fā)接口的時(shí)間點(diǎn)是在前端前面的,所以這時(shí)候測(cè)試可以開(kāi)始介入做接口測(cè)試,為后續(xù)的前后端聯(lián)調(diào),或者后面的測(cè)試打通通道。
2.如何做接口測(cè)試?
::面對(duì)大量的接口,你需要做的是先錄入好接口信息數(shù)據(jù),然后做一次簡(jiǎn)單的冒煙測(cè)試,沒(méi)有報(bào)500或一些奇葩的錯(cuò)誤就行了。
3.如何做好接口測(cè)試?

  • 必填項(xiàng)和非必填項(xiàng),這個(gè)很好理解
  • 邊界值校驗(yàn),即假如登陸密碼只能是6位數(shù)字,你就可以輸入1位數(shù)字、7位數(shù)字等等
  • 長(zhǎng)度/精度校驗(yàn),如文本框只能輸入小數(shù)點(diǎn)后8位的,可以嘗試小數(shù)點(diǎn)輸入后10位的情況
  • 空字符串校驗(yàn),這個(gè)也很好理解,就啥都不傳
  • 權(quán)限校驗(yàn),即大部分接口都需要登錄后才能進(jìn)行訪問(wèn)的,嘗試去掉請(qǐng)求頭部的token去請(qǐng)求;或者用賬戶(hù)A的token去查詢(xún)賬戶(hù)B的信息看是否可行
  • 安全性測(cè)試,對(duì)數(shù)據(jù)安全敏感,需要脫敏、掩碼、加密等處理,當(dāng)然這只是安全性的一小部分
  • 冗余數(shù)據(jù)檢查,對(duì)業(yè)務(wù)熟悉的測(cè)試,可以對(duì)接口返回結(jié)果進(jìn)行檢查,看是否有多余的字段返回
  • 單接口性能測(cè)試,如果接口請(qǐng)求時(shí)間過(guò)長(zhǎng),需要排查接口的拉去數(shù)據(jù)時(shí)是否存在性能上的問(wèn)題
  • 業(yè)務(wù)接口測(cè)試,即對(duì) 組合接口串聯(lián)測(cè)試
  • 壓力測(cè)試
  • 核對(duì)接口的返回結(jié)果數(shù)據(jù),需要運(yùn)用到一定的數(shù)據(jù)庫(kù)知識(shí),和知道相應(yīng)的數(shù)據(jù)在哪個(gè)表中...

可以針對(duì)上述的帶參數(shù)請(qǐng)求,進(jìn)行測(cè)試:

r = requests.post('https://dict.baidu.com/s',json={'wd':''})  # 傳參中value為空
r = requests.post('https://dict.baidu.com/s')  # 不傳任何東西
r = requests.post('https://dict.baidu.com/s',json={'wd':123})  # 傳非string型數(shù)據(jù)
r = requests.post('https://dict.baidu.com/s',json={'wd':'1234567'})  # 假設(shè)只能輸入6位數(shù)字,傳7位數(shù)字
r = requests.post('https://dict.baidu.com/s',json={'wd':'python'})  # 帶參數(shù)請(qǐng)求

等,還有很多其他情況。你會(huì)在日常工作中遇到并予以運(yùn)用。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容