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