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

发布时间 2023-07-28 17:27:54作者: 刘刘牛牛牛

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可以提供以下服务:

支持httphttpssocket

支持设置headerscookiesstatuscode

支持GETPOSTPUTDELETE请求;

只需JRE环境即可运行;

支持热更新;

支持jsonxmltextfile数据格式;

能与JUnitMavenGradle集成。

运行环境要求:

需先安装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