前段時間公司業(yè)務(wù)需要,準備把之前的接口自動化的腳本整理一下,把之前的冗長的代碼整理成一個個的用例,這樣代碼的可讀性就變得高了,而且相應(yīng)的維護的成本降低。我們用到的是Pytest框架,關(guān)于框架的介紹及優(yōu)點我這邊就不贅述了,這邊直接從實際的框架運用著手,相信大家對Pytest框架有個更加深刻的了解。
成都創(chuàng)新互聯(lián)是一家專業(yè)提供安丘企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站建設(shè)、成都做網(wǎng)站、H5開發(fā)、小程序制作等業(yè)務(wù)。10年已為安丘眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進行中。
環(huán)境搭建
pip install pytest
安裝好了后直接
pytest version
實際運用
import pytest
import requests
import json
import time
@pytest.fixture()
def feeds_get():
feeds = requests.get(url='https://api.xxxx.xxxx.tv/feeds/feed/mix?devid=328ExxA-5954-4C29-9x48-AE0ExxB722B4&pageSize=9&uid=70192',
headers={'version': '32'})
JsonToDic = json.loads(feeds.text)
return JsonToDic
@pytest.fixture()
def feed_detail(feeds_get):
feedList = feeds_get['data']['list']
return feedList
@pytest.fixture()
def feeds_parsing_date(feed_detail):
crtTimeSortList = []
for feed_count in range(0,9):
feedList = (feed_detail[feed_count])
crtTimeSortList.append ( feedList['crtTimeSort'] )
return crtTimeSortList
@pytest.fixture()
def feeds_get_pidlist(feed_detail):
pidlist = []鄭州人流多少錢 http://www.hnmt120.com/
for feed_count in range(0,9):
feedList = (feed_detail[feed_count])
pidlist.append(feedList['pid'] )
return pidlist
@pytest.fixture()
def feeds_get_userid(feed_detail):
userid = []
for feed_count in range(0,9):
feedList = (feed_detail[feed_count])
userid.append(feedList['userid'])
return userid
@pytest.fixture()
def feeds_get_column(feed_detail):
columnlist = []
for feed_count in range(0,9):
feedList = (feed_detail[feed_count])
columnlist.append(feedList['column_id'] )
return columnlist
#服務(wù)器請求是否失敗
def test_feeds_connect(feeds_get):
assert feeds_get
#賬戶ID是否有推送
def test_DeviceId(feeds_get):
assert feeds_get['msg'] != 'recom result is not enough'
#檢查本次請求的feed數(shù)量是否為9
def test_feedcount(feed_detail):
assert len(feed_detail) == 9
#檢查重復(fù)內(nèi)容
def test_repeatcontent(feeds_get_pidlist):
assert len(feeds_get_pidlist) == len(set(feeds_get_pidlist))
#檢查重復(fù)專欄
def test_repeatuser(feeds_get_column):
assert len(feeds_get_column) == len(set(feeds_get_column))
#檢查重復(fù)用戶
def test_repeatuser(feeds_get_userid):
assert len(feeds_get_userid) == len(set(feeds_get_userid))
#檢查文章視頻是否為三個月之內(nèi)的
def test_feed_in90day(feeds_parsing_date):
now_time = time.strftime("%Y%m%d%H%M%S", time.localtime())
t = int(now_time)
pass_time = t - 300000000
for feed_count in range(0,9):
assert int(feeds_parsing_date[feed_count]) > pass_time
大家可以發(fā)現(xiàn)是不是每一條自動化的case都可以寫成一條assert語句,這樣自動化代碼的可讀性是不是提高了而且可維護性也提高了。