日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 接口测试 url_Python 接口测试之接口请求方法封装

發布時間:2023/12/15 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 接口测试 url_Python 接口测试之接口请求方法封装 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

引言

前面講過三篇文章:

既然我們接口測試用例寫好了,測試數據也拿到了,那么就是模擬調用接口的方法了,方法有get,post,put,delete,具體是選擇哪種,我們需要根據不同接口規定好請求方法來調用。為了方便,將四種方法封裝到一個類中,每次只需訪問類中某個方法,到達請求的目的。

請求方法封裝

下面就直接附上代碼:

__author__ = 'Leo'

import requests

import json

class ApiRequest(object):

"""

請求方法

"""

# 請求方法get

def get_method(self,url,data=None,header=None):

if header is not None:

res = requests.get(url,params=data,headers=header)

else:

res = requests.get(url,params=data)

return res.json()

# 請求方法post

def post_method(self,url,data=None,header=None):

global res

if header is not None:

res = requests.post(url,json=data,headers=header)

else:

res = requests.post(url,json=data)

if str(res) == "":

return res.json()

else:

return res.text

# 請求方法put

def put_method(self,url,data=None,header=None):

if header is not None:

res = requests.put(url,json=data,headers=header)

else:

res = requests.delete(url, json=data)

return res.json()

# 請求方法delete

def delete_method(self, url, data=None, header=None):

if header is not None:

res = requests.delete(url, json=data, headers=header)

else:

res = requests.delete(url, json=data)

return res.json()

# 主方法

def run_method(self,method,url,data=None,header=None):

if method == 'get' or method == 'GET':

res = self.get_method(url,data,header)

elif method == 'post' or method =='POST':

res = self.post_method(url,data,header)

elif method == 'put' or method == 'PUT':

res = self.post_method(url,data,header)

elif method == 'delete' or method == 'DELETE':

res = self.post_method(url,data,header)

else:

res = "你的請求方式不正確!"

# return res

return json.dumps(res, ensure_ascii=False, indent=4, sort_keys=True,separators=(',', ':'))

簡單的解釋一下相關知識點:

ensure_ascii:默認值True,如果dict內含有non-ASCII的字符,則會類似\uXXXX的顯示數據,設置成False后,就能正常顯示。

indent:應該是一個非負的整型,如果是0,或者為空,則一行顯示數據,否則會換行且按照indent的數量顯示前面的空白,這樣打印出來的json數據也叫pretty-printed json。

separators:分隔符,實際上是(item_separator, dict_separator)的一個元組,默認的就是(‘,’,’:’);這表示dictionary內keys之間用“,”隔開,而KEY和value之間用“:”隔開。

encoding:默認是UTF-8,設置json數據的編碼方式。

sort_keys:將數據根據keys的值進行排序。

執行測試

方法已經封裝好,既然接口數據有了,請求方法也有了,我們不妨測試一下之前封裝好的代碼,用實際行動來檢驗一下:

# get請求

if __name__ == '__main__':

url = "http://httpbin.org/get"

ir = ApiRequest()

result = ir.run_method(url=url,method='get')

print(result)

運行結果:

# post請求

url2 = "http://httpbin.org/post"

ir2 = ApiRequest()

data = {'id': '測試'}

result = ir2.run_method(url=url2,method='post',data=data)

print(result)

運行結果:

有些細心人可能有疑問,這里沒有使用excel中的接口測試數據,下面我就演示一下,調用excel中維護的接口測試數據,先維護數據:

from basic_method import get_excelData

get_data = get_excelData.getData()

print("獲取是否運行key: ",get_data.get_is_run(1))

print("獲取接口url: ",get_data.get_url(1))

print("獲取接口請求方法: ",get_data.get_method(1))

print("獲取接口請求數據: ",get_data.get_data(1))

url2 = get_data.get_url(1)

method = get_data.get_method(1)

data = get_data.get_data(1)

ir2 = ApiRequest()

result = ir2.run_method(url=url2,method=method,data=data)

print(result)

運行結果:

這次就是調用過程是從excel拿的數據,并且通過封裝好的方法請求模擬請求接口。證明此前封裝好的代碼是可以正常運行。

這里獻上另一種請求方法:

總結

上面對接口請求方法封裝已經完成了,并且將之前寫的封裝代碼一起使用,實現了自動化測試框架中核心的代碼,對自動化測試,測試開發感興趣的朋友,同學可以加入QQ測試開發交流群:696400122。相互學習,共同進步!

總結

以上是生活随笔為你收集整理的python 接口测试 url_Python 接口测试之接口请求方法封装的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。