一、什么叫mock测试

mock测试就是在测试过程中,对某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便于测试的一种测试方法,其实就是模拟测试,也就是假的测试,实际项目中主要用来模拟那些无法实时连接的后端,或是没有开发出来的后端,用于获得结果反馈的一种测试方式。通过发送请求后,模拟后台返回的响应内容来确认当前接口的正确性,而无需真的启动后端

注意:mock测试这个功能要注册postman账号才能用

二、Mock常见的使用场景

1、无法控制第三方系统某接口的返回,返回的数据不满足要求时
比如:支付中最常用的刷卡支付,有可能直接支付成功,也有可能返回支付中,此逻辑受平台方风控逻辑校验,对我们来说完全是黑盒子

2、某依赖系统还未开发完成,就需要对被测系统进行测试
前端开发比较依赖后端开发提供的接口,然后根据接口返回值设计各类场景页面。当服务端开发人员未及时提供接口时可能会影响到前端开发及整个项目的进度,特别是在敏捷开发中,对于上下游开发顺序更加依赖

3、有些系统不支持重复请求,如支付功能

4、系统功能有访问频次限制,获取敏感信息的接口访问频次不可高于xx等

 

三、postman如何使用Mock server进行测试?

1)新建mock sever:点击选择Mock server,点击上方的“+”按钮----》配置Mock 测试的请求,包括请求的方法、请求的URL、请求体、返回的code,返回内容等相关内容,根据接口请求方法配置相应内容,如下图所示:

mock 生成测试数据 Java_mock 生成测试数据 Java

 

 

注意接口地址url只需要填写接口地址,不需要添加主机(服务器)地址,如http://www.baidu.com/index接口,我们在URL中只需要填写/index即可,主机地址再完成MockServer创建后,系统会自动配置相关的环境变量存储url

2) 点击NEXT进入下一步,输入mock server名称,使用的环境(也就是使用哪个服务器),如果有自己的测试服务器可以选择对应的测试服务器,没有合适的环境可以选择no environment(此时默认使用postman提供的服务器),并且设置成私有mock服务(表示不公开对外访问),点击create Mock server按钮,如下图

mock 生成测试数据 Java_mock 生成测试数据 Java_02

3)创建并获取API key:点击右侧的postman API key,在之后的user manual页面上进入到Generating a Postman API key,点击Postman API Keys page 链进入api key页面,然后点击Generate API Key按钮,输入key的名字并生成API key,如下图所示

mock 生成测试数据 Java_返回结果_03

 

mock 生成测试数据 Java_API_04

 4)回到postman中,点击collections,发现在右侧collection集合里面出现了一个以刚才mock server的name命名的collection,点击这个集合,显示之前在mock里面配置的接口,接口地址自动补充了主机地址{{url}}, 点击右上角眼睛旁的下拉框查看环境,新增了一个刚才mock server的name同名的环境,将环境切换到对应环境如MockTest,同时该环境下发现mock server的url已经配进去了

mock 生成测试数据 Java_API_05

 

5) 配置api-key:在右上角眼睛处的环境中点击Edit,添加第三步中创建的api-key,其中VARIBLE对应填写api key的NAME, VALUE为对应的值,并保存

mock 生成测试数据 Java_服务器_06

 

 6) 请求设置:在对应的请求上的header中输入API-KEY格式:KEY:x-api-key VALUE:{{NAME}},请求的其他部分与之前设置的一致,点击send,获取结果

mock 生成测试数据 Java_mock 生成测试数据 Java_07

 

  6) 添加新的请求进行Mock测试:在当前collection下新建一个请求,设置请求方法、参数、url自定义,url要以{{url}}/xxx/xxx格式。header中配置x-api-key和{{name}},配置好后,点击后面的...,然后选择add example,配置响应结果并保存,如下图所示

mock 生成测试数据 Java_返回结果_08

mock 生成测试数据 Java_服务器_09

 

 7)回到刚刚创建的请求,点击send按钮进行测试,查看预期返回结果,返回结果就是设置的example的结果

mock 生成测试数据 Java_返回结果_10

 

 

注意:一定要记得先设置对应的example并且保存后再运行新创建的请求,否则返回结果会报错