与Fiddler旗鼓相当的mock工具!

liam 等级 210 0 0
标签:

前言

一大早测试部的老大就召集我们开了个会——原因是我们组负责的业务除了个线上漏测,用户的投诉跟雪花似的纷至杳来。

公司门口那个巨大的显示屏就在那轮播着用户反馈,好几屏都是用户在吐槽这个bug。

没啥可说的,该背的锅还是要背的,那个漏测也不算冤,测试同事造不出那个异常场景,心中侥幸,觉得不至于异常会导致客户端出现啥问题。偏偏它就出了问题!

后来组里开会复盘了下,决定以后在测试环节里引入mock测试工具协助测试。

主要为了解决我们测试过程中遇到的以下问题:

a.代码存在多个接口依赖的问题,造出测试场景费时费力,且有时由于代码设计和业务隔离的问题无法造出来
b.涉及到外部第三方资源,无法调试外部代码内部情况,无法造出特定场景
c.后台开发还没有完成,由于进度赶,需要提前测试前端问业务

mock测试是个啥

mock这个英文单词的意思是模拟,在测试流程中指的是对不容易构造或不容易获取的对象,用一个虚拟的对象来创建以便测试。大致可分为两类:

客户端 Mock:在被测服务内部工作,直接拦截被测服务的 API 请求方法,直接从方法内部返回预定义的 Mock 响应。

服务端 Mock:在被测服务外部工作,作为 HTTP 服务器接收被测服务发送的 API 请求,并返回预定义的 Mock 响应。

到底要怎么搞

1.直接写代码

python中有个mock模块,支持用mock对象替换掉指定的python对象,达到模拟返回值的效果;
Java中也有jar包——mock server moco,它支持指定配置文件就可开启一个http服务器,支持动态加载。

写代码的优点在于可以完全服务于你所在项目的需求,缺点也很明显,一个迭代版本的需求往往给到的测试时间只有几天,没有时间给测试童鞋写代码来mock。 何况代码也不能保证一次性跑得通,往往调试也要花去很多的时间。

我的想法是——“不要重复造轮子”。市面上其实不乏好些免费的mock工具可以用,只要能够满足我们的目的——可模拟多种异常测试场景,mock配置快速简单。

2.使用mock工具

(1)mock工具的选用原则
接口管理方面: 接口测试一般会涉及数十个甚至上百个接口,这个接口后面还涉及到重构或者版本迭代的问题,因此mock工具需要具备接口管理的功能,能够管理多个版本的接口数据,不要一堆文件胡乱堆着无法处理。

数据构造方面: 接口返回的数据类型和测试数据需要能够做到尽可能少的配置工具和高度仿真,以达到在真实业务场景中测试的效果

场景模拟方面: 能模拟各种异常返回,以及由于接口依赖和资源隔离,业务隔离等原因在测试环境内无法构造出来的场景。

(2)场景Mock工具推荐
a.Fiddler 工具简介:Web调试工具, 它能记录所有客户端和服务器的http和https请求。允许你监视、设置断点、甚至修改输入输出数据。

Fiddler在测试中主要用于拦截接口,篡改接口返回值,来对前端进行调试。

但拦截接口需要设置正则表达式,一个个接口捕捉并修改返回值,对于接口数量少,只需要用到少量接口的测试需求,这个工具还是蛮好用的。

但如果是频繁迭代的需求,一个需求里有上百个接口,那么用Fiddler的效率则不高。
另一个问题是接口返回的数据需要自己手工填入,简单数据还行,复杂数据如base64编码,哈希值等等,那么构造起来非常费时费力。

b.Apifox
工具简介:Apifox提供了接口设计,调试,测试,管理等功能。我们这里只需要用到它的mock功能。
零配置mock Apifox里面预先设置了常见数据类型的mock规则,不需要用户自己配置,直接选择就可以用,目前已经支持非常多常用的数据类型,包括头像,手机号,邮箱,url,地址等,下图是目前无须配置可直接使用的数据类型: 与Fiddler旗鼓相当的mock工具!

如何构造数据: 在接口设计tab,直接在返回参数的mock选项框里选择与参数匹配的数据类型 与Fiddler旗鼓相当的mock工具!

与Fiddler旗鼓相当的mock工具!

自定义mock规则 如果你的项目里需要用到不怎么常见的数据类型,可以自定义mock规则。

与Fiddler旗鼓相当的mock工具!

定义完成之后可以在接口设计>response 参数里直接调用改mock规则。

构造异常测试场景
为了提高测试覆盖率,测试童鞋需要验证当接口返回 异常时客户端是否有容错机制,会不会出现崩溃。

这可以利用mock功能来协助测试。

与Fiddler旗鼓相当的mock工具!

接口管理
一个测试需求/项目常常包含多个测试接口,在Apifox里面可以以项目的形式,通过不同层级的文件夹来对接口进行管理。

与Fiddler旗鼓相当的mock工具!

总结 造测试数据是每个测试童鞋无法避免的一项事务,如果能借助工具,快速地构造测试场景进行用例测试,就能够极大地提高我们的测试效率。

收藏
评论区

相关推荐

mock 请求分发
首发于 <a name"vqeCn"</a 背景是这样的我们公司的后管项目走的不是 resful 风格的 api,而是走后管网关,后管网关会将请求进行分发,具体怎么分发,有这么以下几点: 请求全部走 POST 请求 URL 统一为 /agrs 数据提交方式为 application/json 数据格式大致分为: 系统报文头
Java单元测试神器之Mockito
**什么是 Mock 测试 ?** ----------------- Mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。什么是不容易构造的对象呢?例如HttpServletRequest,需要在有servlet容器环境中创建获取。那不容易获取的对象呢?如一个JedisCluster,需要准备r
Charles 从入门到精通
内容清单 ---- * Charles 的简介 * 安装 Charles * Charles 初始化设置 * 过滤网络请求 * 截取HTTP/HTTPS数据 * 模拟弱网环境 * 修改网络请求 * 修改服务器返回内容 * 服务器压力测试 * 反向代理 * 解决与翻墙软件的冲突 Charles 的简介 -----
Fiddler 高级用法:Fiddler Script 与 HTTP 断点调试
之前在《[关于 WEB/HTTP 调试利器 Fiddler 的一些技巧分享](http://my.oschina.net/leejun2005/blog/151103)》中系统的介绍过 Fiddler 的原理与一些常见技巧,但那篇文章只是入门科普,并不深入,今天要介绍到的内容相对更加高级与深入,扩展性更好,功能更加强大。 1、Fiddler Script
Fiddler4 手机抓包
1.要对计算机Fiddler进行配置,允许远程计算机连接。 ![](https://oscimg.oschina.net/oscnet/537450476e2a65354ebf39ee61e51cf6b1d.png) 2.保证手机电脑在同一局域网中。 3.手机上设置代理服务器。以华为手机为例,设置-->WLAN-->找到并长按目前所连接的WiFi-->
Fiddler抓取手机APP数据包
**第一步:下载神器Fiddler,下载链接:** [http://w.x.baidu.com/alading/anquan\_soft\_down\_ub/10963](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fw.x.baidu.com%2Falading%2Fanquan_sof
Mockito 简明教程
原文同步至 [http://waylau.com/mockito-quick-start/](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fwaylau.com%2Fmockito-quick-start%2F) Mock 测试是单元测试的重要方法之一。本文介绍了基于 Java 语言的 M
Mockito模拟进行单元测试
### 1.1 Mockito是什么?     MOCK意思是模拟的意思,主要被用来进行数据的人工组织,不会真正地调用第三方服务器,类似redis,mysql等都不会调用,也不用关心数据底层是如何进行处理的,我们要做的只是将本单元的逻辑进行单元测试,验证数据的逻辑处理性,而其中mock较好的框架就是Mockito。     Mockito是mocking
Mock测试学习
Mock 测试就是在测试过程中,对于某些不容易构造(如 HttpServletRequest 必须在Servlet 容器中才能构造出来)或者不容易获取的比较复杂的对象(如 JDBC 中的ResultSet 对象),用一个虚拟的对象(Mock 对象)来创建以便测试的测试方法。 比如说你需要调用C服务,可是C服务还没有开发完成,那么你就可以将调用C服务的那部
Nodejs中的请求使用代理
### 1、用node自带的http模块请求 var http = require('http'); var options = {}; //最终请求地址 options.path = 'http://proxy.com/path?' + qs.stringify(querystringObjcet);
PC客户端(CS架构)如何实现抓包
针对PC客户端(C/S架构)的渗透测试,相比于B/S架构,它所使用到的通讯协议有多种,如TCP、HTTP(S)、TDS等。如何实现PC客户端抓包呢,常使用的工具有Wireshark、iptool、WSExplorer等。 本文通过Fiddler+Proxifer 抓取PC客户端(C/S架构)客户端中的HTTP(S)流量。 **环境准备** 1、
PowerMock单元测试
      在[Java](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Flib.csdn.net%2Fbase%2Fjavaee)程序的单元测试中常用的mock工具有Mockito和EasyMock。但是这两种mock工具都无法实现对静态、final、私有方法或类的mock。因此有了功能强
聊聊开发日常的效率提升工具(全)
前言:日常开发中,好的工具往往能让我们事半功倍,有句老话说得好:工欲善其事,必先利其器。使用高效率的工具可以极大提升我们的开发效率。接下来分享下树酱平时开发中经常使用的一些效率工具 1 📁本地化工具篇 1.1 Apifox 官方介绍: API 文档、调试、Mock、测试一体化协作平台。Apifox Postman + Swagger + Mock + JM
聊聊前后端接口对接的那些事
前言在现在的前后端分离的项目开发中,为了不影响项目的进度,都是前后端同时进行开发。为了不影响咱们前端开发的进度,通常都是由后端同学,先提供接口文档,然后前端同学对照这接口文档来进行数据的模拟来完成前后端对接的工作。这里的数据模拟其实也就是大家平时所说的mock数据,那么前端当中有哪些方式来实现mock数据呢???…(⊙_⊙;)…咱们接着往下聊!(●^o^●)
与Fiddler旗鼓相当的mock工具!
前言一大早测试部的老大就召集我们开了个会——原因是我们组负责的业务除了个线上漏测,用户的投诉跟雪花似的纷至杳来。公司门口那个巨大的显示屏就在那轮播着用户反馈,好几屏都是用户在吐槽这个bug。没啥可说的,该背的锅还是要背的,那个漏测也不算冤,测试同事造不出那个异常场景,心中侥幸,觉得不至于异常会导致客户端出现啥问题。偏偏它就出了问题!后来组里开会复盘了下,决定