python介面自動化測試二:python代碼實現介面測試

來源:互聯網
上載者:User

標籤:code   需要   校正   存在   decode   xls   lse   string   www   

url = ‘介面地址‘

r = requests.get(url)           #發送get請求

print(r.status_code)            #列印狀態代碼,若有重新導向,返回的是重新導向之後的代碼

print(r.headers)                #列印返回的前序(頭部)

print(r.text)                   #查看返回結果的文本形式

r.status_code                #響應狀態代碼

r.content                  #位元組方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮

r.headers                  #以字典Object Storage Service伺服器回應標頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None

r.json()                   #Requests中內建的JSON解碼器 ,json轉成python的字典了

r.url                    # 如果沒有重新導向,就是請求的url,如果有重新導向,就是重新導向後的url
r.encoding                 # 查看返回的編碼格式
r.cookies                   # 擷取cookie
r.raw                    #返回原始響應體

r.history                      #追蹤重新導向過程(list類型)
r.text                   #字串方式的響應體,會自動根據回應標頭部的字元編碼進行解碼

r.content.decode(‘utf-8‘)      # 返回內容有亂碼時,用此方法列印
r.raise_for_status()           #失敗請求(非200響應)拋出異常

loginCookies = r.cookies:     # 擷取登入的cookies

cookies=loginCookies:         # 把擷取到的cookies傳入請求

s = requests.session()         # 可以理解為代碼的微型瀏覽器,這樣做的好處就是可以儲存cookies,不用每次都去擷取(只適用於網站是cookies這種,網站是token的沒用)

print(r.encoding)              # 查看返回的編碼格式

r.json                         # 擷取返回的json

verify=False                   # 訪問https請求時加上後不驗證認證

# open開啟excel檔案,儲存為尾碼為xls的檔案

fp = open(‘yoyo.xls‘, ‘wb‘)     # w:寫入, b:二進位的形式

 

去掉Warning警告:

import urllib3

urllib3.disable_warnings()

 

一、HTTP:

get請求:

1、get請求(無參數):

 

 

2、get請求(帶參數):

介面地址:http://japi.juhe.cn/qqevaluate/qq

返回格式:json

請求方式:get post

請求樣本:http://japi.juhe.cn/qqevaluate/qq?key=您申請的appKey&qq=295424589

介面備忘:根據傳入的參數 qq 號碼和您申請的 appKey 測試 qq 的吉凶

請求參數說明(入參) :

名稱    必填    類型      說明

key     是      string    您申請的 appKey:8dbee1fcd8627fb6699bce7b986adc45

qq      是      string    需要測試的 QQ 號碼:907728701

2.1、以url的方式傳參:

url = ‘http://japi.juhe.cn/qqevaluate/qq?key= 8dbee1fcd8627fb6699bce7b986adc45&qq=907728701‘

 

2.2、以字典的形式傳參:

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

par = {

        ‘key‘:‘ 8dbee1fcd8627fb6699bce7b986adc45‘,

        ‘qq‘:‘907728701‘

}

r = requests.get(url,params=par)                       #發送get請求

 

Post請求:

1、    post請求(無參數):

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

r = requests.post(url)                      #發送post請求

print(r.status_code)                        #列印狀態代碼

print(r.headers)                            #列印返回的前序(頭部)

print(r.text)                               #查看返回結果的文本形式(body部分)

 

2、    post請求(有參數):

2.1、以url的方式傳參:

url = ‘http://japi.juhe.cn/qqevaluate/qq?key= 8dbee1fcd8627fb6699bce7b986adc45&qq=907728701‘

r = requests.post(url)            #發送post請求

 

2.2、以字典的形式傳參:

url = ‘http://japi.juhe.cn/qqevaluate/qq‘

par = {

        ‘key‘:‘8dbee1fcd8627fb6699bce7b986adc45‘,

        ‘qq‘:‘907728701‘

}

r = requests.post(url,params=par)            #發送get請求

 

二、HTTPS:

1、get:

url = ‘https://www.juhe.cn/docs/api/id/39‘

r = requests.get(url)                       #發送get請求

print(r.status_code)                        #列印狀態代碼

print(r.headers)                            #列印返回的前序(頭部)

print(r.text)                               #查看返回結果的文本形式(body部分)

 

SSLError:認證問題:

方法1.檢查faddler是否關閉,關閉後,訪問成功:

 

方法2.請求參數後加上:verify=False

verify預設為True,此時會驗證認證,改為False將不會驗證認證

 

Body部分:

Content-Type: application/x-www-form-urlencoded; charset=UTF-8:傳data

Content-Type: application/json:傳json

 

 

把返回的內容解析為json格式:

前提:一定內容為json格式

若亂碼::

以content位元組流輸出,解碼成utf-8:

print(r.encoding)   # 查看返回的編碼格式:

 

去掉Warning警告:

import urllib3

urllib3.disable_warnings()

 

 

 

錯誤處理:

403:拒絕或者禁止訪問:須偽裝頭部(頭部詳情根據介面文檔)

 

1、伺服器識別出為代碼訪問:

1.1.代碼訪問的頭部:User-Agent為python

 

1.2.瀏覽器訪問的頭部:User-Agent為瀏覽器

 

1.3.在頭部加上User-Agent:

 

2、偽裝頭部後仍然403:伺服器校正Cookic              (Cookic有時效性)

 

2.1.代碼訪問時沒有加Cookic

 

 

2.2.瀏覽器訪問時有Cookic

 

2.3.在頭部加上Cookic訪問成功

 

 

python介面自動化測試二:python代碼實現介面測試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.