python读取每一行文字二十四_python接口自动化(二十四)--unittest断言——中(详解)...
簡介
上一篇通過簡單的案例給小伙伴們介紹了一下unittest斷言,這篇我們將通過結合和圍繞實際的工作來進行unittest的斷言。這里以獲取城市天氣預報的接口為例,設計了 2 個用例,一個是查詢北京的天氣,一個是查詢
南京為例,你也可以查詢別的城市的天氣預報。
接口文檔
1、在實際工作中,開發人員都會給你接口文檔方便QA測試,和其他系統的開發人員對接。接口文檔如下:
天氣預報
獲取實時天氣
請求方式:POST
請求地址:https://www.apiopen.top/weatherApi
Query參數名類型必需描述示例 e.g.citystring是城市名稱成都
返回示例:
{ "code": 200, "msg": "成功!", "data": { "yesterday": { "date": "14日星期五", "high": "高溫 7℃", "fx": "無持續風向", "low": "低溫 4℃", "fl": "", "type": "陰" }, "city": "成都", "aqi": "89", "forecast": [ { "date": "15日星期六", "high": "高溫 10℃", "fengli": "", "low": "低溫 2℃", "fengxiang": "無持續風向", "type": "多云" }, { "date": "16日星期天", "high": "高溫 15℃", "fengli": "", "low": "低溫 3℃", "fengxiang": "無持續風向", "type": "晴" }, { "date": "17日星期一", "high": "高溫 14℃", "fengli": "", "low": "低溫 5℃", "fengxiang": "無持續風向", "type": "晴" }, { "date": "18日星期二", "high": "高溫 11℃", "fengli": "", "low": "低溫 6℃", "fengxiang": "無持續風向", "type": "多云" }, { "date": "19日星期三", "high": "高溫 12℃", "fengli": "", "low": "低溫 6℃", "fengxiang": "無持續風向", "type": "多云" } ], "ganmao": "晝夜溫差較大,較易發生感冒,請適當增減衣服。體質較弱的朋友請注意防護。", "wendu": "9" } }
2、如果沒有你可以自己通過fiddler抓包獲取參數和接口URL,以及請求方式 。
設計測試用例
1、針對以上接口,設計兩個城市接口測試用例
2、運行接口用例結果
3、參考代碼
1 # coding=utf-8 2 #1.先設置編碼,utf-8可支持中英文,如上,一般放在第一行 3 4 #2.注釋:包括記錄創建時間,創建人,項目名稱。 5 ''' 6 Created on 2019-4-26 7 @author: 北京-宏哥 8 Project:學習和使用unittest框架編寫斷言-中篇 9 ''' 10 #3.導入requests和unittest模塊 11 import requests 12 import unittest 13 #4.編寫測試用例和斷言 14 class TestWeather(unittest.TestCase): 15 '''測試天氣預報接口''' # 此注釋將展示到測試報告的測試組類 16 def test_beijin_weather(self): 17 '''查詢北京天氣預報''' # 此注釋將展示到測試報告的用例標題 18 url = "https://www.apiopen.top/weatherApi" 19 20 par = { 21 "city": "北京", # 城市名 22 } 23 r = requests.post(url, params=par) 24 print(r.text) # 獲取返回的結果 25 result = r.json()['code'] #獲取狀態碼 26 print(result) 27 # 斷言 28 self.assertEqual(200, result) 29 self.assertIn('msg', r.text) 30 self.assertTrue('北京'in r.text) 31 def test_nanjin_weather(self): 32 '''查詢南京天氣預報''' # 此注釋將展示到測試報告的用例標題 33 url = "https://www.apiopen.top/weatherApi" 34 par = { 35 "city": "南京", # 城市名 36 } 37 r = requests.post(url, params=par) 38 print(r.text) # 獲取返回的結果 39 result = r.json()['code']#獲取狀態碼 40 print(result) 41 # 斷言 42 self.assertEqual(200, result) 43 self.assertIn('msg', r.text) 44 self.assertTrue('南京' in r.text) 45 46 if __name__ == "__main__": 47 unittest.main()
小結
1、實際中的接口和這個也差不多,你可以增加沒有這個城市的等等測試用例,可根據實際需要增加多個測試用例全面的斷言。
2、實際開發或者測試工作中經常用到json數據,那么就會有這樣一個需求:在谷歌瀏覽器中訪問URL地址返回的json數據能否按照json格式展現出來。
比如,在谷歌瀏覽器中訪問:http://jsonview.com/example.json
展現效果如下:
那么安裝了JsonView擴展程序后的展現效果如下:
很明顯,后者的效果更好。實現步驟如下:
1、下載JsonView擴展程序壓縮包
下載地址:https://github.com/gildas-lormeau/JSONView-for-Chrome
點擊【Clone or download】——【Download Zip】
2、解壓這個壓縮包
3、打開谷歌瀏覽器的擴展程序界面
方式一:在谷歌瀏覽器地址欄中輸入:chrome://extensions/
方式二:
4、加載JsonView擴展程序
選中開發者模式,點擊【加載正在開發的擴展程序…】,選擇插件目錄(D:\JSONView-for-Chrome-master\WebContent)
點擊確定后,就安裝上了。安裝后界面如下:
安裝完成,重新加載 (Ctrl+R)。
為了方便大家在移動端也能看到我分享的博文,現已注冊個人微信公眾號,掃描左下方二維碼即可,歡迎大家關注,有時間會及時分享相關技術博文。
為了方便大家互動討論相關技術問題,現已組建專門的微信群,由于微信群滿100,請您掃描右下方宏哥個人微信二維碼拉你進群(請務必備注:進群),歡迎大家加入這個大家庭,我們一起暢游知識的海洋。
感謝您花時間閱讀此篇文章,如果您覺得這篇文章你學到了東西也是為了犒勞下博主的碼字不易不妨打賞一下吧,讓博主能喝上一杯咖啡,在此謝過了!
如果您覺得閱讀本文對您有幫助,請點一下左下角“推薦”按鈕,您的“推薦”將是我最大的寫作動力!另外您也可以選擇a href="">【關注我】,可以很方便找到我!
本文版權歸作者和博客園共有,來源網址:
總結
以上是生活随笔為你收集整理的python读取每一行文字二十四_python接口自动化(二十四)--unittest断言——中(详解)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java.util.Properties
- 下一篇: python while九九乘法表儿歌_