python request介面自動化筆記一

2022-06-20 17:15:08 字數 4610 閱讀 8775

一,介面自動化測試理解

1,概念

(1) 介面測試:是對系統或元件之間的介面進行測試,主要是校驗資料的交換、傳遞和控制管理過程,以及相互邏輯依賴關係。

(2) 自動化測試:是把以人為驅動的測試行為轉化為機器執行的一種過程。

(3)故介面自動化測試:讓程式或工具代替人工自動完成對介面測試的過程。

2,實現方式

(1)使用介面測試工具來實現,比如:postman、jmeter;

(2)通過編寫**來實現,如(python+requests)

3,測試工具的缺點

(1)測試資料不好控制(無法直接讀取或儲存json等格式資料)

(2)測試資料加密不方便

(3)擴充套件性不足(複雜業務邏輯,複雜斷言)

二,requests庫實現介面測試的方法

1,requests庫的介紹

requests庫是使用python編寫的,基於urllib,採用apache2 licensed開源協議的htt[庫;相比於urllib庫,requests庫更加方便,封裝了大量的介面測試方法,滿足介面測試的需要。

2,requests庫安裝及驗證

(1)安裝:使用命令 pip install requests

(2)驗證:使用命令 pip show requests 可顯示響應的版本資訊

3,常見的http請求方式:get、post、put、delete、head、options等。

三,常用的請求方式使用方法

1, get請求

import requests

response = requests.get("")

請求方法的返回值response為response物件,可以從這個物件中獲取所需要的響應資訊,用於斷言操作。

get方法示例:

'''

目標:get請求方法

案例:請求:get

響應:1,響應物件.url :獲取請求的url

2, 響應物件.status.code 獲取響應狀態碼

3,響應物件.text 以文字形式顯示響應內容

'''#

1,導包

import

requests

#2,呼叫get請求

r = requests.get("

")#3,獲取請求的url

print

(r.url)

#4,獲取響應狀態碼

print

(r.status_code)

#5,以文字形式顯示響應內容

print(r.text)

get請求方法帶引數使用總結:

步驟:導包:import requests

呼叫get方法 request.get()

示例:r = request.get(") # r為響應物件

請求含引數形式:

(1). ?id = 1001

(2)?id = 1001,1002

(3) ?id = 1001&kw = 上海

引數:params引數形式

方式1:params =

方式2:params =

方式3:params =

示例:r = requests.get(url,params = params)

響應物件作用:

(1)獲取url :r.url

(2)獲取響應狀態碼 r.status_code

2,post請求

2.1,作用:新增資源

2.2,應用:

導包:import requests

呼叫post方法 requests.post()

示例:requests.post(url,json,hesaders)

2.3,引數:

(1)url:介面位址

(2)json:請求報文

(3)headers:請求頭資訊

響應狀態:r.status_code

響應資訊:r.json() # 以json文字形式顯示響應內容

2.4,post方法示例:

'''

目標:post方法使用

引數:1

,json: 傳入json資料

2,headers 傳入請求頭資訊

響應:1

,響應物件.json

'''# 1

,導包import requests# 2

,呼叫post方法

# 請求url

url = "

"# 請求headers

headers =

# 請求json

data =

]}#

3,呼叫post方法

r = requests.post(url,json=data,headers =headers)

# 獲取響應物件

print(r.json())

# 獲取響應狀態碼

print(r.status_code)

2.5,post方法使用-引數data和json的區別

(1)data:字典物件;json: json字串

在python中字典物件和json字串長得一樣,但是後台格式有區別

(2)字典物件與json字串轉換

匯入 json模組

使用dumps方法將字典物件轉換為字串: json.dumps(data物件)

使用loads方法將字串轉為字典物件: json.loads(json物件)

擴充套件:

# python中json.load()、json.loads()、json.dump()、json.dumps()的區別

'''json.load()從檔案中讀取json字串

json.loads()將json字串轉換為字典型別

json.dumps()將python中的字典型別轉換為字串型別

json.dump()將json格式字串寫到檔案中

'''

2.6,post請求-響應資料json和text的區別

--1>json():返回的是字典型別,可以通過鍵名獲取響應的值

--2>text : 返回的是字串型別,無法通過鍵名來獲取響應的值

3,delete方法

3.1 作用:刪除資源

3.2 應用:導包: import requests

呼叫方法:requests.delete()

3.3 響應:

響應狀態碼:204

示例:

'''

目標:delete方法使用

案例:刪除資料

不需要引數

響應:1,響應狀態碼:204

'''#

1,導包

import

requests

#2,呼叫delete方法

url = ""

r =requests.delete(url)

#3,獲取響應狀態碼

print(r.status_code) #

204

四,常見的響應物件方法:

請求方法的返回值response為response物件,我們可以從這個物件中獲取所想要的響應資訊。

--1:status_code

作用:獲取響應狀態碼

示例:響應物件.status_code

--2:url

示例:響應物件.url

--3:encoding

作用:檢視預設請求編碼格式:響應物件.encoding

設定響應編碼格式:響應物件.encoding = "utf-8"

--4:cookies

作用:獲取響應cookies資訊(伺服器產生)

示例:響應物件.cookies

--5:text

作用:以文字形式解析響應內容

示例:響應物件.text

--6:content

作用:以位元組碼形式解析響應內容

示例:響應物件.content

--7:json()

作用:以json字串形式解析響應內容

示例:響應物件.json()

**示例:

'''

目標:響應物件的常用方法

1,encoding:

1,1 獲取請求編碼

1.2 設定響應編碼

2, headers

2.1 獲取響應頭資訊

'''#

1, 導包

import

requests

#2,呼叫get方法

url = "

"r =requests.get(url)

#3,檢視預設請求編碼

print(r.encoding) #

iso-8859-1

#4,檢視響應資訊,以text格式

print(r.text) #

使用iso-8859-1編碼格式,中文部分會亂碼

#5, 設定響應編碼

r.encoding = "

utf-8

"print

(r.text)

#6, 檢視響應頭資訊, 包含了伺服器返回的token,session等資訊,比較重要

print(r.headers)

Python Request庫的介面測試例項

檢查http響應 requests處理session cookie 介面測試概要安裝requests庫pip3 install requests構建http請求 urlencoded格式 後面的都是url的引數,每個引數之間是用 隔開的 一般寫法 response requests.get 如果ur...

python request鍵值判斷

if request.request.has key 鍵值 httprequest物件的屬性 參考 表 h 1.httprequest物件的屬性 屬性 描述path 表示提交請求頁面完整位址的字串,不包括網域名稱,如 music bands the beatles method 表示提交請求使用的h...

python request模組學習

python request模組學習 安裝 使用 1 get 2 post 3 put 4 delete 5 head 6 options 為url傳遞引數 payload res requests.get params payload res.url u key2 value2 key1 valu...