Python+Requests接口自動化測試之 引入Pytest框架

  前段時間公司業務需要,準備把之前的接口自動化的腳本整理一下,把之前的冗長的代碼整理成一個個的用例,這樣代碼的可讀性就變得高了,而且相應的維護的成本降低。我們用到的是Pytest框架,關於框架的介紹及優點我這邊就不贅述了,這邊直接從實際的框架運用着手,相信大家對Pytest框架有個更加深刻的瞭解。

  環境搭建

  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

  #服務器請求是否失敗

  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數量是否爲9

  def test_feedcount(feed_detail):

  assert len(feed_detail) == 9

  #檢查重複內容

  def test_repeatcontent(feeds_get_pidlist):

  assert len(feeds_get_pidlist) == len(set(feeds_get_pidlist))

  #檢查重複專欄

  def test_repeatuser(feeds_get_column):

  assert len(feeds_get_column) == len(set(feeds_get_column))

  #檢查重複用戶

  def test_repeatuser(feeds_get_userid):

  assert len(feeds_get_userid) == len(set(feeds_get_userid))

  #檢查文章視頻是否爲三個月之內的

  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

  大家可以發現是不是每一條自動化的case都可以寫成一條assert語句,這樣自動化代碼的可讀性是不是提高了而且可維護性也提高了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章