代码改变世界

弱网环境生成订单错误

2016-05-16 15:00  yoko8  阅读(421)  评论(0)    收藏  举报

背景:今天公司网速特么慢,无意中用公司APP提交一张订单,N久无响应后提示”加载超时“,本以为订单没有成功,便点退出键想放弃下单,怎不知点击后弹出指示”购物车中无商品“,这句话引起了我的注意,于是后台查看,果然订单已经生成。。。

初步推断是弱网环境下APP没有提示下订单成功,但后台已生成订单,于是各种搜索得到了以下方法验证BUG,并与开发反应后BUG得到修正,现在总结分享一下

设置限速:

1.Fiddler-》设置-》自定义规则-》在打开的记事本中查找并更新以下:

if (m_SimulateModem){
// Delay sends by 300ms per KB uploaded.延迟发送300 ms / KB上传
oSession["request-trickle-delay"] = "3000";//此处输入需要延迟发送的时间,单位为毫秒
}

if (m_DisableCaching){
oSession.oRequest.headers.Remove("If-None-Match");
oSession.oRequest.headers.Remove("If-Modified-Since");
oSession.oRequest["Pragma"] = "no-cache";
}

// User-Agent Overrides
if (null != sUA){
oSession.oRequest["User-Agent"] = sUA;
}

if (m_Japanese){
oSession.oRequest["Accept-Language"] = "ja";
}
}

static function OnBeforeResponse(oSession: Session)
{
if (m_SimulateModem){
// Delay receives by 150ms per KB downloaded.延迟接收150 ms / KB下载
oSession["response-trickle-delay"] = "3000"; //此处输入需要延迟接收的时间,单位为毫秒
}

2.设置-》performance->勾选Simulate Modem speeds

 

测试:

打开Fiddler->监控对应测试手机-》指定监控主机-》手机操作到提交订单前一步-》设置限速-》提交订单

 

结果:限速为延迟发送3000 ms / KB时BUG重现了。

 

原因:IOS设置每发送接收一次时间为6秒(超过6秒提示超时),后台设置生成订单时间为10秒(10秒内响应的话生成订单),当响应时间在6-10秒时,后台操作生成订单,APP返回错误,两者处理不一至,导致BUG出现

 

处理方法:IOS设置响应时间与后台一样设置为10秒,10秒内响应的话APP与后台统一处理为生成订单,超过10秒的话统一处理为不生成订单。