python3 進行接口測試


最近有研究接口測試,然后查了查資料,發現有兩種方法,一種是使用urllib庫,一種是使用requests庫。而在這里,我使用的是requests庫,為什么要用這個呢?

從官方文檔看出,python的標准庫urllib2提供了大部分需要的HTTP功能,但是呢?API太坑,使用標准庫實現會寫大堆代碼。而requests使用起來的話,就比較簡潔。(建議使用的開發工具是 pycharm,安裝插件方便。)

下面別的不說,先上一個簡單示例:

# -*- coding:utf-8 -*-
__author__ = u'harry'

import requests #先導入包,這是必須的 url = 'http://XXXXXXXXXXXXXXX' #url:接口地址 data = {'XXXX':'XXX'} #data:接口傳遞的參數 headers = {'Connection':'close'} #header:傳遞header信息 #files:接口中需要上傳文件則需要用到該參數 r = requests.post(url,data = data,headers = headers) #請求url,獲得返回的數據信息 print(r.text.encode('utf-8'))                  #獲得的返回數據使用text方法進行獲取

 

 使用requets就是這么簡單。

 簡單的使用方法寫了,各位客官可以對其進行很多的修改。比如說:封裝這塊代碼,每次可以進行調用;可以添加循環,變為自動化,從excel中讀取數據,然后進行循環取值。 等等等等。。。。

在最后再加上一個我封裝后的urllib庫 與 requests庫的對比代碼:

# -*- coding:utf-8 -*-
__author__ = u'harry'
import urllib.request
import requests   #先導入包,這是必須的
import urllib.parse

url = 'XXXXXXX'  # url:接口地址
data = {'XXX': 'XXX'}                     #data:接口傳遞的參數
headers = {'Connection': 'close'}  # header:傳遞header信息
# files:接口中需要上傳文件則需要用到該參數

def requests_test(url,data,headers):
    response = requests.post(url,data = data,headers = headers)        #請求url,獲得返回的數據信息
    print(response.text,response.headers)                                     #返回頭部信息

def urllib_test(url,data):
    data1 = urllib.parse.urlencode(data).encode('utf-8')
    response = urllib.request.Request(url=url,data = data1)
    html = urllib.request.urlopen(response)
    print(html.read())
    print(html.getcode(),html.msg)        #獲得html返回的狀態
    print(html.headers)                   #返回頭部信息


#下面調用兩個方法:
urllib_test(url,data)
requests_test(url,data,headers)

關於這兩個庫的get請求,我就不多講了。

requests: requests.get("url") 

urllib:不傳入data就可以了。

 

如果要解決接口返回值的unicode編碼,則

html.read().decode('unicode-escape')

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM