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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 博弈论三个枪手的故事_博弈模型的三个基本要素

    博弈论三个枪手的故事_博弈模型的三个基本要素彼此痛恨的甲、乙、丙三个枪手准备决斗。甲枪法最好,十发八中;乙枪法次之,十发六中;丙枪法最差,十发四中。先提第一个问题:如果三人同时开枪,并且每人只发一枪;第一轮枪战后,谁活下来的机会大一些?一般人认为甲的枪法好,活下来的可能性大一些。但合乎推理的结论是,枪法最糟糕的丙活下来的几率最大。我们来分析一下各个枪手的策略。枪手甲一定要对枪手乙先开枪。因为乙对甲的威胁要比丙对甲的威胁更大,甲应该首…

    2022年10月15日
  • java 自定义异常

    java 自定义异常

  • linux中进程tty_linux下部署tomcat

    linux中进程tty_linux下部署tomcatttylinux下成功的安装了jdk和tomcat(日志显示tomcat已启动),http://localhost:8080/的结是timeout,有人知道为什么吗

  • 如何理解java方法的传值和传引用的参数传递方式_指针参数传递

    如何理解java方法的传值和传引用的参数传递方式_指针参数传递结论:1)当使用基本数据类型作为方法的形参时,在方法体中对形参的修改不会影响到实参的数值2)当使用引用数据类型作为方法的形参时,若在方法体中修改形参指向的数据内容,则会对实参变量的数值产生影响,因为形参变量和实参变量共享同一块堆区;3)当使用引用数据类型作为方法的形参时,若在方法体中修改形参变量的指向,此时不会对实参变量的数值产生影响,因此形参变量和实参变量分别指向不同的堆区例一:基本数据类型作为形参,运行结果不改变实参publicclassMain{publicstatic

  • C语言scanf()函数「建议收藏」

    C语言scanf()函数「建议收藏」scanf()函数基础扩充

  • Linux命令—tail 加过滤功能

    Linux命令—tail 加过滤功能tail-n 行数-f 文件夹路径以及名字,用于查看log 后面可以追加 |grep +名字 用于过滤ps aux|grep 文件 查看执行情况 tail-n40-f/home/logs/info.log|grepkeyword …

发表回复

您的电子邮箱地址不会被公开。

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