unittest测试框架之Mock接口联调

unittest.mock 是一个用于测试的Python库。它允许使用mock对象替换受测试系统的部分,并对它们如何已经被使用进行断言。

Mock使用前提

在做接口测试时,开发还未完成接口的实现,自动化接口测试代码就没办法完成,这个时候就需要用Mock对象库来模拟接口响应结果,等到开发完成接口功能,再把Mock模拟响应结果的代码删除掉,整个自动化接口测试项目就完成了。

Mock简单的使用

导包(mock对象库不需要单独进行安装,unittest库中已经集成了mock对象库)
from unittest.mock import Mock

模拟一个简单的发送请求响应

准备一个发送请求的函数
def sendUrl():
# 下面的url为伪接口,访问不通
url = "http://127.0.0.1/login"
return requests.get(url=url)
直接调用发送请求函数,打印响应结果
response = sendUrl()
print(response)

-->> 结果如下(因为url地址是个伪地址,访问不通,所以会报错)

使用Mock模拟响应结果
  • return_value:设置返回的结果
  • sendUrl:创建的Mock对象,名称要与下面调用的函数名一致
sendUrl = Mock(return_value={"code": 0, "msg": "登陆成功"})
response = sendUrl()
print(response)

->> 结果如下:响应结果就是Mock对象设置的返回结果

使用Mock模拟引发异常
  • side_effect:引发异常
  • AssertionError:异常类型
sendUrl = Mock(side_effect=AssertionError('地址错误'))
response = sendUrl()

-->> 结果如下:成功的引发异常

* mock其他用法请参考-->>unittest.mock --- mock对象库官方文档

Python3-unittest测试框架之Mock接口联调的更多相关文章

  1. 基于Python的接口自动化-unittest测试框架和ddt数据驱动

    引言 在编写接口自动化用例时,我们一般针对一个接口建立一个.py文件,一条接口测试用例封装为一个函数(方法),但是在批量执行的过程中,如果其中一条出错,后面的用例就无法执行,还有在运行大量的接口测试用 ...

  2. Python接口测试实战3(下)- unittest测试框架

    如有任何学习问题,可以添加作者微信:lockingfree 课程目录 Python接口测试实战1(上)- 接口测试理论 Python接口测试实战1(下)- 接口测试工具的使用 Python接口测试实战 ...

  3. Python 下的unittest测试框架

    unittest测试框架,直接上图吧: data:数据:主要格式为CSV:读取方式:csv.reade: public:封装的模块:通用的模块单独封装,所需参数设置为变量: testcase:测试用例 ...

  4. python利用unittest测试框架组织测试用例的5种方法

    利用unittest测试框架可以编写测试用例,执行方式分两大类:利用main方法和利用testsuite,其中利用测试套件来组织测试用例可以有4种写法. 在此之前,先了解几个概念 TestCase:所 ...

  5. <day002>Selenium基本操作+unittest测试框架

    任务1:Selenium基本操作 from selenium import webdriver # 通用选择 from selenium.webdriver.common.by import By # ...

  6. unittest测试框架详解

    单元测试的定义 1. 什么是单元测试? ​ 单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的最小可测试单元通常是指函数或者类,一般是开发来做的,按照测试 ...

  7. unittest测试框架

    unittest单元测试框架不仅可以适用于单元测试,还可以适用WEB自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. 一.u ...

  8. Selenium之unittest测试框架详谈及实操

    申明:本文是基于python3.x及selenium3.x. unittest,也可以称为PyUnit,可以用来创建全面的测试套件,可以用于单元自动化测试(模块).功能自动化测试(UI)等等. 官方文 ...

  9. 基于unittest测试框架的扩展

    1 unittest介绍 Unittest,Python自带的单元测试框架,PyUnit类包含TestResult,TestCase, TestSuite,TextTestResult,TextTes ...

随机推荐

  1. c++简单线程池实现(转)

    线程池,简单来说就是有一堆已经创建好的线程(最大数目一定),初始时他们都处于空闲状态,当有新的任务进来,从线程池中取出一个空闲的线程处理任务,然后当任务处理完成之后,该线程被重新放回到线程池中,供其他 ...

  2. jenkins参数化配置,pom.xml配置

    1.要实现Jenkins参数化构建,要先在代码里写好能接收该参数value的配置,在pom.xml文件里加配置,如下: 1)<properties></properties>里 ...

  3. python 常用技巧 — 列表(list)

    目录: 1. 嵌套列表对应位置元素相加 (add the corresponding elements of nested list) 2. 多个列表对应位置相加(add the correspond ...

  4. SSH出错

    [root@node01 ~]# ssh node02 ssh_exchange_identification: Connection closed by remote host 修改连接数无效 [r ...

  5. 编译自己的jdk(使用openJDK源码编译jdk )

    找到openjdk网站(http://hg.openjdk.java.net/) 选择需要编译的版本,浏览readme文件,有获取源码及编译步骤 CentOS-7-x86_64-DVD-1804.is ...

  6. MariaDB 创建表

    在本章中,我们将学习如何创建表. 在创建表之前,首先确定其名称,字段名称和字段定义. 以下是表创建的一般语法: CREATE TABLE table_name (column_name column_ ...

  7. Cisco基础(二):三层交换vlan间通信、多交换机vlan间通信、三层交换配置路由、RIP动态路由配置、三层交换配置RIP动态路由

    一.三层交换vlan间通信 目标: VLAN实现了广播域的隔离,同时也将VLAN间的通信隔离了.三层交换技术使得VLAN间可以通信. 通过三层交换实现VLAN间通信 方案: 为了解决了传统路由器低速. ...

  8. nginx防止SQL注入规则

    $request_uriThis variable is equal to the *original* request URI as received from the client includi ...

  9. 楼房重建 (rebuild)

    楼房重建 (rebuild) 题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子.为了简化问题 ...

  10. Android程序中欢迎界面

    额,在做项目中,肯定首先要用到欢迎界面,下面是我在做项目中用的最简单的一个欢迎界面,即打开程序时,先是显示一张图片,然后等一段时间后图片消失,进入登录界面.直接上代码,有注释也不用解释了: 首先是We ...