Fiddler无所不能——之测试开发攻城狮必备利器
Fiddler无所不能——之测试开发攻城狮必备利器
1、模拟真实网络环境4g网、3g网络、2g网络、弱网、请求超时
开启弱网Rules——Performance——勾选Simulate Modem Speeds
关闭弱网Rules——Performance——取消勾选Simulate Modem Speeds
自行设置指定的上行下行网速
2、并发请求
右击——Replay——按住shift再点击Reissue Requests,弹出框设置并发次数5次并确定,可以看到同一时间相同请求发送了5次,这就是并发请求,
这时不但验证了后端判断,还验证了并发导致的一些问题
3、接口测试、接口调试(手动配置接口参数/抓的接口手动拖至composer即可)
4、环境映射(安装插件stave)
<1>环境切换:当我手机装的是测试环境包/线上环境包,想映射到线上环境/测试环境,可以通过此途径
<2>旧版本兼容:新版本已测试通过,想测老版本兼容,可以下载线上包,通过映射到测试环境,可以达到线上前端兼容新服务测试
5、mock服务(前后端联调、前端测试、页面适配测试)
项目版本中,当我们前端已做好,后端未好时,我们不能干坐着等后端好了再调试或再测试,这时我们就可以用上这个方法了
<1>桌面新建json/txt接口响应数据,设置测试数据,与接口定义文档一致
<2>将要测接口拖至右边AutoResponder窗口中,勾选Enable rules,勾选此接口并选中,选find a file…(图2)然后选响应文件(图1)
<3>设置完成后,app前端再次请求此接口,查看响应体(图3),并查看页面展示数据,正是图1设置的响应体
6、模拟定位
有时我们想测试下app的其它城市定位;或者其它城市切换至本城市
<1>抓取美团小程序定位接口,目前定位上海
https://i.meituan.com/locate/latlng/34.287145,108.948189.json?isMars=false
<2>百度地图查找要定位城市的坐标点34.287145,108.948189
<3>fiddler底部栏中bpu https://i.meituan.com/locate/latlng 回车后
<4>小程序中再次请求定位这个接口,此时拦截住请求,快速修改上海坐标点为西安坐标点,点run to completion,接口响应定位数据为西安
<5>再次查看小程序里,首页定位到西安了,达到目的了,哈哈哈哈哈
7、fiddler查看显示接口请求的ServerIP
1. 运行fiddler,菜单,Rules->Customize Rules…或者点击右侧tab
“FiddlerScript”
2、Ctrl+F查找“static function Main()”字符串,然后添加下面这行代码:
FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");
7、模拟失败场景测试(登录失败、查询页面失败等)
我们平时测试重点只会关注正常成功逻辑,而恰恰忽略了异常失败逻辑,并且对于异常测试无从下手,这时我们就要拿出秘密武器了
<1>抓取要测试的接口,我们可以看到接口是通过的
<2>右侧切换至AutoResponder页面,拖拽<1>中接口至AutoResponder页面中间区域,勾选顶部3个选框,底部选择要模拟的报错形式,点save保存
<3>这时就设置好了,重新请求此接口或退出app重新进,再次请求此接口,我们回看到左侧抓包区域,此接口报错502,就达到了模拟接口502的效果
~~~~如果你学到了,欢迎转发~~~~~~
Fiddler无所不能——之测试开发攻城狮必备利器的更多相关文章
- Android优秀资源整理合集(论菜鸟到高级攻城狮)
转载请注明转自:http://blog.csdn.net/u011176685/article/details/51434702 csdn文章:Android优秀资源整理合集(论菜鸟到高级攻城狮) 时 ...
- JBPM4之decision节点:3、程序猿|菜鸟|攻城狮|牛人
JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门——3.JBPM4开发环境的搭建 JBPM4入门—— ...
- 遗留系统:IT攻城狮永远的痛
我常常觉得我们非常幸运,我们现在所处的时代是一个令人振奋的时代,我们进入了软件工业时代.在这个时代里,我们进行软件开发已经不再是一个一个的小作坊,我们在进行着集团化的大规模开发.我们开发的软件不再是为 ...
- 【Copy攻城狮日志】docker搭建jenkins拉取svn代码打包vue项目部署到nginx
↑开局一张图,故事全靠编↑ 前言 打开搜索引擎输入『Copy攻城狮』,发现最新的一条记录已经是去年的4月,意味着我又有一年时间没有再总结成长了.习惯了“温水煮青蛙”的日子,无论是经验水平还是薪资收入, ...
- iOS程序猿如何快速掌握 PHP,化身"全栈攻城狮"?
这是一篇以 iOS 开发人员的视角写给广大iOS 程序猿的 PHP 入门指南.在这篇文章里我努力去发掘 objectiv-c 与 php 之间的共性,来帮助有一定 iOS 开发经验的攻城狮来快速上手一 ...
- 攻城狮送女友的CSS3生日蛋糕
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm 代码如下: <!DOCTYPE html> <html> <head&g ...
- iOS攻城狮修炼之路
自己总结的学习iOS的笔记,打造一个全面的知识体系,iOS攻城狮修炼之路[持续更新中] iOS学习笔记01-APP相关 iOS学习笔记02-UIScrollView iOS学习笔记03-UITable ...
- 【Copy攻城狮日志】Node快速重命名文件,告别Potplay字幕困扰问题
↑开局一张图,故事全靠编↑ 前言 Copy攻城狮日志的惯例,开局一张图,开始为您讲述一个鲜为人知的故事.故事的开头要从本大狮从盗版网站下载udemy课程的犯罪伊始说起,去年的某月某天,我真正接触到了“ ...
- 软件攻城狮究级装B指南
引言 装B于无形,随性而动,顺道而行,待霸业功成之时,你会发现:装B是牛B最好的的试金石. -- SuperDo 第一章.人间兵器(准备工具) <论语·魏灵公>:“工欲善其事,必先利其器. ...
随机推荐
- [翻译] KGModal
KGModal KGModal is an easy drop in control that allows you to display any view in a modal popup. The ...
- 在NGUI中高效优化UIScrollView之UIWrapContent的简介以及使用
前言: 1.我使用的NGUI版本为 v3.7.5,不知道老版的NGUI是否有UIWrapContent 这个脚本. 2.本文讲解主要以图片显示的例子为主,本文例子UIScrollView是水平方向,一 ...
- Python学习---Python安装与基础1205
1.0. 安装 1.1.1. 下载 官网下载地址:https://www.python.org/downloads/release/python-352/ 1.1.2. 配置环境变量 因为在安装的时候 ...
- svchost.exe占网速的解决办法
1.win+R,然后输入gpedit.msc打开本地组策略编辑器. 2.打开window设置--安全设置--本地策略--安全选项--找到 用户帐户控制: 以管理员批准模式运行所有管理员 和 用户帐户控 ...
- XtraBackup出现 Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
解决办法1.建立一个软连接 ln -s /dat/data/mysql/mysql.sock /var/run/mysqld/mysqld.sock 解决办法2:指定--host=127.0.0.1
- PHP笔记09:PHP之 MVC理解
1. 首先通俗地说说我对MVC的理解: Model是负责干活的,它干的活主要是从数据库中获取需要的数据以及对获取的数据按照业务逻辑进行加工处理,至于为什么要干某件活,何时干某件活它一概不管,而这正是C ...
- pushlet服务端推送——多播
版权声明:本文为博主牟云飞原创文章.未经博主同意不得转载. https://blog.csdn.net/myfmyfmyfmyf/article/details/36364337 ---------- ...
- Spring Security 自定义配置(1)
@Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapte ...
- BZOJ1012:[JSOI2008]最大数maxnumber(线段树)
Description 现在请求你维护一个数列,要求提供以下两种操作:1. 查询操作.语法:Q L 功能:查询当前数列中末尾L 个数中的最大的数,并输出这个数的值.限制:L不超过当前数列的长度.2. ...
- 随手练——S(n)=O(1),判断一个链表是否为“回文”
方法一:T(n)=O(n),S(n)=O(n) 走完一遍链表,每个值入栈,之后再走一遍链表,和每次弹出的栈顶进行比较. 核心: LNode *p = l->next; while (p) { s ...