接口自動化的工具有很多,本文主要講述用Python+Requests實現接口自動化測試。
環境搭建
1,首先你的電腦安裝python環境,可以參考:python3安裝教程
2,安裝requests庫,你可以直接在cmd中輸入:
pip install requests
如果你電腦中沒有安裝pip,可以參考: Python pip 安裝與使用
具體操作
假設目前有一個業務場景,觀看視頻的時候或者閱讀文章的時候,每一次的刷新(即feeds流)的推薦規則是否符合需求。
在接到這樣一個測試需求的時候你需要首先了解視頻流的推薦規則是什麼(此處簡單假設規則爲每次推薦9條非重複的視頻)
知道規則後,剩下的就是設計測試策略了:
此時我們可以通過抓包工具獲取每次feeds刷新的接口以及接口返回結果:
接口返回(部分返回文本):
{
"status": 1,
"msg": "Success",
"data": {
"recomId": "7f39d8ea-9de8-4fcd-b449-96aad853cee4",
"hasMore": 1,
"list": [{
"firstTid": [10],
"crtTimeSort": 20191019170700,
"privacy": 0,
"pid": 105243,
"ptype": 4,
"userid": 6762,
"praise_num": 6011,
"mark": 0,
"view_num": 10260,
"upload_time": 1540940957000,
"channelName": "Daily Clips",
"url_cover": "products/video/20191019/b38b6d48275ca303c2608.jpeg",
"pixel": "426x240",
"subject": "My Husky Reacts to Bubble Machine Blower!",
"url_preview": "products/video/20191019/b38b6d48275ca303p8876.jpeg",
"url_video": "products/video/20191019/b38b6d48275ca303.mp4",
"video_time": 254520,
"watch_status": 0,
"friend_status": 0,
"favorite_status": 0,
"praise_status": 0,
"follow_status": 0,
"column_status": 0,
"headpic": "8283011701919403577.png",
"username": "Haley Maria"
.......
},
"tNum": 9
}
}
這個時候你就需要像你們公司的後端問一下接口返回的字段的含義了,這裏我可以直接告訴你們,接口返回裏的
"ptype": 4,
4代表視頻,5代表文章,所以大家有思路了吧?就直接判斷ptype是否等於4就等同於判斷每次feeds請求中刷到的都是視頻了。
話不多說了,直接上代碼吧
import requests
import json
for feeds_count in range(1,2):
print('-----第', feeds_count, '次請求feed-----')
feeds = requests.get(
url='https://xxx.xxx.xxx.xxx/feeds/feed/video?devid=D371DF2B-754B-44EE-A598-CD9EABC13217&pageSize=9'
'&uid=82261',
headers={'version': '35'})
JsonToDic = json.loads(feeds.text)
ptypeList = []
pidList = []
for feed_count in range(0, 9):
feedList = (JsonToDic['data']['list'][feed_count])
ptypeList.append(feedList['ptype'])
pidList.append(feedList['pid'])
# 判斷feeds中是否爲視頻
for a in ptypeList:
if a != 4:
print('這條feeds是視頻')
else:
print('這條feeds不是視頻')
# 判斷視頻是否重複
if len(pidList) == len(set(pidList)):
print('本次feeds推送無重複內容出現!')
# 判斷是否爲9條視頻
if len(JsonToDic['data']['list']) == 9:
print('本次請求到的feed數量爲 9 正確')
運行結果
好了,簡單的接口自動化實戰就到這裏,不定期更新新的case。