溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python+Requests接口自動(dòng)化測試之 引入Pytest框架

發(fā)布時(shí)間:2020-10-01 11:45:22 來源:網(wǎng)絡(luò) 閱讀:473 作者:ckllf 欄目:編程語言

  前段時(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ù)性也提高了。


向AI問一下細(xì)節(jié)

免責(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)容。

AI