mock api测试demo
前言
本测试demo基于Spring框架测试,这几个月也是刚刚接触Spring的项目。如果不对的地方请多谅解。
正文
1、创建测试类,添加注解
@RunWith(SpringRunner.class)
@SpringBootTest
2、 添加自己要测试Controller作为成员变量,同时将我们自己的Mock类添加作为成员变量,目的是通过它来调用我们的api。我们自己的mock中引用的是MockMvc这个类,在org.springframework.test.web.servlet包下面。
在我们自己封装mock中的构造函数中来启动controller
public MockMvcCore(Object... controllers) {
if (mockMvc == null) {
mockMvc = MockMvcBuilders.standaloneSetup(controllers).build();
}
}
3、编写我们自己的调用测试方法
1、调用时候需要MockHttpServletRequestBuilder类,通过它来获取我们的请求方式:put,get,post,delete。直接点的方式就有这些方法,参数为我们的url地址。
MockMvcRequestBuilders.get(url)
2、MockHttpServletRequestBuilder.params(parameters);这个方法来设置我们的参入的参数,参数为Map类型;其中还有很多的方法,可以进行设置我们的请求内容。
mockHttpServletRequestBuilder.contentType(MediaType.APPLICATION_JSON);
mockHttpServletRequestBuilder.content(requestBody);
3、发起请求 ResultActions resultActions = mockMvc(就是MockMvc类).perform(mockHttpServletRequestBuilder);
4、拿到请求的结果 MvcResult result = resultActions.andReturn();这个时候就拿到结果了,是整体的结果。
5、最后拿到api相应的返回内容 result.getResponse().getContentAsString();
一般项目中都是要封装起来的以上的过程,是我从项目的封装分析处理的也就是没有面向对象的一个顺序。下面就是按照上面步骤的一个测试api方法。
@Test
public void test() throws Exception{ MockMvc m = MockMvcBuilders.standaloneSetup(myController).build();
MockHttpServletRequestBuilder builder = MockMvcRequestBuilders.get("myUrl");
MultiValueMap<String, String> parameters = new LinkedMultiValueMap<String, String>();
parameters.add("参数字段名","参数字段值");
builder.params(parameters);
ResultActions actions = m.perform(builder);
MvcResult result = actions.andReturn();
String content = result.getResponse().getContentAsString();
}
总结
大致就这么一个简单过程,封装起来就可以灵活应用了。也是第一次用Mock写测试,还请谅解。
Life is a journey. What we should care about is not where it's headed but what we see and how we feel
mock api测试demo的更多相关文章
- API 测试的具体实现
目录 API 测试的具体实现 基于 Spring Boot 构建的 API 使用 cURL 命令行工具进行测试 使用图形界面工具 Postman 进行测试 如何应对复杂场景的 API 测试? 总结 A ...
- JSX AS DSL? 写个 Mock API 服务器看看
这几天打算写一个简单的 API Mock 服务器,老生常谈哈?其实我是想讲 JSX, Mock 服务器只是一个幌子. 我在寻找一种更简洁.方便.同时又可以灵活扩展的.和别人不太一样的方式,来定义各种 ...
- android gps开发必备资料(含测试demo下载)
入门资料参考: How accurate is Android GPS? Part 1: Understanding Location Data How accurate is Android GPS ...
- 开源API测试工具 Hitchhiker v0.6更新 - 改进压力测试
Hitchhiker 是一款开源的支持多人协作的 Restful Api 测试工具,支持Schedule, 数据对比,压力测试,支持上传脚本定制请求,可以轻松部署到本地,和你的team成员一起协作测试 ...
- 如何通过Mock API提高APP开发效率?
APP开发过程中,如果可以在客户端的正常项目代码中,自然地(不影响最终apk)添加一种模拟服务器数据返回的功能,这样就可以很方便的在不依赖服务器的情况下展开客户端的开发. Mock API提供了这一问 ...
- Mock API是如何在开发中发光发热的?
在长期的服务过程中,我们经常会遇到前来咨询的用户与我们反馈以下这种情况:咨询者是一个前端人员,在项目开发的过程中需要与后端进行对接,遇到后端还没完成数据输出的情况下,他只好写静态模拟数据,在遇到大型项 ...
- MOCK API 的定义及实践(使用eolinker实现)
MOCK API 的定义 根据百度百科的定义,mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法.这个虚拟的对象就是mock对象,mock对 ...
- Python+Flask搭建mock api server
Python+Flask搭建mock api server 前言: 近期由于工作需要,需要一个Mock Server调用接口直接返回API结果: 假如可以先通过接口文档的定义,自己模拟出服务器返回结果 ...
- 《软件测试52讲》读书笔记 —— API测试怎么做
前言 文章中还介绍了测试工具,比如cURL.postman,单API如何测试:但这些都是偏基础的东西,且网上教程各式各样,就不再赘述了:这里主要讲的就是关于复杂场景的API测试要如何应对 API测试的 ...
随机推荐
- Jupyternotebook添加c++核心支持的配置过程
一.环境:虚拟机:(1)系统:centos7.5_1804(64bit)版本(2)软件环境:git.python3.5.3.Jupyter4.4.0二.下载安装脚本:资源及安装说明:https://g ...
- Rocket - diplomacy - BaseNode
https://mp.weixin.qq.com/s/eOgNLi_MJ8HJOpepGaaW8Q 简单介绍BaseNode的实现. 1. You cannot create a n ...
- js函数中的this关键字
关于这个this关键字,也是很多项目中常常被用到的,那么,有人也许会问,干嘛要用this呢,在函数被调用时,直接指明是什么对象在调用不就行了?还整那么个模模糊糊的概念出来干嘛?不过嘛,存在即真理,既然 ...
- 看不见远程新建git分支
再网页上新建了一个git分支.然后在本地跑git branch -r(查看远程分支)/ git branch -a(查看所有分支)两个命令,都没有看到新建的那个分支.这是为啥呢??? 原因是因为:gi ...
- Java实现 LeetCode 705 设计哈希集合(使用数组保存有没有被用过)
705. 设计哈希集合 不使用任何内建的哈希表库设计一个哈希集合 具体地说,你的设计应该包含以下的功能 add(value):向哈希集合中插入一个值. contains(value) :返回哈希集合中 ...
- Java实现 LeetCode 704 二分查找(二分法)
704. 二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 1 ...
- Java实现 蓝桥杯VIP基础练习 矩形面积交
描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入 输入仅包含两行,每行描述一个矩形. 在每行中,给出矩 ...
- Java实现 LeetCode 345 反转字符串中的元音字母
345. 反转字符串中的元音字母 编写一个函数,以字符串作为输入,反转该字符串中的元音字母. 示例 1: 输入: "hello" 输出: "holle" 示例 ...
- Linux 自动挂载与fstab文件修复
/etc/fstab文件 自动挂载就是写入/etc/fstab文件 vi /etc/fstab 其中,第九行是/分区的自动挂载信息,有6个字段 第一字段表示分区的UUID(硬盘通用唯一识别码,使用du ...
- react 性能优化注意事项
工具: React 16 或更新版本 只需在url 后边加 ?react_perf 后 performance 一栏中会添加 User Timing devtool 分析 state.props ...