题目描述:
用户使用手机操作头条app时总是出现“服务繁忙”,使用其他app却没有问题,针对这种情况从客户端,服务端和网络方向分析可能的原因?
思考:
这个问题出现的原因很多,咱们不能东一榔头、西一棒槌,想到哪里说到哪里(这样定位问题就是瞎蒙),应该有逻辑的,有一套定位问题的思路。
回答的思路:
1、头条app有问题,但是手机其他app没有问题, 说明什么?这个是一个很典型的对照测试,说明网络没问题,手机没问题,问题出在头条app整套系统中,接下来我们就需要思考头条app的通信过程。
2、简单画一下头条app的整个通信过程,目前主流的方案大概如下:
①app客户端(浏览器)发起请求;
②nginx收到请求,然后转发给后端服务;
③后端某个服务节点收到请求,处理请求,返回给nginx;
④nginx收到回复返回给客户端(app 或者浏览器);
大概清楚了通信过程,其实每一个环节都可能出问题,app的问题、nginx的问题、后端服务的问题。
3、怎么区分到底是客户端的问题还是后端的问题的问题?
现在很流行的抓包就排上用场了,在客户端和nginx之间设置抓包工具的代理(fiddler或者charles)。分析头条app前后端的请求,如果相应都是对的,但是app显示服务繁忙,说明问题在app端,需要在app端找原因,如果代理都没有抓到请求,说明没有发起请求,问题也可能出现在app端:
app端可能的原因:
- app权限设置不对;
- app包版本不对;
- app端开发修改代码后导致的错误;
- 其他原因;
4、通过抓包分析排除app端问题后,那问题可能就出现nginx和后端服务器或者系统内部的网络问题(nginx和后端服务网络有问题):
①检查服务端是否正常运转;
②服务端正常运行,就查看服务端的日志,看看服务端接收到的请求和响应是否正确,如果接受到的请求不对,那说明问题可能出现在nginx转发,如果请求正确,响应不对,那么问题出现在服务端,需要仔细定位服务端为啥会出现这个错误(数据库、缓存是否ok,服务是否ok);
③如果服务端正常,nginx也能正常收到请求,但是服务端日志没有请求收到的消息,说明nginx配置可能不对, 或者nginx到服务端的网络不通。
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。