打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
电脑软件(程序)mock测试方案
大家好,我是谭叔。
上篇文章,我分享了电脑软件如何抓包?如何模拟弱网和超时环境?,在方法五中有推荐Fiddler+Proxifier给电脑软件的请求打前后断点,用来进行异常测试的方法。
但是,如果你请求的接口超时时间较短,使用此方法便会捉襟见肘——你还来不及篡改响应,流程就已走完,无法构造异常响应。
此时,你需要引入MOCK测试。
什么是MOCK测试?
在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。比如
进行接口测试时:
无法控制第三方系统某接口的返回,返回的数据不满足要求
某依赖系统还未开发完成,就需要对被测系统进行测试
有些系统不支持重复请求,或有访问访问频次限制
等场景,我们可以使用MOCK测试方法。
也许,你听说过MOCK测试,并且做过接口的MOCK测试。
但是,电脑软件如何做?怎么做?
谭叔今天便分享一份电脑软件的MOCK方案,以解决此类问题。
简单说来,我们需要:mock工具+代理工具。
方案一:Fiddler
配置好Fiddler+Proxifier环境后,便可使用Fiddler强大的重定向功能。
比如:我在服务器日志里捞了一条hytrade/info接口的异常响应json,在fiddler中,将接口的响应重定向到该异常json。
{"code":"TR10000","msg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","sourceMsg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","data":null,"success":false}
打开待测试的电脑软件,针对hytrade/info接口的实际业务,发起操作。
可以看到,软件拿到了异常的响应,并给出了提示。
查看电脑软件的日志,确实拿到了mock的json串。
2021-04-06 13:45:17.709 [INFO]E:\Jenkins\workspace\qt_http_task.cpp[152] QtHttpTask::Post b7596ffd19a443ff886fb5784bf70751 start post param: http://testgw.xxxx.com/hytrade/info?param={xxxxxxxxxx}]}&sign=xxxxxxxxxx&lkToken=xxxxxxxxxx2021-04-06 13:45:19.381 [INFO]E:\Jenkins\workspace\qt_http_task.cpp[438] QtHttpTask::SlotReplyFinished b7596ffd19a443ff886fb5784bf70751 -> {"code":"TR10000","msg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","sourceMsg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","data":null,"success":false}
至此,我成功进行了一次mock测试,并且发现了一个问题:后端服务未兼容异常,易暴露堆栈信息。
通过这种方式,你能轻松发现没有降级方案的接口,并且能够尝试更多场景的异常测试。
但是,当要MOCK的接口不止一个时,此方法有明显的短板——配置困难。此外,Fiddler抓包会影响一些程序的使用,持续操作时,有诸多不便。
这时,你得使用一种即开即用、支持多接口、纯净的MOCK方法。
方案二:Mockoon+LightProxy
一、mock环境
安装
Mockoon是在本地运行mock api最简单、最快的方法。无需远程部署、无需帐户、开源。
Mockoon安装包:http://www.testtalking.com/#/data/data
设置
设置hytrade/info接口的响应为刚刚的异常json
例如:设置请求127.0.0.1:3355/hytrade/info的响应内容为一条异常json:
{"code":"TR10000","msg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","sourceMsg":"系统异常[com.xxxx.getTraceId()Ljava/lang/String;](TR10000)","data":null,"success":false}设置Headers
启动
验证
用postman调一下,可以拿到结果,证明服务启动成功
二、代理环境
安装
LightProxy 是 阿里巴巴 IFE 团队开发的一款基于 Electron 和 whistle 支持 Windows、Mac 的开源桌面代理软件 。LightProxy 可以自动完成证书安装和代理设置,让开发人员能够精确的掌握自己的开发环境,通过 HTTP代理使用规则转发、修改每一个请求和响应的内容。
LightProxy安装包:http://www.testtalking.com/#/data/data
设置
将本机访问的http://testgw.xxxx.com/hytrade/info代理到前面设置的mock服务http://127.0.0.1:3355/hytrade/info
http://testgw.xxxx.com/hytrade/info http://127.0.0.1:3355/hytrade/info
三、实操
打开待测试的电脑软件,针对hytrade/info接口的实际业务,发起操作。
可以看到,软件拿到了异常的响应,并给出了提示。
一如既往,做个总结
01 Mockoon+LightProxy搭配使用的结果,和Fiddler重定向一样,但他俩即开即用、支持多接口灵活操作,相比Fiddler便捷不少,值得入手
02 可考虑在服务器上搭建mock环境,统一维护mock环境,以减少重复操作
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Mock测试,结合Fiddler轻松搞定不同场景
使用Mock方法完成接口测试的方法
推荐一款全能测试开发神器!1分钟快速上手!
Fiddler抓包12-AutoResponder返回本地数据(mock)
什么是API Mock测试?
移动端渗透测试抓包方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服