国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python 接口自動化 —— requests框架

這篇具有很好參考價值的文章主要介紹了Python 接口自動化 —— requests框架。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.前言

Python內(nèi)置的urllib模塊,也可以用于訪問網(wǎng)絡(luò)資源。但是,它用起來比較麻煩,而且,缺少很多實用的高級功能。因此我們使用 requests 模塊進行進行接口測試。

requests官方文檔資料地址:http://cn.python-requests.org/zh_CN/latest/

2.環(huán)境安裝

cmd(win+R快捷鍵)輸入:

 pip install requests -i https://pypi.douban.com/simple

提示以下信息表示安裝成功。

3.requests發(fā)送請求

3.1 get請求無參數(shù)param

  1. 將安裝好的requests模塊導(dǎo)入后,通過GET訪問一個URL地址的網(wǎng)頁頁面
  2. 這里的 r 也就是 response,請求后的返回值,可以調(diào)用 response 里的 status_code 方法查看狀態(tài)碼
  3. 狀態(tài)碼 200 只能說明接口請求發(fā)送成功了,并不能說明功能一定是 OK 的,一般要查看響應(yīng)的內(nèi)容,r.text 返回文本信
# -*- coding:utf-8 -*-

# 導(dǎo)入 requests 模塊
import requests
# 定義 url
url = 'http://www.cnblogs.com/wwho'
# 請求博客園
r = requests.get(url=url)
# 打印狀態(tài)碼
print(r.status_code)
# 打印文本
print(r.text)

3.2 get請求有參數(shù)param

url地址為:http://apis.juhe.cn/simpleWeather/query?city=深圳&key=xxx
參數(shù):city=深圳&key=xxx

可以以字典的形式傳參:
{"city": "深圳", "key": "xxx"}

多個參數(shù)格式:

 {"key1": "value1", "key2": "value2", "key3": "value3"}
 

(r.url獲取當前url地址,可以檢查是否傳參成功)

代碼:

# -*- coding:utf-8 -*-

# 導(dǎo)入 requests 模塊
import requests

# 定義 url
url = 'http://apis.juhe.cn/simpleWeather/query'
par = {"city": "深圳",
       "key": "4611a7abae4afe573fd7ca751d9d423a"}

result = requests.get(url=url, params=par)
# 打印文本
print(result.text)

3.3定制請求頭

一個完整的get請求,應(yīng)該包括請求行(url) 和請求頭(headers)、請求參數(shù)(params),
什么時候要加請求頭呢,如果你不確定的話最好加上去。

3.4 response返回信息

response返回信息

-- r.status_code   # 響應(yīng)狀態(tài)碼

-- r.content   # 字節(jié)方式的響應(yīng)體,會自動為你解碼 gzip 和deflate 壓縮

-- r.headers  # 以字典對象存儲服務(wù)器響應(yīng)頭,但是這個字典比較特殊,字典鍵不區(qū)分大小寫,若鍵不存在則返回 None

-- r.json()  # Requests 中內(nèi)置的 JSON 解碼器,requests的方便之處還在于,對于特定類型的響應(yīng),例如JSON,可以直接獲取

-- r.url  # 獲取 url

-- r.encoding  # 編碼格式,requests自動檢測編碼

-- r.cookies  # 獲取 cookie

-- r.raw  # 返回原始響應(yīng)體-- r.text #字符串方式的響應(yīng)體,會自動根據(jù)響應(yīng)頭部的字符編碼進行解碼

-- r.raise_for_status()  # 失敗請求(非 200 響應(yīng))拋出異常

以上就是requests模塊主要的返回格式。

3.5 post請求

講post請求之前 先講一下 requests.session()
requests.session() 獲取 requests的session對象,簡單來說就相當于一個微型瀏覽器,能自動保持登錄態(tài)。所以一般對于 cookie – session 保持登錄態(tài)的系統(tǒng)就可以使用
requests.session()

使用方法:后續(xù)的請求都使用session即可

Post請求首先要注意的就是body的數(shù)據(jù)類型

常見的有四種類型,但是不止四種:

  1. 第一種:application/json: {“key1“:”value1”,“keyt2":“value2"}
  2. 第二種:application/x-www-form-urlencoded:name1= value1&name2=value2
  3. 第三種:multipart/form-data:這一種是表單格式的
    (文件上傳,圖片上傳等混合式)
  4. 第四種:text/xml

examples.getStateName

Body為x-www-form-urlencoded類型

怎么知道body是什么類型?

  1. 接口文檔有說明
  2. 自己抓包看

直接通過抓包就可以看出post請求的數(shù)據(jù)類型,如下圖就是x-www-form-urlencoded類型

傳data參數(shù)就行(無需轉(zhuǎn)json)

代碼:

# -*- coding:utf-8 -*-
# @File:sms.py
import requests
host = 'http://127.0.0.1:8002'
session = requests.session()  # 相當于微型瀏覽器,保持登錄態(tài)
url = host + '/api/mgr/signin'  # 定義url
body = {
    "username": "byhy",
    "password": "88888888"
}
resp = session.post(url=url, data=body)

status_code=resp.status_code  #獲取響應(yīng)狀態(tài)碼
print('響應(yīng)狀態(tài)碼:{}'.format(status_code))

text=resp.text  # 獲取響應(yīng)內(nèi)容,結(jié)果類型是字符串
print('響應(yīng)內(nèi)容:{}'.format(text))

json=resp.json()  # 獲取響應(yīng)內(nèi)容,結(jié)果是字典類型
print('響應(yīng)內(nèi)容:{}'.format(json))

resp_headers=resp.headers  # 獲取響應(yīng)headers
print('響應(yīng)header:{}'.format(resp_headers))

Body為json類型

?json=body: 這個表示自動將python里面的字典,轉(zhuǎn)化為json格式參數(shù)了。關(guān)于字典和json的種種關(guān)系,后面專門寫篇文章講一下。

代碼:

 # -*- coding:utf-8 -*-
import requests
host = 'http://127.0.0.1:8002'
session = requests.session()  # 相當于微型瀏覽器,保持登錄態(tài)
url = host + '/api/mgr/signin'  # 定義登錄的 url
body = {
    "username": "byhy",
    "password": "88888888"
}

resp = session.post(url=url, data=body)  # 發(fā)送登錄請求

url_add_customer = host + '/api/mgr/customers'  # 新建客戶的 url
body = {
    "action":"add_customer",
    "data":{
        "name":"tester",
        "phonenumber":"13345679934",
        "address":"深圳市南山區(qū)"
    }
}
resp = session.post(url=url_add_customer, json=body)
print(resp.text)  # 打印響應(yīng)文本

3.6 put請求

put 請求的接口做法跟 post請求的差不多的,只是把post 請求改為 put請求。一樣要看請求的格式。如果是 json 格式,也是用json接,F(xiàn)orm格式用data接。

代碼:

# -*- coding:utf-8 -*-
# @Time:2021/4/16 9:54
# @File:sms.py
import requests
host = 'http://127.0.0.1:8002'
session = requests.session()  # 相當于微型瀏覽器,保持登錄態(tài)
url = host + '/api/mgr/signin'  # 定義登錄的 url
body = {
    "username": "byhy",
    "password": "88888888"
}
resp = session.post(url=url, data=body)

url_modify_customer = host + '/api/mgr/customers'  # 修改客戶的 url
body = {
    "action":"modify_customer",
    "id": 52,
    "newdata":{
        "name":"深圳市橋北醫(yī)院",
        "phonenumber":"13345678888",
        "address":"深圳市中醫(yī)院"
    }
}
resp = session.put(url=url_modify_customer, json=body)
print(resp.text)  # 打印修改客戶接口響應(yīng)的文本

3.7 delete請求

delete 請求的接口做法跟 post請求的差不多的,只是把post 請求改為 delete請求。一樣要看請求的格式。如果是 json 格式,也是用json接,F(xiàn)orm格式用data接。

代碼:

# -*- coding:utf-8 -*-
# @Time:2021/4/16 9:54
# @File:sms.py
import requests
host = 'http://127.0.0.1:8002'
session = requests.session()  # 相當于微型瀏覽器,保持登錄態(tài)
url = host + '/api/mgr/signin'  # 定義登錄的 url
body = {
    "username": "byhy",
    "password": "88888888"
}
resp = session.post(url=url, data=body)

url_delete_customer = host + '/api/mgr/customers'  # 刪除客戶的 url
body = {
    "action":"del_customer",
    "id": 52
}
resp = session.delete(url=url_delete_customer, json=body)
print(resp.text)  # 打印刪除客戶接口響應(yīng)的文本

總結(jié):

requests庫的請求方法里參數(shù)眾多,所以簡單總結(jié)一下:

  1. get請求帶參數(shù)就用params=params
  2. post請求是form格式就用data=data
  3. post請求是json類型參數(shù)就用json=json
  4. 請求頭信息header就用headers=headers

最后如果你想學(xué)習自動化測試和需要軟件測試資料,歡迎加入筆者的交流群:320231853,里面會有很多測試資源和大佬答疑解惑,我們一起交流一起學(xué)習!

搜索

復(fù)制文章來源地址http://www.zghlxwxcb.cn/news/detail-711156.html

到了這里,關(guān)于Python 接口自動化 —— requests框架的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 一個簡單的接口自動化測試框架:Python+Requests+Pytest+Allure

    一個簡單的接口自動化測試框架:Python+Requests+Pytest+Allure

    project:api_test ——api_keyword ————api_key.py:接口驅(qū)動類 ——case ————test_cases.py:測試套件和測試用例 ——report_allure( 無需創(chuàng)建 ):allure報告 ——result( 無需創(chuàng)建 ):測試用例運行結(jié)果 ——VAR ————VAR.py:常量類 conftest.py:項目級別fixture main.py:主函數(shù)

    2024年02月03日
    瀏覽(95)
  • (Python)Requests+Pytest+Allure接口自動化測試框架從0到1搭建

    (Python)Requests+Pytest+Allure接口自動化測試框架從0到1搭建

    前面,已經(jīng)學(xué)習了如何用SpringBoot寫接口以及與Mysql數(shù)據(jù)庫進行交互,具體可查閱下面的這篇博客,今天學(xué)習一下基于Python的接口自動化測試框架的搭建,主要包括以下內(nèi)容:利用request庫發(fā)送請求,請求數(shù)據(jù)參數(shù)化處理,還涉及到數(shù)據(jù)庫(Mysql+MongDB)方面的交互,包括如何取數(shù)

    2024年02月13日
    瀏覽(722)
  • Python+Requests+Pytest+Excel+Allure 接口自動化測試項目實戰(zhàn)【框架之間的對比】

    Python+Requests+Pytest+Excel+Allure 接口自動化測試項目實戰(zhàn)【框架之間的對比】

    ? ? ? ? --------UnitTest框架和PyTest框架的簡單認識對比與項目實戰(zhàn)-------- 定義: Unittest是Python標準庫中自帶的單元測試框架,Unittest有時候也被稱為PyUnit,就像JUnit是Java語言的標準單元測試框架一樣,Unittest則是Python語言的標準單元測試框架。 Pytest是Python的另一個第三方單元測

    2024年02月09日
    瀏覽(94)
  • 接口自動化框架(Pytest+request+Allure)

    接口自動化框架(Pytest+request+Allure)

    接口自動化是指模擬程序接口層面的自動化,由于接口不易變更,維護成本更小,所以深受各大公司的喜愛。 接口自動化包含2個部分,功能性的接口自動化測試和并發(fā)接口自動化測試。 本次文章著重介紹第一種,功能性的接口自動化框架。 環(huán)境:Mac、Python 3,Pytest,Allure,

    2024年03月14日
    瀏覽(233)
  • 接口自動化測試:Requests統(tǒng)一請求封裝(框架的封裝)

    一、為什么要做統(tǒng)一請求封裝? 1. 去除很多重復(fù)的、冗余的代碼; 2.? 異常處理和日志監(jiān)控: 設(shè)置統(tǒng)一的公共參數(shù)、統(tǒng)一的文件處理、統(tǒng)一的異常處理、統(tǒng)一的日志監(jiān)控、統(tǒng)一的用例斷言等; 3. 跨py文件實現(xiàn)通過一個session自動管理有cookie關(guān)聯(lián)的接口; ??????????????

    2024年01月24日
    瀏覽(26)
  • Python+Requests實現(xiàn)接口自動化測試

    Python+Requests實現(xiàn)接口自動化測試

    一般對于自動化的理解,有兩種方式的自動化。 第一,不需要寫代碼,完全由工具實現(xiàn),這種方式的工具一般是公司自己研發(fā)的,方便黑盒測試人員使用。這種工具的特點是學(xué)習成本低,方便使用,但是通用性不強,也就是換了一家公司,就很有可能無法使用之前的工具。

    2024年01月16日
    瀏覽(22)
  • Python接口自動化之request請求封裝

    Python接口自動化之request請求封裝

    我們在做自動化測試的時候,大家都是希望自己寫的代碼越簡潔越好,代碼重復(fù)量越少越好。那么,我們可以考慮將request的請求類型(如:Get、Post、Delect請求)都封裝起來。這樣,我們在編寫用例的時候就可以直接進行請求了。 我們先來看一下Get、Post、Delect等請求的源碼,

    2024年02月13日
    瀏覽(22)
  • Python接口自動化搭建過程,含request請求封裝

    Python接口自動化搭建過程,含request請求封裝

    接口測試自動化好處 顯而易見的好處就是解放雙手??。 可以在短時間內(nèi)自動執(zhí)行大量的測試用例 通過參數(shù)化和數(shù)據(jù)驅(qū)動的方式進行測試數(shù)據(jù)的變化,提高測試覆蓋范圍 快速反饋測試執(zhí)行結(jié)果和報告 支持持續(xù)集成和持續(xù)交付的流程 使用Requests+pytest+allure搭建測試框架的目的

    2024年02月07日
    瀏覽(31)
  • 接口自動化測試:Python+Pytest+Requests+Allure

    接口自動化測試:Python+Pytest+Requests+Allure

    本項目實現(xiàn)了對Daily Cost的接口測試: Python+Requests 發(fā)送和處理HTTP協(xié)議的請求接口 Pytest 作為測試執(zhí)行器 YAML 管理測試數(shù)據(jù) Allure 來生成測試報告。 本項目是參考了pytestDemo做了自己的實現(xiàn)。 項目結(jié)構(gòu) api : 接口封裝層,如封裝HTTP接口為Python接口 commom : 從文件中讀取數(shù)據(jù)等各種

    2024年02月09日
    瀏覽(127)
  • python3+requests+unittest接口自動化測試

    python3+requests+unittest接口自動化測試

    python3 + pycharm編輯器 (該套代碼只是簡單入門,有興趣的可以不斷后期完善) (1)run.py主運行文件,運行之后可以生成相應(yīng)的測試報告,并以郵件形式發(fā)送; (2)report文件夾存放測試結(jié)果報告; (3)unit_test文件夾是存放測試用例(demo.py和test_unittest.py用例用法介紹,實際

    2024年02月09日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包