首页 > 其他分享 >【软件测试】简易挡板测试——Mock服务搭建及使用方法

【软件测试】简易挡板测试——Mock服务搭建及使用方法

时间:2023-07-28 17:36:01浏览次数:39  
标签:-- jar json Mock https 2.2 挡板 软件测试

1. Mock介绍

1.1 Mock简介

Mock测试也被称为替代测试与挡板测试,Mock 测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。这个虚拟的对象就是Mock对象。Mock对象就是真实对象在调试期间的代替品。

形如上图,服务B就可以用Mock来代替。

1.2 使用场景

    • 解决前后端依赖
    • 解决外部接口依赖

B服务还未实现时、B服务不可用时、B服务的行为不稳定时、需要测试代码在高负载情况下的性能时。例如测试需求包含第三方OA审批时,可用Mock来模拟OA审批结果。

1.3 Mock服务部署

moco是一个java实现,轻量级的,开源的接口模拟测试工具,可以通过jar独立部署。简单json配置,即可实现接口的请求响应接口模拟。

jar包下载地址:

https://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/

Moco可以提供以下服务:

支持http、https、socket;

支持设置headers、cookies、statuscode;

支持GET、POST、PUT、DELETE请求;

只需JRE环境即可运行;

支持热更新;

支持json、xml、text、file数据格式;

能与JUnit、Maven、Gradle集成。

运行环境要求:

需先安装JDK并配置环境变量、配置请求与响应的json文件、如果是https请求,需要提前预备jks证书

2. Mock使用方法

2.1 Mock设置关键

Mock对象

模拟对象的概念就是我们想要创建一个可以替代实际对象的对象,这个模拟对象要可以通过特定参数调用特定的方法,并且能返回预期结果。

设置预期

通过设置预期明确 Mock 对象执行时会发生什么,比如返回特定的值、抛出一个异常、触发一个事件等,又或者调用一定的次数。

验证预期的结果

设置预期和验证预期是同时进行的。设置预期在调用测试类的函数之前完成,验证预期则在它之后。所以,首先你设定好预期结果,然后去验证你的预期结果是否正确。

2.2 单个请求的多种响应方式

命令:

java -jar [jar包名称] [协议名称] [指定的端口号] -c [请求与响应配置的json文件] --https [证书路径] --cert [密钥] --keystore [证书密码]

示例:

java -jar moco-runner-1.4.0-standalone.jar https -p 444 -c test1.json --https my.jks --cert 123456 --keystore 123456

2.2.1 编写请求与响应配置的json文件

2.2.2 服务器启动Mock

2.2.3 终端使用jmeter发送请求

2.2.4 查看响应数据

可看到响应数据与json文件设置的一致

2.3 多个请求的多种响应方式

命令:

java -jar [jar包名称] [协议名称] [指定的端口号] -g [全局配置的json文件] --https [证书路径] --cert [密钥] --keystore [证书密码]

示例:

java -jar moco-runner-1.4.0-standalone.jar https -p 4455 -g global.json --https my.jks --cert 123456 --keystore 123456

2.2.1 编写全局配置的json文件

2.2.2 编写请求与响应配置的json文件

2.2.3 服务器启动Mock

2.2.4 终端使用jmeter发送请求

2.2.5 查看响应数据

可看到响应数据与json文件设置的一致

3. 备注

①jar独立部署:将 JAR 文件复制到服务器上,在服务器上安装 Java 运行环境(Java Runtime Environment)和 Java 开发工具包(Java Development Kit),确保服务器上已经配置好了 Java 环境变量和 CLASSPATH 环境变量。启动 JAR 文件,例如通过命令行执行 java -jar myapp.jar 命令来启动 JAR 文件。

②jdk部署:官网下载(https://www.oracle.com/java/technologies/downloads),windows32位系统下载x86安装包,windows64位系统下载x64安装包,linux系统下载对应压缩包,安装JDK。

 

标签:--,jar,json,Mock,https,2.2,挡板,软件测试
From: https://www.cnblogs.com/liujieaaa/p/17588484.html

相关文章

  • Mockito单元测试最佳实践
    Mockito可以帮助我们模拟创建对象,经常用于模拟外系统、数据库、及其它方法中调用的对象 使用mockito时,单元测试类需要加上注解@RunWith(MockitoJUnitRunner.class),在@Before方法中加上MockitoAnnotations.openMocks(this);使用spring框架时,经常使用@Autowired注解,在这里被注......
  • 软件测试单点登录之—单点流程
    用户认证中心采用票据传递的方式进行用户信息共享,保证登录会话在不同的站点进行创建。用户访问目标站点时通过当前登录的站点创建票据,传递票据到目标站点,目标站点接收到票据之后调用用户中心认证系统接口进行票据认证,认证成功之后创建登录会话从而使得用户能够进行跨站登录,具体单点......
  • vue2.x接入mockJs
    1、安装npminstallmockjs2、创建文件src/mock/api、src/mock/indeximportMockfrom'mockjs'importMockApifrom"./api"Mock.setup({timeout:"300",});constmocks=[...MockApi];exportfunctionmockXHR(){for(letiofmocks)......
  • 软件测试|SQL指定查询条件,WHERE的使用
    前言使用SQL从单个表或者多表联合查询数据时,可以使用WHERE子句指定查询条件。当给定查询条件时,只有满足条件的数据才会被返回。建议您使用WHERE子句来过滤记录,以获取必要的结果集。WHERE子句不仅可以用在SELECT语句中,还可以用在UPDATE、DELETE等语句中,我们将在后续进......
  • 软件测试|web自动化测试神器playwright教程(十一)
    前言在我们进行web自动化测试的过程中,我们经常会面临需要登录的情况,每一次打开页面如果都需要重新登录的话,就会大大增加测试所需要的时间,体现不出自动化测试的优势,我们都知道selenium可以通过cookie实现登录,那么playwright能不能实现这个功能呢?答案是肯定的,playwright可以实现......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十四)
    前言我们知道我们可以使用pillow绘制不同形状的图形,但是我们能不能使用tkinter实现这个功能呢,当然可以,tkinter也可以实现图形的绘制,并且可以将绘制的图形添加到我们的GUI中。我们可以通过tkinter的画布控件Canvas来实现绘制功能。Canvas画布控件Canvas控件具有两个功能,首先它......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十五)
    前言上一篇文章我们介绍了tkinter的Canvas画布控件,并且使用画布控件绘制了线条,本篇文章我们将介绍使用Canvas绘制更多图形。参数介绍属性说明activedash当画布对象状态为"active"的时候,绘制虚线activefill当画布对象状态为"active"的时候,填充颜色activest......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十六)
    前言我们在使用各种软件时,菜单是我们最常用的功能之一,菜单以可视化的方式将一系列的“功能选项卡”进行分组,并在每个分组下又“隐藏”了许多其他的“选项卡”。当打开菜单时,这些选项卡就会“显式”的呈现出来,方便用户进行选择,比如我们常用的QQ音乐播放器,如下图:tkinter同样给我......
  • 软件测试|SQL选取数据,你会了吗?
    前言很多时候,我们是需要从表中选择数据进行操作的,表中数据那么多,我们应该如何在表中选取数据呢?SQLSELECT语句用于从表中选取符合条件的数据,该数据以临时表的形式返回,称为结果集。SELECT基本语法SELECTcolumn1,column2,columnNFROMtable_nameWHEREconditions;col......
  • 软件测试|超好用超简单的Python GUI库——tkinter(十三)
    前言我们之前介绍了tkinter的单选框与多选框,单选框和多选框在我们日常生活中有很广泛的使用,我们还可是以音乐播放软件举例,音量调节不是通过我们输入来调节,而是以这样的滑块来滑动。同样的,tkinter也有控件来实现类似的功能,tkinter的scale控件就可以实现这样的功能。Scale控件S......