好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python 如何在測試中使用 Mock

python 如何在測試中使用 Mock

熱門標簽:正安縣地圖標注app 舉辦過冬奧會的城市地圖標注 電銷機器人系統廠家鄭州 400電話申請資格 螳螂科技外呼系統怎么用 qt百度地圖標注 地圖地圖標注有嘆號 遼寧智能外呼系統需要多少錢 阿里電話機器人對話

Mock概念

mock 的意思是模擬,也就是模擬接口返回的信息,用已有的信息替換它需要返回的信息,從實現對所依賴的模塊的測試。

一般有兩種場景:

  • 前端對后端接口的 mock,
  • 后端服務之間的測試中涉及的mock,常常發生在單元測試的時候。

前端mock可以通過一些工具來完成:

  • 使用抓包工具Fiddler,Charles 來實現,通過修改代理返回的數據,實現多種場景的測試。
  • 使用一些API管理工具來模擬,比如yapi,Easy Mock 等
  • 當然有編碼能力的,也可以使用node.js,python的fastAPI來模擬

后端的 Mock 則是從接口的角度,如果一個接口A返回的數據需要依賴于另一個接口B,當敏捷開發中B接口還未開發完全時候這里會需要用到 Mock。

對于測試人員,對接口測試的時候,部分接口尚未開發完成,在約定了接口定義之后,也可以使用 Mock 來模擬。

在 python3.X 中 Mock 模塊已經被集成到unittest里面。

Mock類

class Mock(spec=None,side_effect=None,return_value=DEFAULT,name=None)

  • spec:定義Mock對象的屬性值,可以是一個列表,字符串,一個對象的實例
  • side_effect:可以用來拋出異常或者動態改變返回值,可以覆蓋return_value
  • return_value:定義mock的返回值
  • name:作為mock對象的標識可以在print時候看到

簡單的例子體驗下 Mock 的功能特點

from unittest import mock
def add(num1,num2):
 return num1 + num2 # pass
 
add = mock.Mock(return_value=200) # 創建mock對象
 
print( add(10,20) )

你會發現無論輸入的參數是什么,輸出結果都是200。等于方法被 Mock 攔截處理了。

一個相對正式的 Mock 例子

正常情況:

import requests
def request_scm():
 # res = requests.get('http://www.mysx-scm.com')
 res = requests.get('http://baidu.com')
 return res.status_code

import unittest
from unittest import mock
class TestScmApi(unittest.TestCase):
 
 def testUrl(self):
  # request_scm = mock.Mock(return_value=200)
  self.assertEqual(request_scm(), 200, msg='testUrl 出現錯誤')

if __name__ == '__main__':
 unittest.main()

可以分別把兩個 # 注釋移到下一句試試。

一個完整的測試例子

import requests

class scmapi():
 def request_scm():
  res = requests.get('http://www.mysx-scm.com')
  # res = requests.get('http://baidu.com')
  return res.status_code

 def pay_alipay():
  '''
  待實現
  return 200
  '''
  return 0
 

import unittest
from unittest import mock

class TestScmApi(unittest.TestCase):
 
 needmock = True
 def setUpClass():
  print("setUpClass():所有方法之前執行")

 def tearDownClass():
  print("tearDownClass():所有方法之后執行")
  
 def setUp(self):
  self.scmapi = scmapi()
  print("setUp():每個方法之前執行")

 def tearDown(self):
  print("teardown():每個方法之后執行")
 
 def test_request_scm(self):
  if self.needmock:
   scmapi.request_scm = mock.Mock(return_value=200)
  self.assertEqual(scmapi.request_scm(), 200, msg='test_request_scm 出現錯誤')

 def test_pay_alipay(self):
  if self.needmock:
   scmapi.pay_alipay = mock.Mock(return_value=200)
  self.assertEqual(scmapi.pay_alipay(), 200, msg='test_pay_alipay 出現錯誤')

if __name__ == '__main__':
 unittest.main()

斷言方法

基本的斷言方法提供了測試結果是True還是False。所有的斷言方法都有一個msg參數,如果指定msg參數的值,則將該信息作為失敗的錯誤信息返回。

序號 斷言方法 斷言描述
1 assertEqual(arg1, arg2, msg=None) 驗證arg1=arg2,不等則fail
2 assertNotEqual(arg1, arg2, msg=None) 驗證arg1 != arg2, 相等則fail
3 assertTrue(expr, msg=None) 驗證expr是true,如果為false,則fail
4 assertFalse(expr,msg=None) 驗證expr是false,如果為true,則fail
5 assertIs(arg1, arg2, msg=None) 驗證arg1、arg2是同一個對象,不是則fail
6 assertIsNot(arg1, arg2, msg=None) 驗證arg1、arg2不是同一個對象,是則fail
7 assertIsNone(expr, msg=None) 驗證expr是None,不是則fail
8 assertIsNotNone(expr, msg=None) 驗證expr不是None,是則fail
9 assertIn(arg1, arg2, msg=None) 驗證arg1是arg2的子串,不是則fail
10 assertNotIn(arg1, arg2, msg=None) 驗證arg1不是arg2的子串,是則fail
11 assertIsInstance(obj, cls, msg=None) 驗證obj是cls的實例,不是則fail
12 assertNotIsInstance(obj, cls, msg=None) 驗證obj不是cls的實例,是則fail

以上就是python 如何在測試中使用 Mock的詳細內容,更多關于python 測試中使用Mock的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • python測試框架unittest和pytest區別
  • python使用pytest接口自動化測試的使用
  • python 如何用 Hypothesis 來自動化單元測試
  • python 基于DDT實現數據驅動測試
  • Python自動化測試基礎必備知識點總結
  • Python3 + Appium + 安卓模擬器實現APP自動化測試并生成測試報告
  • 基于Python的接口自動化unittest測試框架和ddt數據驅動詳解
  • Appium+Python實現簡單的自動化登錄測試的實現
  • python如何進行基準測試

標簽:濟源 阜新 信陽 昭通 合肥 興安盟 隨州 淘寶好評回訪

巨人網絡通訊聲明:本文標題《python 如何在測試中使用 Mock》,本文關鍵詞  python,如,何在,測試,中,使用,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python 如何在測試中使用 Mock》相關的同類信息!
  • 本頁收集關于python 如何在測試中使用 Mock的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 在线观看免费视频国产| 行乐宫(h)-分卷阅读| 少妇与大狼拘作爱性A片| 国产成人精品免费午夜| 窥欲| free videos性欧美另类| 亚洲色图3p| 色婷婷综合久久久久中文一区二区 | 贷裸门在线看无需播放器| 嗯哦哦啊灬用力哦啊快点| 18黄无遮挡免费视频| 免费国产va视频永久在线观看 | 黄乱色伦短篇小说h在线观看| 欧美精品在线一区二区三区| 解开的女班主任的裙子| 国产ppp视频在线观看| 美女网站一区二区三区| 国产又粗又长又硬免费视频| 午夜一级毛片不卡| 10周岁女全身裸无遮挡| 捏胸吻胸添奶头gif动态图| 女人榨乳授乳のおっぱい| 男女猛烈xx00动态图高清| 被男同桌强解开胸罩床吻| 免费无码婬片AAAA片免费视频 | 风流艳岳乱合记| 国产线路一| 被十几个男人扒开腿猛猛视频| 欧美性bbbbbxxxxx4050免费看| 久久中文字幕人妻丝袜| 【东北浪妇】1-13(全)| 国产欧美日韩免费| 草逼视频免费| 午夜精品久久久久久久久软件特色| 在线观看视频黄色| 91精品国产91久久久久久软件优势 | 国产精品久久码一区二区暖暖免费| 男女又爽?又黄?3D免费| 操处女逼小说| 91av视频| 九草在线观看|