亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python+requests如何實現接口自動化

發布時間:2021-10-18 17:57:51 來源:億速云 閱讀:199 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關python+requests如何實現接口自動化的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

  利用python和第三方庫requests進行接口自動化測試(python+requests)

  第三方庫requests簡單介紹

  Requests 是用Python語言編寫,基于 urllib,采用 Apache2 Licensed 開源協議的 HTTP 庫。它比 urllib 更加方便,可以節約我們大量的工作,完全滿足 HTTP 測試需求。更重要的一點是它支持 Python3 。

  大概步驟

  Request是第三方庫,需要手動安裝:CMD安裝即可----命令:pip install requests

  在pycharm先導入requests第三方庫,代碼—import requests

  發送請求—http.get請求:requests.get(‘https://api.github.com/events’)

  發送請求—http.post請求:requests.post(‘http://httpbin.org/post’, data = {‘key’:‘value’})

  構建URL參數等

  結合Python進行返回參數進行驗證

  運行即可(請求失敗可抓包查看發送參數是否有誤)

  詳細介紹

  以下主要介紹兩種常用http請求:get和post,以及delete

  下圖為本次編寫代碼測試的用例

  具體代碼:

  第一步:安裝完后直接導入requests使用

  #導入requests

  import requests

  第二步:利用Python+requests編寫代碼構建請求

  #登錄接口--post請求

  這里需要注意,除了返回接口內容,還需要返回cookies,因為后面的操作需要用到登錄身份標識

  def Login(user,passw):

  payload = {

  'username': test,

  'password': 123456

  }

  # data參數 就是構造消息體的

  response = requests.post("http://localhost/XXXX",

  data=payload)

  # 獲取結果,返回給調用者

  retDict = response.json()

  # 在控制臺打印出結果

  print(retDict)

  #返回結果,調用時需要用到

  return retDict, response.cookies

  #添加課程接口--post請求

  這里需要注意,請求參數需要加上cookies,因為后面的操作需要用到登錄身份標識

  def add_course(action,name,desc,dis,sessionid):

  re={'action':action,

  'data':'''

  {

  "name": "%s",

  "desc": "%s",

  "display_idx": "%s"

  }

  '''% (name,desc,dis)

  }

  rs=requests.post("http://localhost/XXXX",data=re,cookies={'sessionid': sessionid})

  re=rs.json()

  print(re)

  return re

  #列出課程接口--get請求

  def list_course(sessionid):

  parm={

  'action' :'list_course',

  'pagenum':1,

  'pagesize':20

  }

  # he = {"Content-Type": "application/json"}

  rs=requests.get("http://localhost/XXXX",params=parm,cookies={'sessionid': sessionid})

  liechu=rs.json()

  print(liechu)

  return liechu

  #刪除課程接口--delete請求

  def delete_course(courseid,sessionid):

  payload = {

  'action': 'delete_course',

  'id': f'{courseid}'

  }

  response = requests.delete("http://localhost/XXXX/",

  data=payload,

  cookies={'sessionid': sessionid})

  r = response.json()

  pprint.pprint(r)

  return r無錫婦科醫院 http://www.bhnfk.com

  第三步:利用Python對requests返回的參數進行驗證

  #因為這塊代碼是新建了另一個Python文件編寫。所以這里需要先導入上面的Python文件才可以調用里面的函數

  from jiakouzudonghua import aba

  #導入隨機數函數

  import random

  # 利用寫好的登錄接口進行登錄

  # loginRet保存登錄接口返回是否登錄成功的參數,cookies保存登錄成功返回的cookie

  loginRet,cookies = aba.Login('auto','sdfsdfsdf')

  #使用if判斷是否登錄成功,可直接使用assert驗證

  if loginRet["retcode"] == 0:

  print('登錄成功')

  else:

  print('登錄失敗')

  # 記錄下sessionid

  sessionid =cookies['sessionid']

  #這里課程使用了隨機數,最大程度確保每次運行不會創建到同名課程

  classname=('課程'+str(random.randint(0,99999999999)))

  # 第一次先列出課程,為后面比較做準備

  coureListBefore = list_course(sessionid)['retlist']

  # 添加一門課程,且使用assert進行驗證,對則不會反悔信息,錯則返回錯誤信息

  retDict = add_course('classname','php語言','2',sessionid)

  assert retDict['retcode'] == 0

  #也可用if進行驗證

  # if retDict['retcode'] == 0:

  # print('添加課程成功')

  # else:

  # raise Exception('添加課程失敗')

  # 第二次再列出課程

  coureListAfter = list_course(sessionid)['retlist']

  #使用len計算添加課程前和添加課程后的課程數量,然后相減等于1則證明成功,也可直接取返回的課程數量total進行驗證

  createCount = len(coureListAfter) - len(coureListBefore)

  assert createCount == 1

  # 取出,多出來的一門課程對象

  newcourse = None

  for one in coureListAfter:

  if one not in coureListBefore:

  newcourse = one

  break

  # 檢查是否是剛剛添加的課程

  assert newcourse!=None

  assert newcourse['name']=='classname'

  assert newcourse['desc']=='php語言'

  assert newcourse['display_idx']==2

  # 清除環境操作,刪除剛剛添加的課程

  delete_course(newcourse['id'],sessionid)

  print('\n========= test case pass =============')

  得出控制臺運行結果。

感謝各位的閱讀!關于“python+requests如何實現接口自動化”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

西藏| 丹寨县| 建始县| 丹阳市| 毕节市| 安国市| 竹溪县| 镇巴县| 观塘区| 文水县| 黄大仙区| 页游| 麟游县| 中山市| 溧阳市| 德清县| 丹东市| 陈巴尔虎旗| 清涧县| 房山区| 牟定县| 塔河县| 道孚县| 静乐县| 江门市| 安西县| 康保县| 辽宁省| 岱山县| 安阳县| 开阳县| 洪雅县| 台东市| 西贡区| 茂名市| 济阳县| 南乐县| 安庆市| 伊春市| 右玉县| 永年县|