返回顶部
首页 > 资讯 > 后端开发 > Python >python在测试中使用 Mock的方法
  • 200
分享到

python在测试中使用 Mock的方法

2023-06-06 16:06:12 200人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

这篇“python在测试中使用 Mock的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Python在测试中使用 Mock的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢

这篇“python测试中使用 Mock的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“Python在测试中使用 Mock的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让我们进入主题吧。

python可以做什么

Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入门、功能强大,在许多领域中都有广泛的应用,例如最热门的大数据分析人工智能web开发等。

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 mockdef add(num1,num2): return num1 + num2 # pass add = mock.Mock(return_value=200) # 创建mock对象 print( add(10,20) )

你会发现无论输入的参数是什么,输出结果都是200。等于方法被 Mock 拦截处理了。

一个相对正式的 Mock 例子

正常情况:

import requestsdef request_scm(): # res = requests.get('Http://www.mysx-scm.com') res = requests.get('http://baidu.com') return res.status_codeimport unittestfrom unittest import mockclass 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 requestsclass 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 unittestfrom unittest import mockclass 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参数的值,则将该信息作为失败的错误信息返回。

序号断言方法断言描述
1assertEqual(arg1, arg2, msg=None)验证arg1=arg2,不等则fail
2assertNotEqual(arg1, arg2, msg=None)验证arg1 != arg2, 相等则fail
3assertTrue(expr, msg=None)验证expr是true,如果为false,则fail
4assertFalse(expr,msg=None)验证expr是false,如果为true,则fail
5assertIs(arg1, arg2, msg=None)验证arg1、arg2是同一个对象,不是则fail
6assertIsNot(arg1, arg2, msg=None)验证arg1、arg2不是同一个对象,是则fail
7assertIsNone(expr, msg=None)验证expr是None,不是则fail
8assertIsNotNone(expr, msg=None)验证expr不是None,是则fail
9assertIn(arg1, arg2, msg=None)验证arg1是arg2的子串,不是则fail
10assertNotIn(arg1, arg2, msg=None)验证arg1不是arg2的子串,是则fail
11assertIsInstance(obj, cls, msg=None)验证obj是cls的实例,不是则fail
12assertNotIsInstance(obj, cls, msg=None)验证obj不是cls的实例,是则fail

以上是“python在测试中使用 Mock的方法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: python在测试中使用 Mock的方法

本文链接: https://lsjlt.com/news/247725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • python在测试中使用 Mock的方法
    这篇“python在测试中使用 Mock的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“python在测试中使用 Mock的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢...
    99+
    2023-06-06
  • Golang 函数的测试和 Mock 的方法
    在 golang 中,测试函数的方法包括单元测试(通过 testing 包隔离函数)、集成测试(验证函数之间的交互)、以及 mock 测试(使用 mock 框架隔离函数)。单元测试通过编...
    99+
    2024-05-24
    测试 mock git golang 标准库
  • 单元测试 @mock与@SpringBootTest的使用
    目录一.单元测试工具mock使用1.引入依赖包2.mock测试类二.springboot使用@SpringBootTest单元测试1.引入依赖包2.测试类三.mock和@spring...
    99+
    2024-04-02
  • Node.js测试中的Mock文件系统详解
    Mock文件系统相关的工具包括: Mock fs 模块的工具mock-fs 。 Mock require 模块的工具mock-require 。 安装 mock-fs和 mock-req...
    99+
    2022-06-04
    文件系统 详解 测试中
  • python使用unittest测试接口步奏的方法
    小编给大家分享一下python使用unittest测试接口步奏的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!这次给大家带来...
    99+
    2024-04-02
  • Python使用Pandas处理测试数据的方法
    目录Python自动化测试-使用Pandas来高效处理测试数据一、思考1.Pandas是什么?2.经典面试题二、使用pandas来操作Excel文件1.安装2.按列读取数据3.按行读...
    99+
    2023-02-21
    Python Pandas 处理测试数据 Python Pandas 自动化测试
  • IOS使用TestFlight测试的使用方法
    目录一、testflight优势二、开发人员TestFlight的设置操作步骤三、测试人员TestFlight的使用步骤现在最主流的移动端操作系统就是 Android 和 iOS ,...
    99+
    2022-12-17
    TestFlight测试 TestFlight
  • Python测试 | 在python中创建单元测试
    作为开发人员或程序员, 只要编写代码,通常就会忽略一件事:测试。测试是开发的一部分,您应该严格测试应用程序,以确保它们满足必需的功能。让我们先从为什么要做测试开始:1、减少手动测试的需求因为测试用例是预先编写的,所以没有真正的理由再进行手动...
    99+
    2023-05-14
    Python 测试 单元
  • Python中Mock如何使用
    Python中Mock如何使用,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 1. 前言微服务架构下,由于各类服务开发进度的不一致,导致联调工作经常会存在不确定性...
    99+
    2023-06-15
  • Golang 函数测试中的数据量Mock策略
    在 go 函数测试中处理大量数据时,可以通过以下策略使用 mock 进行模拟:1. 使用第三方库(mockery、go-mockgen、wiremocksvc);2. 使用内建接口。例如...
    99+
    2024-04-17
    单元测试 mock golang
  • PowerMock使用-Mock私有方法
    前言 本篇文章将说明如何使用PowerMock对私有方法进行Mock。关于使用PowerMock需要引入哪些依赖,请参考PowerMock使用-依赖准备。 正文 被测试类如下所示。 public cl...
    99+
    2023-09-16
    java 单元测试 PowerMock Mock私有方法
  • Python中requests做接口测试的方法
    目录一、介绍二、前提三、get的请求3.1 GET无参请求3.2 GET传参四、post请求五、Requests响应六、Request扩充七、requests+pytest+allure7.1 流程如下7.2 模块总...
    99+
    2022-06-02
    Python requests接口测试 Python requests 测试
  • python中有哪些统计mock的方法
    python中有哪些统计mock的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明called:表示是否调用过。call_count:返回调用的次数。call_arg...
    99+
    2023-06-15
  • 小试Python中的pack()使用方法
    目录Python中pack()方法Python GUI pack方法Python中pack()方法 #Copyright (c)2017, 东北大学软件学院学生 # All...
    99+
    2024-04-02
  • python在rest接口测试中的应用
        近期一直在学习python,这两天正好做rest接口的接口测试,就尝试着用python写一个测试rest接口的通用类,省去用工具的繁琐,也显得比较高大上一些。    http rest接口最常用的两种请求方式,POST和GET两种方...
    99+
    2023-01-31
    接口 测试中 python
  • python+pytest自动化测试函数测试类测试方法的封装
    目录前言一、测试用例封装的一般规则三、测试类/方法的封装四、示例代码总结前言 今天呢,笔者想和大家聊聊python+pytest接口自动化中将代码进行封装,只有将测试代码进行封装,才...
    99+
    2024-04-02
  • python concurrent.futures模块的测试方法
    本篇内容主要讲解“python concurrent.futures模块的测试方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python concurrent.futures模块的测试方法”...
    99+
    2023-06-20
  • Oracle 测试工具 Swingbench 的使用方法
    1、安装 JDK 1.82、安装 Wingbench,下载 解压即可3、初始化模式 SOE 的数据,双击 D:\swingbench\winbin\oewizard 24、执行测试,双击D:\swingbe...
    99+
    2024-04-02
  • 【python渗透测试】python在渗透测试中的利用(完全版,持续中出)
    跟着gpt学习python在渗透测试中的利用 🔥系列专栏:python渗透测试 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 &#...
    99+
    2023-10-12
    python 开发语言
  • 在vue2 中使用 tailwindcss的方法 亲测可用
    目录1. 直接安装2. 创建文件tailwindcss.css3.main.js中引入4.在项目根目录执行以下命令:5. 测试一下注意 : 我用我走过的坑告诉你们 , 一定要按照步骤...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作