我是靠谱客的博主 飞快微笑,最近开发中收集的这篇文章主要介绍Python-mock一、接口测试中Mock的用处二、使用步骤,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

文章目录

  • 一、接口测试中Mock的用处
  • 二、使用步骤
    • 1.Moco框架搭建Mock服务
      • Moco说明
    • 2、Python unittest模块自带的mock


一、接口测试中Mock的用处

  1. 前后端开发,后端接口未开发完成,前端调用mock数据进行调试。

  2. 接口集成测试,部分依赖服务未完成前,利用Mock完成本身的接口开发/测试。

  3. 复杂的场景模拟,复现验证bug的时候,需要先准备比较复杂的数据场景,才能复现一个bug。此时,Mock的定制返回,节省了大量数据准备的时间,直接可复现和验证bug

  4. 测试时,异常场景的模拟,如长字符串、负数、异常返回、接口超时等。

  5. 测试接口中需要依赖第三方接口返回值进行逻辑处理,例如银行的支付接口。

  6. 隔离环境,保证数据安全和正确性,对于POST、PUT、DELETE等请求进行隔离,防止修改数据出现其他未知错误

二、使用步骤

1.Moco框架搭建Mock服务

Moco说明

  • Moco是一个简单搭建模拟服务器的框架(工具),可以模拟http、https、socket等协议
  • 基于Java开发的开源项目,Github地址:https://github.com/dreamhead/moco
    原理:Moco会根据一些配置,启动一个真正的HTTP服务(会监听本地的某个端口)。当发起的请求满足某个条件时,就会返回指定的响应数据,需要修改

1、Moco运行时所需环境包括:

Java运行环境:安装JDK,并配置环境变量
下载地址:https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/1.1.0/
下载jar包 :moco-runner-1.1.0-standalone.jar

2、配置响应内容

在本地新建moco-runner文件夹,将下载好的moco-runner-1.1.0-standalone.jar放入文件夹,然后新建moco.json配置文件。

moco.json内容如下:

[
{
"description": "这是我们的运行demo",
"request": {
"uri": "/demo"
},
"response": {
"text": "第一个moco框架demo"
}
}
]

字段说明:

description:程序不会识别,是写给我们自己看的;

request:请求,里面的 uri 是我们访问应用的时候拼接在端口后面的路径;

response:响应内容

3、Moco启动服务
进入moco-runner目录,输入命令,启动服务
java -jar ./moco-runner-1.1.0-standalone.jar http -p 8899 -c moco.json

4、打开浏览器,输入:http://127.0.0.1:8899/demo

2、Python unittest模块自带的mock

  • 使用mock模拟函数返回
from unittest import mock
def test01():
"""
test01函数并未实现,通过mock来模拟该函数的返回
:return:
"""
pass
test01 = mock.Mock(return_value=100) 创建Mock对象, 作为Test01的实例方法
print(test01()) 当调用test01方法时, 会返回定义Mock对象时指定的return_value值
输出:100
  • 跟据不同传参返回不同的值
from unittest import mock
def test01():
"""
根据传参模拟不同返回值
:return:
"""
pass
def test02(data):
mock_data={
"demo01":"支付中",
"demo02":"支付成功",
"demo03":"支付失败"
}
return mock_data[data]
test01 = mock.Mock(side_effect=test02)
print(test01("demo02"))
输出:支付成功

最后

以上就是飞快微笑为你收集整理的Python-mock一、接口测试中Mock的用处二、使用步骤的全部内容,希望文章能够帮你解决Python-mock一、接口测试中Mock的用处二、使用步骤所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部