<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在前文說過,如果想要更好的做介面測試,我們要利用自己的程式碼基礎與程式碼優勢,所以該章節不會再介紹商業化的、通用的介面測試工具,重點介紹如何通過 python 編碼來實現我們的介面測試以及通過 Pycharm 的實際應用編寫一個簡單介面測試。
應為從最開始寫這個 Python全棧系列 一直使用的就是 python3.x (這裡我使用的是 python 3.8 版本) ,實際上 python 3 本身自帶的就有能夠實現傳送請求的模組:
以上兩個都可以實現傳送 http 請求,也就是說它們都可以幫助我們完成介面測試。不過相對於來說它們更偏向於底層,需要更多的定義,所以在使用上面比較的麻煩;
在實際的工作中,使用的更多的反而是第三方庫 resuests ,為什麼會選擇使用 resuests ?那是因為它是經過二次整合、二次封裝的,它能夠讓我們傳送請求變得更簡單,支援編碼、解碼、對談保持、長連結、可以載入 Header等等等等。
這也是我們使用 Python 做介面測試的一個首選方式,接下來就學習一下如何安裝並使用 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 | 各監測點的資料,如果欄位返回"—",可能是該監測點未監測這項資料或者有延遲 |
實現傳送請求的三步:
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 方法是一致的,其實想要測試個簡單的介面其實一點都不復雜… 對不對? 再接下來就準備開始一套完整的測試自動化測試的實現吧
以上就是Python自動化實戰之介面請求的實現的詳細內容,更多關於Python介面請求的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45