五、Python編寫介面自動化
1. 總結結果
2. 詳細程式碼:
# -*- coding: utf-8 -*- import requests import json class web_requests(object): def __init__(self): pass def Interface(self,Interface_path,**My_data): url = "http://testdj.XXXXXX.com:8378/%s" %(Interface_path) # 測試的介面url headers = {"Host": "testdj.XXXXXX.com:8378", "Accept": "application/json, text/plain, */*", "Referer": "http://testdj.XXXXXX.com:8280/", "Accept-Language": "zh-CN,zh;q=0.8", "Origin": "http://testdj.XXXXXX.com:8280", "Accept-Encoding": "gzip, deflate", "Accept": "application/json, text/plain, */*", "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36"} #訊息頭 #data1 = {"beginDate": "2018-01-01", "endDate": "2018-04-01"} # 介面傳送的引數data = My_data # 介面傳送的引數 r = requests.get(url=url, json=data, headers=headers) # 傳送請求 # return r.json print (r.text) # 獲取響應報文 print (r.status_code) a = web_requests() a.Interface('monitor/sxsb-sxzl',beginDate="2018-01-01", endDate="2018-04-01")
3. 程式碼說明:
1、介面的URL:
url = "http://testdj.XXXXXX.com:8378/%s"%(Interface_path)
2、請求訊息頭:
headers = {"Host": "testdj.XXXXXX.com:8378",
"Accept": "application/json,text/plain, */*",
"Referer": "http://testdj.XXXXXX.com:8280/",
"Accept-Language": "zh-CN,zh;q=0.8",
"Origin": "http://testdj.XXXXXX.com:8280",
"Accept-Encoding": "gzip,deflate",
"Accept": "application/json,text/plain, */*",
"User-Agent": "Mozilla/5.0(Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)Chrome/61.0.3163.79 Safari/537.36"} #訊息頭
3、介面的傳引數:
data = My_data #介面傳送的引數
注:
python傳引數的格式原本如下:
data ={"beginDate": "2018-01-01", "endDate":"2018-04-01"} # 介面傳送的引數
但為了方便給外部引用進來,做了如下特殊處理:
這裡存在多個引數
a.Interface('monitor/sxsb-sxzl',beginDate="2018-01-01",endDate="2018-04-01")
python將多個引數合併,重點是“**”
def Interface(self,Interface_path,**My_data):
呼叫時可以直接寫:
data = My_data #介面傳送的引數
相當於:data = {'beginDate':'2018-01-01', 'endDate': '2018-04-01'}
4、給伺服器發起請求:
r = requests.get(url=url, json=data, headers=headers) # 傳送請求
5、伺服器返回結果:
print (r.text) # 獲取響應報文
4. Robot引用:
(1)、py程式碼
Py檔名:Web_Interface.py
程式碼如下:
# -*- coding: utf-8 -*-
import requests
import json
class Web_Interface(object):
def __init__(self):
pass
def web_interface(self,Interface_path,**My_data):
url = "http://testdj.XXXXXX.com:8378%s" %(Interface_path)# 測試的介面url
headers = {"Host": "testdj.XXXXXX.com:8378",
"Accept":"application/json, text/plain, */*",
"Referer":"http://testdj.XXXXXX.com:8280/",
"Accept-Language": "zh-CN,zh;q=0.8",
"Origin":"http://testdj.XXXXXX.com:8280",
"Accept-Encoding": "gzip, deflate",
"Accept":"application/json, text/plain, */*",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, likeGecko) Chrome/61.0.3163.79 Safari/537.36"} #訊息頭
#data1 = {"beginDate": "2018-01-01","endDate": "2018-04-01"} # 介面傳送的引數
data = My_data # 介面傳送的引數
r = requests.get(url=url, json=data, headers=headers) # 傳送請求
#print (r.text) # 獲取響應報文
#print (r.status_code) # 獲取結果碼
return json.loads(r.text)
(2)、引用py指令碼
(3)、robot使用
(4)輸出結果
5. 參見問題:
(1)、python介面能返回結果,但在獲取結果裡的data值卻報錯了(string indices must be integers)
原因是介面返回結果沒有轉換轉成obj
原始碼:
return r.text
用json.loads 修復如下:
return json.loads(r.text)相關推薦
五、Python編寫介面自動化
1. 總結結果2. 詳細程式碼:# -*- coding: utf-8 -*- import requests import json class web_requests(object): def __init__(self): p
Python基礎:五、Python程序的編寫方式
python代碼 兩種 cmd 文件 使用 通過 utf-8 註意 python基礎 python程序有兩種編寫方式: 1. 進入cmd控制臺(linux終端),輸入python進入編輯模式,這時候我們可以直接編寫python程序 2. 也可以在.py文件中編寫pyth
十五、python開發之網絡通信socket
bin PE 本機 線程 seq read sock_raw get HR 一、客戶端: 1、導入socket庫 import socket 2、指定協議類型 client = socket.socket( ) #不填默認是socket.A
三十五、python學習之Flask框架(七)資料庫:Flask對資料庫的基本操作、常見關係模板、資料庫遷移、綜合案例:圖書管理
補充: 使用SQL_Alchemy定義一個模型類,不可以不指定primary_key=True建立表. 一、資料庫基本操作 1. 資料庫的基本操作(CRUD): 在Flask-SQLAlchemy中,插入、修改、刪除操作,均由資料庫會話管理。
二十五、python學習之前端(八): JQuery高階
一、事假冒泡: 1. 什麼是事件冒泡 : 事件是可以傳播的; 事件冒泡不僅存在於JQ,原生JS也是存在事件冒泡的; 事件冒泡就是傳播的一種形式; 事件的傳播形式: 冒泡和捕獲 ; 事件冒泡:子元素的時間被處罰, 父盒子元素的同類事件也會被觸發。大多
python+requests介面自動化--請求方法封裝
1 import requests 2 from common.logger import Log 3 from common import cof 4 from common import base 5 6 7 class MyHttpservice(object): 8 9
Python-requests介面自動化小記
之前用過Jmeter和Postman做http介面請求,因工作需要需用程式碼自動化跑覆蓋,我用的是python語言;經過快2周的實踐,已經基本可以實現介面自動化,現將使用過程中遇到的問題和大家分享下。 1、請求https安全
python--utp介面自動化測試框架
測試套件:testsuite 多個用例放在一起 unittest 1、函式名必須是test開頭,unittest才會幫你執行 2、用例執行的順序是按照函式的首字母排序的,a-z te
十五、python學習之MySQL資料庫(二):資料庫的操作
一、資料庫的操作: 1.資料庫操作的概述: 在資料庫操作中,基本操作都是圍繞增刪改查來操作。簡稱CRUD C Create 建立 R Read/Retrieve 查詢 U Update 修改 D Delete 刪除 2.資料庫操作 在數操作資料庫時,所有的資料
【selenim3+Python】介面自動化測試教程
一、開啟瀏覽器 selenium3支援基本上目前市面上最常見的幾種瀏覽器,本文只寫其中的chrome、firefox和ie的相關操作; 1、chrome瀏覽器 (1)、chromeDriver獲取 chromeDriver獲取地址為:http://chromed
python-----編寫介面,使用postman與soapiu訪問呼叫
例項:自己寫一個註冊介面 輸入使用者名稱、密碼、驗證碼,當滿足註冊將密碼進行md5加密。 場景 介面返回引數 提示 使用者名稱存在 2000 exit 使用者已存在 密碼與驗證碼
五、python學習筆記:記憶體管理
變數和記憶體管理的 細節, 包括: 變數無須事先宣告 變數無須指定型別 程式設計師不用關心記憶體管理 變數名會被“回收” del 語句能夠直接釋放資源 1、變數定義 變數只有被建立和賦值後才能被使用 2、動態型別 還要注意一點,Python 中不但變數名無需事
怎樣用開源自動化測試平臺LuckyFrame編寫介面自動化測試用例
該自動化平臺分成兩部分,web端負責測試用例編寫及用例排程等.客戶端用於具體執行用例. 客戶端和伺服器端以及mysql資料庫的安裝和配置請參考官網 http://www.luckyframe.cn/book/yhsc/syschyy-24.html 一、客戶端的配置工作 1.客戶
python request 介面自動化設計
設計思路: * 資料驅動 * 測試結果以郵件形式傳送 * 保留測試過程的用例和請求結果到日誌,方便查問題 設計如下: * bin * casehandler 讀取txt或者xls檔案中的用例,一個檔案是一個用例,返回Case()例項 * mailhandl
四十五、python學習之Djnago(DRF框架一):介紹及環境搭建
引入DjangoRESTframework 一、Web應用模式: 在開發Web應用中,有兩種應用模式: 前後端不分離 前後端分離 1.前後端不分離: 在前後端不分離的應用模式中,前端頁面看到的效果都是有後端控制的,有後端渲染頁面重定向,也就是後端需要控
python+requests介面自動化測試實戰
python+request+unittest+HTMLTestRunner 首先介紹一下python的requests模組: requests的使用介紹:requests快速入門 環境說明: 1.WIN 7, 64位 2.Python3.4.3 (pip-8.1.2)
五、微信介面
在res裡邊建drawable,drawable裡邊建selector下的sel_r.xml: <?xml version="1.0" encod
python+requests介面自動化測試
轉自https://my.oschina.net/u/3041656/blog/820023 原來的web頁面功能測試轉變成介面測試,之前大多都是手工進行,利用postman和jmeter進行的介面測試,後來,組內有人講原先web自動化的測試框架移駕成介面的自動化框架,使用的是java語言,但對於一個學ja
python+requests介面自動化測試框架例項詳解教程
前段時間由於公司測試方向的轉型,由原來的web頁面功能測試轉變成介面測試,之前大多都是手工進行,利用postman和jmeter進行的介面測試,後來,組內有人講原先web自動化的測試框架移駕成介面的自動化框架,使用的是java語言,但對於一個學java,卻在學python的我來說,覺得python比起jav
五、python 缺失值處理(Imputation)
一、缺失值的處理方法 由於各種各樣的原因,真實世界中的許多資料集都包含缺失資料,這些資料經常被編碼成空格、nans或者是其他的佔位符。但是這樣的資料集並不能被scikit - learn演算法相容,因為大多數的學習演算法都會預設陣列中的元素都是數值,因此素偶有的