日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Python自動化實戰之接口請求的實現_python

作者:渴望力量的哈士奇 ? 更新時間: 2022-07-28 編程語言

在前文說過,如果想要更好的做接口測試,我們要利用自己的代碼基礎與代碼優勢,所以該章節不會再介紹商業化的、通用的接口測試工具,重點介紹如何通過 python 編碼來實現我們的接口測試以及通過 Pycharm 的實際應用編寫一個簡單接口測試。

使用 Python 發送 請求

應為從最開始寫這個 Python全棧系列 一直使用的就是 python3.x (這里我使用的是 python 3.8 版本) ,實際上 python 3 本身自帶的就有能夠實現發送請求的模塊:

  • http.client
  • urllib.request

Python 發送請求的方式

以上兩個都可以實現發送 http 請求,也就是說它們都可以幫助我們完成接口測試。不過相對于來說它們更偏向于底層,需要更多的定義,所以在使用上面比較的麻煩;

在實際的工作中,使用的更多的反而是第三方庫 resuests ,為什么會選擇使用 resuests ?那是因為它是經過二次集成、二次封裝的,它能夠讓我們發送請求變得更簡單,支持編碼、解碼、會話保持、長鏈接、可以加載 Header等等等等。

這也是我們使用 Python 做接口測試的一個首選方式,接下來就學習一下如何安裝并使用 requests 庫 吧。

requests 庫的配置

安裝 Requests 庫 其實也非常的簡單,直接在 terminal 終端 執行 pip install requests , 見下圖:

也可以通過設置中心去安裝,在 Windows 系統,選擇的是 File --> Settings... ,Mac 系統選擇的是 PyCharm --> Preferences... 如下圖:

如果安裝失敗,或者安裝超時,可以換一個國內的源地址,或者考慮一下 ke xue shang wang 吧。

天行數據 - 空氣質量接口

從天行數據網站可以找到公開的 空氣質量接口,通過該接口,可以免費查詢全國各地城市的空氣質量。

API詳情如下:

接口地址:http://web.juhe.cn/environment/air/cityair

**返回格式:**json

**請求方式:**get

請求示例:http://web.juhe.cn/environment/air/cityair?city=城市名稱&key=您申請的APPKEY值

請求參數說明:

參數 是否必填項 類型 說明
city yes string 城市名稱的中文名稱或拼音,如:上海 或 shanghai
key yes string APP key (注冊之后申請該接口的使用,自動生成一個key)

返回參數說明:

名稱 類型 說明
citynow JSONObject 當前城市的空氣質量的最新結果
lastTwoWeeks JSONObject 最近幾周的空氣質量數據(4周28天)
lastMoniData JSONObject 各監測點的數據,如果字段返回"—",可能是該監測點未監測這項數據或者有延遲

利用 requests 發送查詢 空氣質量接口 請求

實現發送請求的三步:

1、組裝請求 (包含 url 、請求的參數、請求的數據、 headers、cookies等等)

2、發送請求,獲取響應

3、解析響應、獲取到想要的文本

代碼示例如下:

# coding:utf-8

import requests

'''
天行空氣質量接口:
    get:http://web.juhe.cn/environment/air/cityair?city=城市名稱&key=您申請的APPKEY值
'''

url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"	# 定義url

result = requests.get(url)		# 使用 requests 包的 get 方法獲取響應結果

print(result.text)				# 打印輸出 result 的文字解析

運行結果如下:

url 還支持 param 等一些信息,所以我們在組裝url的時候,還可以不用像上圖中那樣直接去定義;可以單獨定義一個 param ,以字典的形式寫入我們要傳入的內容。代碼示例如下:

PS:"param" 就是 get 請求方法的 "url" 問號后面的內容,示例:"http://web.juhe.cn/environment/air/cityair?city=城市名稱&key=您申請的APPKEY值"

# coding:utf-8
import requests

'''
天行空氣質量接口:
    get:http://web.juhe.cn/environment/air/cityair?city=城市名稱&key=您申請的APPKEY值
'''

# url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"
url = "http://web.juhe.cn/environment/air/cityair"		# 定義url	

param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}		# 定義param

result = requests.get(url=url, params=param)		# 使用 requests 包的 get 方法獲取響應結果

print(result.text)									# 打印輸出 result 的文字解析

運行結果如下:

接下來再嘗試一下通過 psot 方法,運行的結果會怎么樣。

代碼示例如下:

# coding:utf-8
import requests

'''
天行空氣質量接口:
    get:http://web.juhe.cn/environment/air/cityair?city=城市名稱&key=您申請的APPKEY值
'''

# url = "http://web.juhe.cn/environment/air/cityair?city=shanghai&key=98a470ea50853d3e698b2dfea09ae079"
url = "http://web.juhe.cn/environment/air/cityair"		# 定義url

# param = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}	# "param" 就是 get 請求方法的 "url" 問號后面的內容
data = {"key": "98a470ea50853d3e698b2dfea09ae079", "city": "shanghai"}		# data 的內容才是 post 方法里需要傳入的參數

# result = requests.get(url=url, params=param)
result = requests.post(url=url, data=data)			# 使用 requests 包的 post 方法獲取響應結果

print(result.text)		# 打印輸出 result 的文字解析

運行結果如下:

這里會發現結果與 get 方法是一致的,其實想要測試個簡單的接口其實一點都不復雜… 對不對? 再接下來就準備開始一套完整的測試自動化測試的實現吧?

原文鏈接:https://blog.csdn.net/weixin_42250835/article/details/125047279

欄目分類
最近更新