Mock Server入门及实践

article/2025/9/18 3:43:39

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请轻击人工智能教程

什么是Mock Server?

Mock测试:就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。

Mock对象:使用Mock Object进行测试,主要是用来模拟那些在应用中不容易构造(如HttpServletRequest必须在Servlet容器中才能构造出来)或者比较复杂的对象(如JDBC中的ResultSet对象)从而使测试顺利进行的工具。

为什么要用Mock?

  • Mock本意就是模拟或者效仿。我们可以把Mock理解为一个替身,在软件开发领域,通常就是指模拟对象。
  • Mock是为了解决不同的单元之间由于耦合而难于开发、测试的问题。所以Mock既能出现在单元测试中,也会出现在集成测试、系统测试过程中。

如何选择Mock Server?

  • EasyMock 是一套用于通过简单的方法对于给定的接口生成 Mock 对象的类库。它提供对接口的模拟,能够通过录制、回放、检查三步来完成大体的测试过程,可以验证方法的调用种类、次数、顺序,可以令 Mock 对象返回指定的值或抛出指定异常。通过 EasyMock,我们可以方便的构造 Mock 对象从而使单元测试顺利进行。
  • JMock 是一个使用模拟对象机制测试Java代码的开发包。模拟对象(Mock Object)可以取代真实对象的位置,用于测试一些与真实对象进行交互或依赖于真实对象的功能,模拟对象的背后目的就是创建一个轻量级的、可控制的对象来代替测试中需要的真实对象,模拟真实对象的行为和功能,方便我们的测试。JMock就是这种机制的实现,使用JMock我们可以快速创建模拟对象,定义交互过程中的约束条件等,同时JMock也是易扩展的,你可以很方便添加自定义的需求。
  • Mockito 无需准备昂贵的前期启动。他们的目标是透明的,让开发人员专注于测试选定的行为。Mockito 拥有非常少的 API,所有开始使用 Mockito,几乎没有时间成本。因为只有一种创造 mock 的方式。只要记住,在执行前 stub,而后在交互中验证。你很快就会发现这样 TDD Java 代码是多么自然。

为什么用Moco?

  • 满足大多数应用场景
  • 简单高效,采用Stub code的方式
  • 支持HTTP REST Socket等协议,支持API和独立运行两种方式,可以植入单元测试中
  • 代码开源(https://github.com/dreamhead/moco)
  • 支持Maven Scala Shell Gradle等集成

使用过程中遇到的问题?

1、Post类型请求,转发到Moco server后返回400状态码

【解决方案】Post请求response返回格式有json格式、forms格式,PC商城需要用forms格式。

2、Moco 接收C端请求时,匹配reqeust参数,为全匹配,如果不写则不会匹配参数?

【使用场景】当接口请求中带有时间戳时,如图所示:

配置Moco时,需要将这个参数在配置文件中去掉即可,如图所示:

3、Moco server配置文件match uri字段无法正确匹配

【解决方案】可以使用contain关键字进行代替使用match参数。

4、页面返回文件为XML, 直接访问地址返回一下错误,如图所示:

【问题分析】通过Fiddler抓包查看请求,Moco Server已经返回了对应的XML文件,但是浏览器还是依然报错,如图所示:

【问题根源】 返回的文件就是一个文本,未指定其格式,所以会提示上述错误,服务器给出提示,如图所示:

【解决方案】 指定返回文件的格式即可,如图所示:


http://chatgpt.dhexx.cn/article/bN7aNlO0.shtml

相关文章

用 java 安装 mockserver,Mock Server实践

背景 在美团服务端测试中,被测服务通常依赖于一系列的外部模块,被测服务与外部模块间通过REST API或是Thrift调用来进行通信。要对被测服务进行系统测试,一般做法是,部署好所有外部依赖模块,由被测服务直接调用。然而有…

Mock-- Server的使用

近日项目需求 使用mock-server来提供虚拟数据(API),方便在服务被调用方没有开发好的情况下,服务调用方能不被耽误的继续进行开发 。 我们的情况大概是这样: 我们的服务去调用 另一方提供的服务,另一方的服务可能还没有开发好&…

前端调试,模拟数据利器之Mock Server使用教程来啦~

文章目录 1 MockServer是什么2 为什么要使用MockServer3 MockServer的作用4 搭建MockServer服务4.1 部署MockServer服务详细步骤4.1.1 第一种方式(推荐)4.1.2 第二种方式 4.2 启动Shell脚本4.3 访问MockServer UI界面 5 MockServer服务的基础使用5.1 项目…

浅谈 Mock Server

What?什么是 Mock Server Mock 是模拟的意思。在测试中,通常表述为:对测试过程中不容易构造或者不容易获取的物件,用一个虚拟的物件来进行模拟的一个过程。能够提供 Mock 功能的服务就叫作 Mock Server。 Mock Server 通过模拟真…

Mock Server 入门

Mock Server介绍 什么是mock ? 我在去年的时候介绍一篇幅 python mock的基本使用,http://www.cnblogs.com/fnng/p/5648247.html 主要是针对单元测试的应用,它可以很方便的解除单元测试中各种依赖,大大的降低了编写单元测试的难度。 什么是Mo…

Matlab解决脚本中中文乱码问题

首先下载字体yahei consolas hybrid。百度网盘地址: 链接:https://pan.baidu.com/s/1Zv2FMt3uow7DZix2rtAbrA 提取码:am4d 然后将下载的字体保存在C:\Windows\Fonts中,启动Matlab2018a这里使用的是2018a版本,其他版…

WEB UI自动化测试之AutoMagic自动化测试

AutoMagic自动化测试平台 AutoMagic 是一个基于WebUI的自动化管理平台。为什么叫AutoMagic呢?因为自动化(Automation)在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术(Magic&a…

Jupyter Notebook从入门到精通

下载 本课程练习完整代码 Jupyter Notebook: https://gist.github.com/zgpeace/8d3eb8c803a54d1ca797fa26cb68bd4c 财富500强 csv下载 https://github.com/zgpeace/fortune500.git 1. 什么是 Jupyter 笔记本? Jupyter Notebook 是一个非常强大的工具&…

dev shm mysql_新特性:/dev/shm对Oracle 11g的影响

ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Management)特性,该特性需要更多的共享内存(/dev/shm),因此如 /dev/shm对Oracle 11g的影响: ORACLE 从11g版本开始,引入了一个自动内存管理(Automatic Memory Mana…

Git分布式版本控制工具

Git分布式版本控制工具 文章目录 Git分布式版本控制工具1、目标 2、概述2.1、开发中的实际场景2.2、版本控制器的方式2.3、Git工作流程图 3、Git安装与常用命令3.1、Git 环境配置3.1.1 下载与安装3.1.2 基本配置3.1.3 为常用指令配置别名3.1.4 解决 GitBash 乱码问题 3.2、获取…

关于我在windows使用volatility取证这档事

官网下载地址:https://www.volatilityfoundation.org/releases volatility3的官方文档:https://volatility3.readthedocs.io/en/latest/basics.html 下载 看清有两个版本,用法不一样 第一次我下载了Volatility 2.6 Windows Standalone Exe…

DLNLP学习笔记03(Speech Recognition: LAS模型)

Listen, Attend, and Spell (LAS) [Chorowski. et al., NIPS’15] 论文地址:https://arxiv.org/pdf/1508.01211.pdf 1 模型简介: 2 Listen:其中Encoder可以为RNN,CNN或者RNNCNN。 Listen-down sampling:(RN…

On Device Debug!IDA+GDB trace automagic.apk in s1

2019独角兽企业重金招聘Python工程师标准>>> http://forum.xda-developers.com/showthread.php?t2050393 Well... I have attached a debugger to native code, set breakpoints, analyzed registers, memory, etc. It wasnt that easy though. It took me severa…

【Jetson Nano 入门】环境配置汇总

文章目录 前言一、镜像烧写二、PWM风扇自动调速三、使用MicroUSB在电脑打开终端四、VNC实现局域网及网线直连通信五、SSH文件传输六、状态监控软件Jtop七、检查CUDA、OpenCV及cuDNN八、USB摄像头测试软件Camorama九、CSI摄像头测试十、实现Yolov4-tiny的USB摄像头实时检测 前言…

WEB UI自动化测试之AutoMagic自动化测试平台开源

作者介绍: 网名: Ray 介绍:笑起来像个孩子,冷起来是个迷。 博客:http://www.cnblogs.com/tsbc/ 2018年3月29日,Ray说准备把AutoMagic自动化测试管理平台开源了!!! 这是个好消息&…

三星s20 android auto,Automagic一个更简单的方式来自动化您的Android手机 | MOS86

你有没有想过你的智能手机会在你回家的时候开始播放音乐?当你关闭社交网络的时候怎么样?Automagic是一种替代方案,通过使用易于理解的流程图执行许多相同的任务,向用户提供了一种更简单的自动化Android手机的方法。 Automagic如何…

AutoMagic自动化测试平台简介

PS:给想做自动化平台同学一点思路。 AutoMagic 是一个基于WebUI的自动化管理平台。为什么叫AutoMagic呢?因为自动化(Automation)在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术&#xff0…

AutoMagic设计思路简介及新增自定义关键字实例

目录 简介 AutoMagic介绍 SeleniumKey介绍 自定义关键字 简介 AutoMagic 是一个基于WebUI的自动化管理平台。为什么叫AutoMagic呢?因为自动化在执行起来的时候是一个很神奇的事情,它可以无人值守的模拟人的操作,就像魔术(Magic&am…

AutoMagic-开源自动化平台的容器化构建

github上看到AutoMagic自动化平台开源了,一时手痒,就试着搭了一套环境,现在把思路和大家说一说。 AutoMagic从其工作分工分两部分: 1:Web端管理平台 管理平台基于Python Django框架Mysql开发,主要用来管理自…

Automagic Premium 安卓上的自动化神器

每当我使用手机时,就对各种App的签到领奖非常反感,如果不签好像吃了亏,签一次花的时间自己也觉得不值。这时候我就在想,如果有一个App,能够自动帮我完成这种每天重复执行的任务就好了。之前找到一个叫uiautomator2的py…