大家好,又见面了,我是你们的朋友全栈君。
mock测试使用说明
因博主最近看测试同学偷偷在搭建mock进行测试,好奇看了一下,记录一下使用过程
参考资料:
https://blog.csdn.net/qq_32706349/article/details/80472445
https://zhuanlan.zhihu.com/p/98403577
1 mock简介
mock测试: 在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
幼儿园化一下, 就是在测试过程中,前端调用接口,返回数据,不需要后台配合. 使用mock+自定义的配置文件,就可返回前端需要的数据,从而保证测试流程的完整执行.
2 mock的使用
博主以moco-runner-0.11.0-standalone.jar做演示,且电脑环境需要安装jdk
1 下载moco的jar包
jar包下载地址: https://github.com/dreamhead/moco
2 启动jar包
java -jar moco-runner-0.11.0-standalone.jar 协议类型 -p 端口号 -c json配置文件
参数说明:
java -jar jar包名
: 启动jar包的常用方式,使用前提是安装jdk
协议类型
: 支持https,http,socket等,本案例使用http
-p 端口后
: 指定jar包运行端口号, 访问时使用
-c json 配置文件
: 指定运行时的配置文件.内容要为json格式,文件后缀要为json,且json文件需要和mock的jar包在同一层.
3 简单案例1
1 创建配置文件config-get.json
[{
"description":"这是一个get请求",
"request":
{
"method":"get",
"uri":"/index"
},
"response":
{
"text":"我是get请求返回的参数呀",
"headers":
{
"Content-Type":"text/html;charset=gbk"
}
}
}]
2 启动jar包
java -jar moco-runner-0.11.0-standalone.jar http -p 9999 -c config-get.json
3 测试
4 简单案例2
1 创建配置文件config-post-get.json
[{
"description":"这是一个get请求",
"request":
{
"method":"get",
"uri":"/index"
},
"response":
{
"text":"我是get请求返回的参数呀",
"headers":
{
"Content-Type":"text/html;charset=gbk"
}
}
},
{
"description":"这是一个带参数的POST请求",
"request":
{
"method":"post",
"uri":"/index_post",
"forms":{
"name":"Ruancexiaosheng",
"pwd":"testpwd"
}
},
"response":
{
"text":"这是一个带参数的POST请求",
"headers":
{
"Content-Type":"text/html;charset=gbk"
}
}
}]
2 启动jar包
java -jar moco-runner-0.11.0-standalone.jar http -p 9999 -c config-post-get.json
3 测试
5 配置文件参数说明
description : 接口描述信息
request:
method : HTTP请求类型8GET|POST|PUT|DELETE
uri : 请求路径
response:
headers: 设置response的header信息
Content-Type: "application/json;charset=UTF-8" 设置返回文本类型
file: 这里的file表示引用当前目录下的response.json文件,而response.json文件就是响应数据。这里也可以是text或json,都是设置response数据,text就是普通的字符串响应,json就是直接输出json格式的响应
context: contextPath,就是项目根路径
file_root: 指定当前这个contentPath所用的文件夹(当前文件夹),用于将json配置文件分类隔开
include: 指定生效的文件夹下的json配置文件
redirectTo: 重定向
常见案例
// 重定向到百度
[
{
"description":"重定向到百度",
"request":{
"uri":"/redirect",
"method":"get"
},
"redirectTo":"http://www.baidu.com"
}
]
// 重定向到自己网页
[
{
"description":"这是被重定向的请求",
"request":{
"uri":"/toRedirect"
},
"response":{
"text":"this is my redirect page"
}
},
{
"description":"重定向到自己的网页上",
"request":{
"uri":"/myWeb"
},
"redirectTo":"/toRedirect"
}
// 请求中携带请求头
[
{
"description":"这是一个带header请求",
"request": {
"uri": "/myHeader",
"method": "post",
"headers": {
"content-type": "application/json"
},
"json": {
"name": "admin",
"pwd": "admin"
}
},
"response":{
"json":{
"message":"success",
"status":"200"
}
}
}
]
// 请求中携带cookie
[
{
"description":"这是一个带cookies的Post请求",
"request":{
"uri":"/myPostWithCookies",
"cookies":{
"user":"admin"
},
"json":{
"name":"admin",
"pwd":"admin"
}
},
"response":{
"status":"200",
"json":{
"name":"success",
"status":"200"
}
}
}
]
6 总结
经过实际操作,确实如开头的解释那样.
mock测试针对某些不易构造或不易获取的数据,如果全部采用,那么效果和效率都得不到保证.
使用场景:
如发起某个审批的某个数据, 需要调用别人的一个接口,可是这个接口暂时没有调试的能力,可采用mock测试,返回一个给定的值,保证该流程可以正常发起.
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/151371.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...