使用postman搭建mock服务
Posted wx170119
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用postman搭建mock服务相关的知识,希望对你有一定的参考价值。
背景:
近期新项目开发,测试接口需要使用mock服务,计划采用java代码写,在网上找了相关例子写了一版(样例如下),结果发现,是和源代码强关联的,因为没有查看代码权限,故转而使用postman来搭建mock服务。
import java.util.List;
public class SignonServiceTestsDemo {
// 测试对象,一个服务类
private SignonService signonService;
// 被Mock的类,被服务类所依赖的一个DAO类
private SignonDao dao;
public void testSignon(){
// SignonService#findAll()内部会调用SignonDao#findAll()
// 如果不做定制,所有被Mock的类默认返回空
List<Signon> signons=signonService.findAll();
assertTrue(CollectionUtils.isEmpty(signons));
//定制返回结果
Signon signon=new Signon();
signon.setUsername("foo");
when(dao.findAll()).thenReturn(Lists.arrayList(signon));
signons=signonService.findAll();
//验证返回的结果与设计的数据一致
assertEquals(1,signons.size());
assertEquals("foo",signons.get(0).getUsername());
}
}
首先说说mock服务的基础知识:
什么是Mock
以可控的方式模拟真实对象行为的假的对象,很类似汽车设计者使用碰撞测试假人来模拟车辆碰撞中人的动态行为。
Mock常见的使用场景:
1、无法控制第三方系统某接口的返回,返回的数据不满足要求
比如:支付中最常用的刷卡支付,有可能直接支付成功,也有可能返回支付中,此逻辑受平台方风控逻辑校验,对我们来说完全是黑盒子
2、某依赖系统还未开发完成,就需要对被测系统进行测试
前端开发比较依赖后端开发提供的接口,然后根据接口返回值设计各类场景页面。当服务端开发人员未及时提供接口时可能会影响到前端开发及整个项目的进度,特别是在敏捷开发中,对于上下游开发顺序更加依赖
3、有些系统不支持重复请求,如支付功能
4、系统功能有访问频次限制,获取敏感信息的接口访问频次不可高于xx等
话不多说,开启postman搭建mock服务旅程
创建Mock服务有两个方法,下面分别作描述
方法一:
1.首先,需要注册postman,最好是安装到本地,然后注册,注册会让你去官网,注册好之后登录本地postman应用,登录后右上角会显示账户信息,如下图:
2.点击New下拉框后的向下箭头,选择Mock Server,进入Mock服务器创建界面,
3.输入你的请求地址,返回body,点击Next按钮,进入Mock Server配置界面,输入服务器名字,环境默认No Environment,勾选Make this mock server private,如下图(注:选择No Environment是默认将postman的服务器作为默认服务器,如果有自己的服务器也可以填写自己的测试服务器)
4.点击Create按钮,进入创建完成界面,该界面显示Mock服务器已创建,同是也帮你创建了服务器同名的文件夹,下图中的Mock Url就是Mock服务器的请求地址,如果接上第1步中自己定义的地址即可访问自己定义的接口,该地址不会变更,也可以用浏览器进行访问,这里要特别强调一下第4点的创建api,点击here后会跳到官网,让你自动生成自己的API,在后面发送请求里会作为请求头来访问,否则会提示"mockNotFoundError"
如果上图中点击here不能立马解决,会找不到Mock服务器的,解决办法描述在后面的遇到的问题中。
5.接下来,打开postman,在Collection中会看到上面第4步创建的Collection,打开请求后再右上角选择对应的环境,点击环境后的眼镜图标,会显示环境的请求地址和api信息(如果没有API,可以点击右上角的Edit添加即可)
6.接下来添加Example,点击右上角的Example按钮,会弹出请求和返回信息输入界面,如下,依次填入key为x-api-key,value为第4步生成的API key的值,点击右上角Sava Example按钮。
输入x-api-key
7.接下来就可以请求Mock服务器测试返回结果了,打开请求界面,点击Send按钮,提示返回
到此,postman 搭建Mock服务完成。
方法二:
先建立Collection,然后在里面创建Mock服务器,如下图:
点击Collection右上角的箭头图标,会弹出Collection详情,点击Mocks,点击Add a mock
环境选择No Environment,勾选Make mock server private,点击Get your Postman Pro API Key,会跳到官网,然后自己生成对应环境的APIkey,点击Mock This Collection。
在Collection中添加请求,输入请求地址和x-api-key发送请求即可
遇到的问题:
访问接口时提示“mockNotFoundError”,如下图:
原因:请求时没有附上对应的API keys,故请求不到Mock服务器
解决办法:
登录postman官网,进入个人设置界面->Postman API keys界面,点击Generate API keys,在弹出的界面输入你的key name,点击Generate API keys,会生成对应的key
然后将获得的API key放入postman请求头中,如下图,再点击请求,则会返回正确结果,如下图
参考资料:
https://www.jianshu.com/p/4afa11356662
https://www.cnblogs.com/wangx123sec/p/11494950.html
以上是关于使用postman搭建mock服务的主要内容,如果未能解决你的问题,请参考以下文章