一,介面自動化測試理解
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為response物件,可以從這個物件中獲取所需要的響應資訊,用於斷言操作。response = requests.get("")
get方法示例:
'''目標:get請求方法
案例:請求:get
響應:1,響應物件.url :獲取請求的url
2, 響應物件.status.code 獲取響應狀態碼
3,響應物件.text 以文字形式顯示響應內容
'''#
1,導包
import
requests
#2,呼叫get請求
r = requests.get("
")#3,獲取請求的url
(r.url)
#4,獲取響應狀態碼
(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()的區別2.6,post請求-響應資料json和text的區別'''json.load()從檔案中讀取json字串
json.loads()將json字串轉換為字典型別
json.dumps()將python中的字典型別轉換為字串型別
json.dump()將json格式字串寫到檔案中
'''
--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
(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...