您好,登錄后才能下訂單哦!
前段時(shí)間公司業(yè)務(wù)需要,準(zhǔn)備把之前的接口自動(dòng)化的腳本整理一下,把之前的冗長的代碼整理成一個(gè)個(gè)的用例,這樣代碼的可讀性就變得高了,而且相應(yīng)的維護(hù)的成本降低。我們用到的是Pytest框架,關(guān)于框架的介紹及優(yōu)點(diǎn)我這邊就不贅述了,這邊直接從實(shí)際的框架運(yùn)用著手,相信大家對(duì)Pytest框架有個(gè)更加深刻的了解。
環(huán)境搭建
pip install pytest
安裝好了后直接
pytest version
實(shí)際運(yùn)用
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ù)器請(qǐng)求是否失敗
def test_feeds_connect(feeds_get):
assert feeds_get
#賬戶ID是否有推送
def test_DeviceId(feeds_get):
assert feeds_get['msg'] != 'recom result is not enough'
#檢查本次請(qǐng)求的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))
#檢查文章視頻是否為三個(gè)月之內(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)是不是每一條自動(dòng)化的case都可以寫成一條assert語句,這樣自動(dòng)化代碼的可讀性是不是提高了而且可維護(hù)性也提高了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。