电脑软件如何抓包?如何模拟弱网和超时环境?

大家好,我是谭叔。

在日常工作中,测试软件在弱网、超时、异常等场景下的运行状况,是保证系统稳定性的重要环节。

比如:

  1. 在一些特殊的测试场景中,需要请求后端服务超时,以查看软件是否能正常工作
  2. 有些场景,如熔断测试,需要后端服务返回某特定值,而这个特定值在异常情况下才会有

今天,谭叔跟大家分享我在测试电脑软件(程序)时,模拟弱网、超时环境,抓包电脑软件进行异常测试的方法。

方法一:修改hosts

将本机hosts修改为一个无效的ip地址,以模拟超时。比如,将网关设置一个无效ip,构造访问网关不通的场景。

image-20210406105731699

优点:操作简单

缺点:仅能验证无法请求某服务的场景,无法验证某服务不可用的场景

方法二:停服

顾名思义,将测试环境的后端服务停掉。

优点:可以模拟真实的超时场景

缺点:会造成服务不可用,影响其他测试 or 开发的工作

方法三:路由器限速

使用wifi路由器,在路由器后台设置网速。

image-20210405104621283

优点:限制wifi速度,操作简单

缺点

1、无网卡的台式机无法使用

2、路由器限速最低0.01Mbps/s,即1.25kb/s,无法达到Byte级别,当请求体很小时,仍旧无法模拟超时

方法三:使用NetLimiter4

NetLimiter4是一款简单实用、方便易用的网络流量监控软件,可以限制程序的上下行网速。

NetLimiter4安装包(破解版):http://www.testtalking.com/#/data/data

image-20210403202144657

优点

1、多版本可用(winXP、win7、win10),操作简单、使用方便

2、可以限制电脑软件的上传和下载速度,且能达到Byte/s级别

缺点

网速限制全局有效,当该软件有其他ip地址+端口的请求时,虽然没有勾选,但会将该请求同时限制,无法模拟单个接口的超时场景。

image-20210401135232883

方法五(推荐):Proxifier + Fiddler

Proxifer是一个socks5客户端,可以让不支持通过代理服务器工作的程序通过HTTPS或SOCKS代理。

Proxifier安装包:http://www.testtalking.com/#/data/data

Fiddler是一款代理抓包软件(测试人应该都知道)。

01 实现原理

一般的电脑软件不能设置代理,因此只用Fiddler检测不到数据,需要配合Proxifier使用。Proxifier负责把所有的请求发给Fiddler,再在Fiddler上分析客户端请求,并利用Fiddler一些强大的功能,如打断点,篡改请求或者响应内容等来模拟我们需要的测试场景。

02 配置代理

如图,配置Proxifier的代理服务器和代理规则

image-20210401140653213

image-20210401135312301

image-20210401135336535

使用方法

配置好Proxifier后,启动Fiddler,则可使用Fiddler,对电脑软件(程序)进行抓包,测试各种异常流程。

不会用Fiddler?请移步:Fiddler抓包指南

①打断点调试,模拟超时

请求前断点(before response): bpu testgw.xx.com

响应后断点(after requests): bpafter testgw.xx.com

比如:命令行输入bpu testgw.xx.com

即,程序请求testgw.xx.com时,请求不会发到服务端,被截留在Fiddler里,可以修改,再发起请求。

比如:命令行输入bpuafter testgw.xx.com

即,请求可以达到服务端,拿到响应,但我们可以使用Fiddler篡改响应,将错误的超时响应返回给程序,以观察程序对该异常的处理情况。

{"code":"GW40000","msg":"服务超时,请稍后再试~(GW40000)","sourceMsg":"服务超时,请稍后再试~","data":null,"success":false,"breaker":false}
②模拟弱网

如果要限制网速来模拟弱网,可以不打断点,通过修改fiddler配置的方式实现。

image-20210401140739872

搜索m_SimulateModem

image-20210401140811995

根据需求自行修改:上传1KB需要300ms,转化一下:1Kb/0.3s = 10/3=3.3(KB/s)

修改后,点击保存,并勾选Simulate Modem Speeds生效。

image-20210401140856454

注意事项

  1. Proxifier默认占用8888端口,如果Proxifier不可用,在配置正确的情况下,需检查端口是否被占用。
  2. 使用NetLimiter4限速后,关闭NetLimiter4时,记得去勾选,否则会影响程序正常使用。

一如既往,做个总结

方案是死的,人是活的,工作时多动脑筋,多想想解决之道,在合适的场景用合适的工具,才能高效率的达成你的测试目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小谭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值