1. 程式人生 > >python介面測試學習(3)之http請求引數

python介面測試學習(3)之http請求引數

post請求引數常見:

1. application/json     {“key1“:”value1”,“key2":“value2"}

2. application/x-www-form-urlencoded        key1=value1&key2=value2

3. multipart/form-data        表單、檔案上傳、圖片上傳等

4. text/xml        <!--?xml version="1.0"?-->...

5. Content-Type:octets/stream

post請求的body可以沒有,以百度翻譯為例: http://fanyi.baidu.com/v2transapi

url = "http://fanyi.baidu.com/v2transapi"
param = {
"from":"zh",
    "to":"en",
    "query": "今天天氣怎麼樣"
}
req = requests.request("post", url, params=param)
print(req.status_code)
print(req.json())

https請求時 有時會報302重定向錯誤,增加verify=False

cookies

1·儲存在客戶端,一般由瀏覽器負責儲存在本地。
2·通常是加密儲存的,不過由於儲存在本地,很難保證資料不被非法訪問,並不怎麼安全,所以
cookies中不宜儲存敏感資訊,如密碼等。 3·哪些資訊需要儲存作為cookie儲存在客戶端本地,儲存多長時間,一般是由伺服器決定的,所以HTTP協議中通過伺服器返回的響應報文頭中,有一個Set-Cookie域來指示瀏覽器或者其他客戶端,在本地儲存cookie資訊。 4·cookie儲存在客戶端本地的目的是為了下次訪問網站的時候可以直接取出來,上送伺服器,所以HTTP協議中通過客戶端傳送給伺服器的請求報文頭中,有一個cookies域專門用於存放這個資訊,以便客戶端將cookie資訊傳送給伺服器。

session

1.Session,中文一般翻譯成會話2.也是一種管理使用者狀態和資訊的機制。
3.Cookies將資料儲存在客戶端本地不同的是,Session的資料儲存在伺服器端,一般放在伺服器的記憶體裡。 4.客戶端和服務端通過一個SessionID來進行溝通,為了防止不同的客戶之間出現衝突和重複,這個SessionID一般是一個較長的隨機字串(一般32或者48個位元組)。

session會話保持

1. 首先使用selenium獲取cookies

cookies = driver.get_cookies()  # 獲取瀏覽器cookies

2. 新建一個session新增之前登入後的cookies

new_session = requests.session()    # 新建session
# 新增cookiesCookieJar
req_cookie = requests.cookies.RequestsCookieJar()
for i in cookies:
req_cookie.set(i["name"], i['value'])
new_session.cookies.update(req_cookie)  # 更新sessioncookies

3.使用Beautiful Soup 4分析結果

安裝 pip install beautifulsoup4

from bs4 import BeautifulSoup
BeautifulSoup(markup, “html.parser”)
soup = BeautifulSoup(html) # 建立 beautifulsoup 物件
soups = BeautifulSoup(open('index.html'))
print(soup.prettify())   # 格式化輸出
Beautiful Soup將複雜HTML文件轉換成一個複雜的樹形結構,每個節點都是Python物件,所有物件可以歸納為4:
Tag:獲取標籤內容
NavigableString:獲取文字.string
BeautifulSoup:表示的是一個文件的全部內容,可以獲取型別name,名稱attrs
Comment:特殊型別的 NavigableString 物件
遍歷文件樹
1find_all( name , attrs , recursive , text , **kwargs )
find_all() 方法搜尋當前tag的所有tag子節點,並判斷是否符合過濾器的條件
CSS選擇器

具體可以百度搜索相關搜尋方法,推薦:https://cuiqingcai.com/1319.html

模擬在Mantis上查詢所有提交的bug摘要

req = new_session.get("http://192.168.90.248/mantis/login_page.php")
soup = BeautifulSoup(req.content, "html.parser")
bugs = soup.select('span > a')
print('bug:',bugs)

4. 儲存到本地

這個就很簡單了,一個個讀出來處理下,write到本地txt中

token校驗登入

待續

相關推薦

python介面測試學習3http請求引數

post請求引數常見:1. application/json     {“key1“:”value1”,“key2":“value2"}2. application/x-www-form-urlencoded        key1=value1&key2=value

PYTHON設計模式學習3:Singleton pattern

blog ora 參考 擁有 沒有 _屬性 ces cti ttr 參考了其他的博客:http://ghostfromheaven.iteye.com/blog/1562618 #-*- encoding=utf-8 -*- print ‘--------------

soapUI介面測試學習

SoapUI測試工具WSDL檔案生成SoapUI--介面測試工;WSDL檔案的生成方式,使用Eclipse或者PHP_ZendStudio。1. 啟動Eclipse工具匯入專案工程2. 選擇File->New->Other,選擇Web Services中WSDL,

慕課Python正則學習3

str1="imooc videonum=10000,java=100,python=45,c++=60" pa=re.compile("[\d]+") ma=pa.findall(str1) if ma:     print ma  print sum(int(x) fo

python常用演算法學習3

1,什麼是演算法的時間和空間複雜度   演算法(Algorithm)是指用來操作資料,解決程式問題的一組方法,對於同一個問題,使用不同的演算法,也許最終得到的結果是一樣的,但是在過程中消耗的資源和時間卻會有很大的區別。   那麼我們應該如何去衡量不同演算法之間的優劣呢?   主要還是從演算法所佔用的時間和空間

dubbo學習 3 啟動時檢查引數

     dubbo對於依賴的服務預設採取了啟動的時候就做服務可用性檢查,若是不可用將會丟擲異常。     dubbo文件中有以下敘述:如果你的Spring容器是懶載入的,或者通過API程式設計延遲引用服務,請關閉check,否則服務臨時不可用時,會丟擲異常,拿到null

量化交易3——urllib處理請求引數

urllib.parse.urlencode(xxxxxxx)把字典型別的資料,轉換成以&分隔的url請求引數,如: api_key=0217ef744e3eae&sign=546F59F urllib.parse.urlparse(params)把上面的引數型別資

java網路socket程式設計HTTP請求/響應報文

介紹 http報文包含請求報文和響應報文2種報文,他們都包含起始行、首部欄位、主體三部分。其中,請求報文為客戶端向伺服器端請求資源時傳送的http報文位請求包含,而響應報文為從伺服器端發往客戶端的報文

bfzwjeqjSpriNgMc學習系列3url

ref htm 學習 pri blank url lan get 系列 bfzwjeqjSpriNgMc學習系列(3)之url χ絳 bfzwjeqjSpriNgMc學習系列(3)之urlbfzwjeqjSpriNgMc學習系列(3)之url

PYTHON學習利用python進行數據分析(1)---準備工作

-- 下載 rip 安裝包 png 要求 eight code 電腦   學習一門語言就是不斷實踐,python是目前用於數據分析最流行的語言,我最近買了本書《利用python進行數據分析》(Wes McKinney著),還去圖書館借了本《Python數據分析基礎教程--N

Python爬蟲學習3

collect nbsp pri div time urlparse links ews 是否 在慕課網學習並創建了一個簡單的爬蟲包,爬取百度百科相關詞條信息 程序中會用到第三方解析包(BeautifulSoup4),Windows環境下安裝命令:pip install B

python學習3--讀取配置文件

封裝 pri 配置文件 ret charm 127.0.0.1 os.path 關於 database 一、 關於配置文件 ini文件由三部分組成,分別為節、鍵、值。 節   [section] 參數(鍵=值)   name=value 註解   

神經網路學習3————BP神經網路以及python實現

一、BP神經網路結構模型                BP演算法的基本思想是,學習過程由訊號的正向傳播和誤差的反向傳播倆個過程組成,輸入從輸入層輸入,經隱層處理以後,傳向輸出層。如果輸出層的實際輸出和期望輸出不符合

Python學習3——高階特性

1、切片 (1)後10個數:L[-10:] (2)前10個數,每兩個取一個:L[:10:2] (3)倒序:L[::-1] https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542

Python學習3—— 基本資料型別一:數字型別

基本資料型別一:數字型別 Python中最基本的資料型別之一就是int資料型別。 數字型別中有int、long 、float、complex。 python3.x之後已經不區分int和long,統一用int;python2.x還是區分的。 floa

Python入門學習3

操作列表 1.使用for迴圈來列印魔術師列表中的所有名字: magicians = ['alice','david','carolina'] for magician in magicians: print(magician) 在for迴圈中,想包含多少

介面自動化requests學習--傳送post請求

想要用requests方法呼叫post請求,首先我們要有一個post介面,我們選擇人人網登入介面來練習 1.開啟人人網的登入頁面,獲取登入的url及傳送的引數 2.獲取到登入介面url及引數後,編寫程式碼 #!usr/bin/env python #-*- codi

Python開始機器學習3:資料擬合與廣義線性迴歸

機器學習中的預測問題通常分為2類:迴歸與分類。簡單的說迴歸就是預測數值,而分類是給資料打上標籤歸類。本文講述如何用Python進行基本的資料擬合,以及如何對擬合結果的誤差進行分析。本例中使用一個2次函式加上隨機的擾動來生成500個點,然後嘗試用1、2、100次方的多項式對該資

jQuery學習筆記3Ajax下

二. 請求伺服器資料 前面介紹的是如何在HTML頁面中載入非同步資料的方法,即如何從伺服器上取得靜態的資料。但頁面的應用遠不僅侷限於此,Ajax技術最終體現在與伺服器的動態資料實現人機互動中,即客戶端傳遞帶有引數的請求,伺服器接收後,分析所傳遞來的請求,並做出相應的響應,傳送對應資料至客

python 深度學習3 -- 模型優化準則

(一)啟用函式的選擇在前面我們提到的啟用函式是 sigmoid 函式,但 sigmoid 函式有一個很大的侷限性,就是當 x 增大或減少時,它的梯度變得越來也小。如果使用梯度下降或類似的方法,就存在問題。也就是 梯度消失問題 。因為大的負數變為 0 ,大的整數變成 1 這意味