《如何进行接口mock测试》
前言:
Mock通常是指:在测试一个对象时,我们构造一些假的对象来模拟与其交互。而这些Mock对象的行为是我们事先设定且符合预期。通过这些Mock对象来测试对象在正常逻辑,异常逻辑或压力情况下工作是否正常。
那么哪些测试场景需要进行mock呢?
1)上游接口不方便更改,下游无法联调,此刻需要mock上游数据来完成本次的预期结果
2)依赖的上游的接口尚未开发完成
3)接口返回的结果不满足目前的测试需求。虽然接口已经实现,但是个别字段/返回不满足测试要求;
常用的代理工具拦截请求:Charles、 Fiddler【本文以Fillder工具示例】
mock数据分为两种情况:
1:mock请求的数据已至返回数据变更为预期结果
2:mock返回的数据已至返回至界面显示效果
1:修改请求数据
1)右键选中请求》replay》Ruissue and Edit 》修改参数》run to completion
- rules ->Automatic BreakPoints -> Before request :拦截客户端发送到服务器的请求,修改header的内容
2:修改返回数据After response(拦截服务器响应数据,修改后再返回客户端)
1)打开URL访问
2)找到相对应的接口,设置断点拦截请求(After response)
3)点击拦截接口》修改压缩为none,修改数据》设置为压缩GIZP
4)拖动接口至规则》取消拦截放行
5)继续运行,修改返回数据成功
延迟接口修改
1、 获取需要延迟的接口
2、配置延迟规则 AutoResponseder
延迟规则配置:*delay:2000 延迟2S
3、然后开启是请求延迟还是响应延迟
模拟弱网环境
Bandwidth(带宽) Utilistation(利用百分比) Round-trip(往返延迟) MTU(最大传输单元)
3G:300k-2Mbps左右
2.5G(GPRS)一般在100kbps
2G(GSM)一般在5-9kbps
PS:弱网、2G、3G建议的上下行速率如下,同时还可以控制丢包率的数据
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多
Fiddler弱网的原理
Rules—>Cutomize Rules打开CustomRules.js 文档,设置网络参数
if (m_SimulateModem) { // Delay sends by 300ms per KB uploaded. oSession["request-trickle-delay"] = "0.3"; // Delay receives by 150ms per KB downloaded. oSession["response-trickle-delay"] = "0.15"; }oSession["request-trickle-delay"] = "0.3";
- Delay sends by 300ms per KB uploaded:上传1KB内容需要300ms,转化一下上传速度:1Kb/0.3s = 3.3KB/s,网络上行速度为3.3KB
- Delay receives by 150ms per KB downloaded:下载1KB内容需要150ms,转化后的下载速度:1KB/0.15s=6.6KB/s,网络下载速度为6.6KB,若下载速度为50KB/s 则延迟时间应为20ms(1kb/50kb)
- 同时选择接口开始和结束请求,查看响应时间
https://www.cnblogs.com/fighter007/p/13999543.html
https://www.doc88.com/p-3015598697603.html