mock测试使用说明

mock测试使用说明mock测试使用说明1mock简介2mock的使用1下载moco的jar包2启动jar包3简单案例11创建配置文件config-get.json2启动jar包3测试4简单案例21创建配置文件config-post-get.json2启动jar包3测试5配置文件参数说明6总结因博主最近看测试同学偷偷在搭建mock进行测试,好奇看了一下,记录一下使用过程mock官网下载mock官网文档参考资料:https://blog.csdn.net/qq_32706349/arti

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

因博主最近看测试同学偷偷在搭建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

[{ 
   
    "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-20210718140537579

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 测试

image-20210718181024906

image-20210718181052918

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测试,返回一个给定的值,保证该流程可以正常发起.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2022年6月20日 下午3:46
下一篇 2022年6月20日 下午3:46


相关推荐

  • golang有序map_go语言发展不起来

    golang有序map_go语言发展不起来Go语言中的Map和List实现有序MapMap定义:Go中Map是一种无序的键值对的集合。Map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值。Map是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map是无序的,我们无法决定它的返回顺序,这是因为Map是使用链式hash表来实现的。其他语言中的实现:在C++STL中map采用红黑树实现,…

    2025年11月30日
    9
  • 【转】C:经典技巧,不用临时变量,交换变量值

    【转】C:经典技巧,不用临时变量,交换变量值

    2021年8月15日
    51
  • 是否可以将频谱分析仪当做网络分析仪使用?[通俗易懂]

    是否可以将频谱分析仪当做网络分析仪使用?[通俗易懂]PSD测量值通常以Vrms2/Hz或Vrms/rtHz为单位(这里的rtHz指的是平方根赫兹)。或者,PSD也可以采用dBm/Hz为单位。PSA、ESA、856XE/EC或859XE等频谱分析仪均可通过噪声标记对功率谱密度进行测量。矢量信号分析仪比如89600S或89400,直接就有PSD测量数据类型。 在频谱分析仪上最简便的测量方法(测量结果以Vrms/rtHz为单位)就是: 在振幅菜单中选择以伏特为单位的振幅(AMPLITUDE[硬键]>More>YAxis

    2022年8月11日
    7
  • KAZE 特征笔记

    KAZE 特征笔记KAZE特征主要通过非线性扩散滤波器建立非线性尺度空间,而非线性扩散的解决方案则是通过AOS方案解决的,特征的检测与SIFT特征检测相似,都是查找局部极值再亚像素化精确定位,而特征的描述子则是所使用M-SUFR描述子

    2022年6月15日
    35
  • 【ArcGIS Pro微课1000例】0016:ArcGIS Pro 2.8浮雕效果地图制图案例教程[通俗易懂]

    【ArcGIS Pro微课1000例】0016:ArcGIS Pro 2.8浮雕效果地图制图案例教程[通俗易懂]ArcGISPro制作地图时可以制作出很多很炫的效果,比如地图阴影、地图晕渲效果、浮雕效果、三维效果等等。本实验讲解在ArcGISPro2.8中制作浮雕效果地图,效果如下所示:【参考阅读】:ArcGIS实验教程——实验四十四:ArcGIS地图浮雕效果制作完整案例教程1.加载矢量数据加载实验数据包data16.rar中的秦安县乡镇矢量数据:2.缓冲区分析点击【分析】选项卡,点击【缓冲区】。输入要素选择秦安县乡镇数据,选择输出要素路径,线性单位输入-0.4,单位为千米,侧类型选择.

    2025年9月15日
    7
  • python中strip(),lstrip(),rstrip()函数的讲解

    python中strip(),lstrip(),rstrip()函数的讲解1 strip 它的函数原型 string strip s chars 它返回的是字符串的副本 并删除前导和后缀字符 意思就是你想去掉字符串里面的哪些字符 那么你就把这些字符当参数传入 此函数只会删除头和尾的字符 中间的不会删除 如果 strip 的参数为空 那么会默认删除字符串头和尾的空白字符 包括 n r t 这些 这里注意字符串 a 的两端都有一个空白字符 字符 a 和 n 之间也有

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号