# Python進行接口測試
python 做接口測試
用到模塊 requests
安裝模塊`python -m pip install requests`
1. 由于pip命令可能安裝失敗所以有時我們要通過下載第三方庫文件來進行安裝。
2. 在github上的地址為:**`https://github.com/requests/requests`**
3. 下載文件到本地之后,解壓到python安裝目錄。
4. 然后在dos界面cd到該目錄,在此處運行命令行并輸入:**`python setup.py install`**即可。
> ### requests發送請求
| 方法 | 解釋 |
| --- | --- |
| requests.get() | 獲取html的主要方法 |
| requests.post() | 向html網頁提交post請求的方法 |
| requests.delete() | 向html提交刪除請求 |
| requests.put() | 向html網頁提交put請求的方法 |
| requests.head() | 獲取html頭部信息的主要方法 |
| requests.patch() | 向html提交局部修改的請求 |
* 發送請求示例
~~~
import requests
r = requests.get(url)#發送get請求
r = requests.post(url)#發送post請求
# 其余請求的發送方式一樣,故不再演示
~~~
在發送請求時,除了url之外,還有許多參數,一一來看
* **`url`**
url,請求的路徑,表示這個請求發送到哪里去
~~~
import requests
myurl = 'http://brtc.imsam.cn'
r = requests.get(url=myurl)
~~~
* **`params`**
跟url一起發送的參數(以字典方式傳遞),通常使用在**get**請求中
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
r = requests.get(url=myurl,params=kv)
~~~
* **`data`**
字典,與params不同的是,data提交的數據并不放在url鏈接里,通常在**post**請求中使用
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
r = requests.post(url=myurl,data=kv)
~~~
* **`json`**
以json的方式發送請求數據,通常也用在**post**請求中
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
r = requests.post(url=myurl,json=kv)
~~~
* **`headers`**
定制請求的頭部信息
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
hd ={"User-Agent":" Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36"}
r = requests.get(url=myurl,params=kv,headers=hd)
~~~
* **`files`**
發送帶文件的請求
~~~
import requests
myurl = 'http://brtc.imsam.cn'
upfile = {'file': open('文件路徑', 'rb')}
r = requests.post(url=myurl,files=upfile)
~~~
* **`timeout`**
設置超時時間
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
r = requests.post(url=myurl,data=kv,timeout=0.01)
~~~
* **`proxies`**
設置訪問代理
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
proxy = {"http": "http://10.10.1.10:3128","https": "https://10.10.1.100:4444"}
r = requests.post(url=myurl,data=kv,proxies=proxy)
~~~
如果代理需要用戶名和密碼,則需要這樣:
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
proxy = {"http": "http://用戶名:密碼@10.10.1.10:3128","https": "https://用戶名:密碼10.10.1.100:4444"}
r = requests.post(url=myurl,data=kv,proxies=proxy)
~~~
* **`自動帶上cookie`**
~~~
s = requests.Session()
r = s.get('url')
~~~
> ### 響應內容
~~~
import requests
myurl = 'http://brtc.imsam.cn'
kv = {'username':'張三','age':'18'}
r = requests.post(url=myurl,data=kv)
r.text# 以字符串方式返回響應內容
# 更多響應內容如下
~~~
| 響應 | 含義 |
| --- | --- |
| r.encoding | #獲取當前的編碼 |
| r.encoding = 'utf-8' | #設置編碼 |
| r.text | #以encoding解析返回內容。字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。 |
| r.content | #以字節形式(二進制)返回。字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮。 |
| r.headers | #以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None |
| r.status\_code | #響應狀態碼 |
| r.json() | #Requests中內置的JSON解碼器,以json形式返回,前提返回的內容確保是json格式的,不然解析出錯會拋異常 |
| r.raise\_for\_status() | #失敗請求(非200響應)拋出異常 |
- 總章
- Oracle數據庫
- 常見的Linux命令
- 理論內容整理
- 給你如下功能怎么測試
- 支付怎么測試
- 購物車怎么測試?
- 搜索功能怎么測試?
- 文件上傳功能怎么測試?
- 登錄功能怎么測試?
- 還款功能怎么測試?
- 訂單功能怎么測試?
- 自動化測試篇
- 必記代碼
- 接口測試篇
- 性能測試篇
- app測試篇
- 面試篇
- 項目篇
- 職業素養篇
- 真實案列分析
- 如何預防冷場
- redis
- 琪琪
- 禪道搭建手冊
- 禪道搭建手冊1
- 禪道的基本使用
- 基于Python3_Selenium的自動化
- Python3安裝
- Python3基礎
- 列表_元組_集合
- 函數_模塊_類
- Python代碼
- selenium環境
- selenium定位方式
- Selenium常見操作
- toast讀取代碼
- 添加用戶代碼
- 隱式等待與顯式等待
- 循環添加用戶
- 測試用例練習
- 測試用例優化
- Fiddler抓包工具
- 安裝
- Fiddler使用
- 接口測試
- Jmeter的安裝
- Jmeter使用
- jmeter+ant+jenkins接口自動化測試框架
- 接口安全測試
- 性能測試
- Nmon監控LInux系統
- Jmeter分布式
- 性能測試-具體案例
- Monkey
- 安裝1
- Monkey使用
- appium自動化
- appium的安裝
- appium基本使用
- 真機USB連接
- 問題排查
- Jenkins持續集成
- Jenkins安裝
- Jenkins配置任務
- Python擴展內容
- Python連接數據庫
- Python進行接口測試
- 開啟服務