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


相关推荐

  • 求中位数Python_统计学中位数众数例题

    求中位数Python_统计学中位数众数例题首先需要数据源,这里随便写了一个:nums=[1,2,3,4]求均值和中位数均可以使用numpy库的方法:#均值np.mean(nums)#中位数np.median(nums)求众数方法一:在numpy中没有直接的方法,但是也可以这样实现:importnumpyasnpcounts=np.bincount(nums)#返回众数np.argmax(counts)  …

    2022年9月17日
    1
  • C#使用ManagementObjectSearcher获取本计算机CPU,硬盘,内存条等相关设备信息

    C#使用ManagementObjectSearcher获取本计算机CPU,硬盘,内存条等相关设备信息C#获取本操作系统显卡,CPU,硬盘等信息

    2022年10月2日
    2
  • 图片加密解密

    图片加密解密创建java项目运行javamain,会在图片路劲下生成加密后的图片packagecom.example;publicclassMyClass{publicstaticvoidmain(String[]args){//加密图片的路劲KMD1.encrypt(“F:/metro.png”);}}

    2022年6月21日
    33
  • 介绍几个能下载中英文双语字幕电影的网站

    介绍几个能下载中英文双语字幕电影的网站一,飞鸟影苑地址:bbs.wofei.net下载方式:BT中英文双语字幕电影下载具体地址是此论坛的原创区:[url]http://bbs.wofei.net/forum-30-1.html[/url]此论坛的中英文双语字幕电影和单中文字幕电影混在一起所以请看好发布帖子的主题的“[中英字幕]”字样,和国家再下载。–有不少中国电影和韩国片也是中英双语字幕。…

    2022年7月27日
    8
  • 使用activiti总结–bpmn画流程图

    节期结束,赶紧总结一下前几天使用的Activiti工作流的一些方法简单介绍一下Activiti:Activiti一套完整的方便的业务流程管理(BPM)框架,它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。开发人员可以通过插件直接绘画出业务。开发工具:IDEA画流程图插件:actiBPM(在IDEA插件管理中安装就可以了)BPMN…

    2022年4月3日
    246
  • 成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘「建议收藏」

    成功解决AttributeError: ‘str‘ object has no attribute ‘decode‘「建议收藏」成功解决AttributeError:’str’objecthasnoattribute’decode’目录解决问题解决思路解决方法解决问题AttributeError:’str’objecthasnoattribute’decode’…

    2022年7月25日
    14

发表回复

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

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