python--介面自動化鑑權例項
第一大題:
寫一個類,有一個http_request函式,能夠完成http的get以及post請求,url和param作為這個函式的引數。
難點:考慮如果有cookie的話怎麼完成請求?因為登入與充值有關聯。
驗證:建立例項,完成登入--->充值請求。
登入:http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/login
引數:{"mobilephone":"13500000000","pwd":"123456"}
充值:http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/recharge
引數:{"mobilephone":"13500000000","amount":"100"}
#http_request_1
#第一種解法:設定全域性變數:
import requests
COOKIES=None#全域性變數
#登入成功之後才會產生cookie
class HttpRequest:
def http_request(self,url,params,method):
global COOKIES#更改cookie 全域性變數
if method.upper()=='GET':
res=requests.get(url,params,cookies=COOKIES)
elif method.upper()=='POST':
res=requests.post(url,params,cookies=COOKIES)
print("產生的cookie",res.cookies)
print("目前cookie的值",COOKIES)
if res.cookies!={}:#cookies不為空的時候 我就替換全域性變數
COOKIES=res.cookies#賦值運算
print(res.json())
#因為HTTP請求是無狀態的,所以我們要利用cookies
if __name__ == '__main__':
t=HttpRequest()
login='http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/login'
login_data={"mobilephone":"13500000000","pwd":"123456"}
re_url='http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/recharge'
re_data={"mobilephone":"13500000000","amount":"100"}
t.http_request(login,login_data)#登入
print("結束登入")
t.http_request(re_url,re_data)#充值
print("結束充值")
#第二種解法:
import requests
from demo.save_value import SaveValue
object=SaveValue()
class HttpRequest:
def http_request(self,url,params):
res=requests.get(url,params,cookies=object.COOKIES)
print("產生的cookie",res.cookies)
if res.cookies!={}:#cookies不為空時,替換全域性變數
setattr(object,'COOKIES',res.cookies)
print(res.json())
if __name__ == '__main__':
t=HttpRequest()
login='http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/login'
login_data={"mobilephone":"13500000000","pwd":"123456"}
re_url='http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/recharge'
re_data={"mobilephone":"13500000000","amount":"100"}
t.http_request(login,login_data)#登入
t.http_request(re_url,re_data)#充值
#save_value.py
class SaveValue:
COOKIES=None
第二大題:
1:把登入和充值的請求引數放到TXT裡面,資料如下:
登入:http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/login
引數:{"mobilephone":"13500000000","pwd":"123456"}
充值:http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/recharge
引數:{"mobilephone":"13500000000","amount":"100"}
存到TXT裡面格式如下:
#data_test_1.txt
url:http://xxx.xxx.xxx.xxx:8080/futureloan/mvc/api/member/login,mobilephone:13500000000,pwd:123456,method:get
url:http://xxx.xxx.xxx:8080/futureloan/mvc/api/member/recharge,mobilephone:13500000000,amount:100,method:post
作業要求:利用get_data.py中的類GetData從txt裡面讀取資料的類,完成測試資料的讀取。
#get_data.py
class GetData:
def get_data(self,file_path):
file=open(file_path)
all_lines=file.readlines()
# print(all_lines)
list_1=[]
for one_line in all_lines:
split_data=one_line.strip('\n').split(',')
dict_1={}
for item in split_data:
item_split=item.split(':',1)
dict_1[item_split[0]]=item_split[1]#把值新增到字典裡面去
list_1.append(dict_1)
return list_1
新建一個py檔案,引入第一大題,完成HTTP請求類,以及第二大題的讀取資料類,建立例項,完成登入和充值請求。
#run.py
from demo.http_request_1 import HttpRequest
from demo.get_data import GetData
t=HttpRequest()
test_data=GetData().get_data('test_data.txt')
print(test_data)
for item in test_data:
print("遍歷取的資料",item)
method=item['method']
item.pop('method')
url=item['url']
item.pop('url')
t.http_request(url,item,method)
相關文章
- Java語言搭建介面自動化框架學習八(鑑權)Java框架
- python3+requests+unittest介面自動化例項講解Python
- restful風格請求,基於token鑑權例項REST
- # RESTful登入(基於token鑑權)的設計例項REST
- 【python介面自動化】- 正則用例引數化Python
- 關於python呼叫zabbix api介面的自動化例項 [結合saltstack]薦PythonAPI
- 介面自動化用例設計
- 介面到底能不能例項化
- Httpclient 介面自動化HTTPclient
- 全自動化介面
- 介面自動化與ui自動化區別UI
- 自動重新啟動oracle例項 for windowsOracleWindows
- Java介面為什麼不能例項化Java
- C# Winform程式介面優化例項C#ORM優化
- 傳真文件自動化處理的應用例項
- python介面自動化(三十三)-python自動發郵件總結及例項說明番外篇下(詳解)Python
- 介面自動化測試
- python 介面自動化Python
- 配置單例項自動重啟單例
- java介面例項Java
- 介面自動化之介面整理(抓包)
- 自動化專項應當研究的是什麼,請教一個落地方向 (介面自動化)
- JMeter 介面自動化測試(手工轉自動化指令碼)JMeter指令碼
- python自動化指令碼例項100條-自動化運維基礎例項解析-Python批量登入到伺服器執行任務...Python指令碼運維伺服器
- 啟動CRS單例項、設定自動啟動單例
- python 介面自動化測試Python
- 介面自動化大牛養成記
- 三.介面自動化專案1
- 介面自動化測試框架 HttpFPT框架HTTP
- 二、介面自動化測試(2)
- protobuf 介面自動化測試摸索
- Python--物件導向程式設計--時鐘例項開發Python物件程式設計
- 自動的自動化:EvoSuite 自動生成JUnit的測試用例UI
- XML節點自動生成簡單例項XML單例
- Java技術分享:Lambda表示式之介面例項化Java
- 基於LangChain手工測試用例轉介面自動化測試生成工具LangChain
- 「乾貨」介面自動化實踐:高效智慧介面場景自動巡檢方案
- Oracle11g RAC在例項關閉後自動在啟動例項上歸檔Oracle