前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mock测试使用说明

mock测试使用说明

作者头像
全栈程序员站长
发布2022-08-31 14:34:06
4210
发布2022-08-31 14:34:06
举报

大家好,又见面了,我是你们的朋友全栈君。

mock测试使用说明

因博主最近看测试同学偷偷在搭建mock进行测试,好奇看了一下,记录一下使用过程

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

代码语言:javascript
复制
[{ 
   
    "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 测试

image-20210718140408047
image-20210718140408047
image-20210718140537579
image-20210718140537579

4 简单案例2

1 创建配置文件config-post-get.json

代码语言:javascript
复制
[{ 
   
    "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 测试

image-20210718181024906
image-20210718181024906
image-20210718181052918
image-20210718181052918

5 配置文件参数说明

代码语言:javascript
复制
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: 重定向

常见案例

代码语言:javascript
复制
// 重定向到百度
[
  { 
   
    "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测试,返回一个给定的值,保证该流程可以正常发起.

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151371.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mock测试使用说明
  • 1 mock简介
  • 2 mock的使用
    • 1 下载moco的jar包
      • 2 启动jar包
        • 3 简单案例1
          • 1 创建配置文件config-get.json
          • 2 启动jar包
          • 3 测试
        • 4 简单案例2
          • 1 创建配置文件config-post-get.json
          • 2 启动jar包
          • 3 测试
        • 5 配置文件参数说明
        • 6 总结
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档