前言:

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建议的上下行速率如下,同时还可以控制丢包率的数据

         网络                    上行                        下行
         弱网                      10                         30
         2G                         15                         50
         3G                        384                      2800
 

打开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

最新文章

  1. 全部leetcode题目解答(不含带锁)
  2. 向上滚动或者向下滚动分页异步加载数据(Ajax + lazyload)[上拉加载组件]
  3. c#中的math类
  4. 游戏引擎网络开发者的 64 做与不做 | Part 1 | 客户端方面
  5. 【转】java静态代码块和构造方法执行顺序
  6. 动态上传多个文件(asp)
  7. (转载)MVC + JQUERY + AJAX的几种方式
  8. CodeFirst解决数据迁移问题
  9. Decimal
  10. GIT入门笔记(15)- 链接到私有GitLab仓库
  11. laravel 多对多关联 attach detach sync
  12. C++:UNREFERENCED_PARAMETER用法
  13. Uboot 常用指令
  14. Matlab 瑞利信道仿真
  15. EGL 1.0 学习笔记
  16. vscode 习惯配置
  17. hot code loading in nodejs
  18. Ext 向Ext.form.ComboBox()中添加列表的分类
  19. bzoj千题计划156:bzoj1571: [Usaco2009 Open]滑雪课Ski
  20. MYSQL IFNULL函数的使用

热门文章

  1. ubuntu18.4 与pc notepad++ 使用nppftp
  2. 【软件工具】Git 使用总结
  3. Centos7上安装最新的nodejs
  4. FileUtils 文件工具类
  5. 详解 OpenGL ES 2.x 渲染流程
  6. com 组件的本知识
  7. 使用dom4j工具:获得文本内容(四)
  8. Android中TextView和EditView常用属性设置
  9. QT之ARM平台的移植
  10. Python习题集(十四)