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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用App Designer 制作2048小游戏

    用App Designer 制作2048小游戏用 AppDesigner 制作 2048 小游戏用 AppDesigner 制作的 2048 MATLAB 版本是 2020b 记录下创作思路 以免日后忘记 APP 界面设计 APP 界面如下 为了好玩 还加入了游戏进行时播放音乐的功能 下面是游戏结束界面 除了按钮和开关部分 其余都可用标签控件制作 游戏结束界面在制作时将其 Visible 属性设为 Off 确保在主界面上层 当判定游戏结束时再将 Visible 属性修改为 On 即可 app gameOverLabe Visible

    2025年10月29日
    2
  • 点击图标打不开软件_pycharm安装完没有图标

    点击图标打不开软件_pycharm安装完没有图标情况说明:Pycharm在之前都可以正常打开,但是在我修改了它的安装存储目录后,点击图标就打不开了,而且没有任何反应!条件说明:我下载的pycharm是官方网站下载的。如何解决不可打开问题:步骤1.进入你的安装pycharm的bin文件,找到pycharm.exe.vmoptions和pycharm64.exe.vmoptions步骤2:分别将其打开,将里面的jar…

    2022年8月27日
    2
  • dz论坛数据库php网址,discuz论坛更换域名,搬家步骤

    dz论坛数据库php网址,discuz论坛更换域名,搬家步骤搬家步骤具体如下:1、打包数据库文件保存到本地。2、打包网站根目录所有程序(discuz)保存到本地。3、上传网站程序包和数据库包到新的空间,将数据库上传到新的服务器中。4、找到config\config_global.php文件,修改以下3处内容:$_config[‘db‘][‘1‘][‘dbuser‘]=‘数据库用户名‘;$_config[‘db‘][‘1‘][‘dbpw‘]=‘数…

    2022年7月25日
    11
  • Eclipse项目环境配置

    【1】环境变量配置安装好Eclipse,jdk后,我们不可避免需要配置如下环境变量。【JAVA_HOME】JAVA_HOME=C:\ProgramFiles\Java\jdk1.8.0_101【CLASSPATH】如果系统中已有该变量属性,只需要添加如下到变量值最前:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;…

    2022年4月7日
    266
  • ExtJs_FileUpLoad的那些花样作死法

    ExtJs_FileUpLoad的那些花样作死法

    2021年9月3日
    50
  • mybatis对应jdbc类型_java如何判断两个字符串是否相等

    mybatis对应jdbc类型_java如何判断两个字符串是否相等1.Mybatis支持的JDBC类型为了未来的参考,MyBatis通过包含的jdbcType枚举型,支持下面的JDBC类型。1 2 3 4 5 6 BIT FLOAT CHAR TIMESTAMP OTHER UNDEFINED TINYINT REAL VARCHAR BINARY BLOB …

    2022年10月9日
    0

发表回复

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

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