2020年 是我做测试的第7年,也是做移动端测试第7年。现分享分享下移动端BUG排查思路
一、辅助工具:fidlder、charles
移动端测试的吃饭工具,用于抓去http请求后,然后进行各类分析及操作
二、熟悉并了解常见http码
比如:抓包看到请求 404 ,那就是资源不存在。那就3种可能
(1)静态图片404,说明该静态图片写死在前端请求里,即出现404的原因,图片静态资源没有放到指定路径、开发没提静态资源的代码等
(2)api接口404,即后端服务可能未部署
(3)发现这个404请求不应该是版本请求的,即前端版本代码合错、打包分支切错了
再比如,常见的500、502、504
(1)500,服务器内部错误,这时根据具体报错请求查后端日志,常见于 代码有BUG、存在脏数据等
(2)502,服务挂了。常见于服务部署中(即服务不可用)、有人(开发或运维)改动转发代理之类造成。
(4)504 ,服务超时。一般找运维解决就好了
三、千奇百怪的问题
此处千奇百怪的问题,主要以我个人项目经历种遇到一些有意思/比较曲折的BUG排查
(1)生产服务发布后,前端静态样式仍然没有变化
此处排查思路:
排查前端页面缓存
排查是否为机型问题
排查代码合并
检查部署分支
检查js hash是否生成新的hash
检查CDN缓存
检查nginx配置------- 在最后一步终于发现问题,nginx配置里header有个参数配置错了
(2)同一个环境下,我手里移动端设备发出部分指定请求每次必然都要响应30s及以上
排查思路:
检查移动端设备的网络问题---大家都是同一个网络
检查移动端设备问题----
Android 和 IOS:把账号从IOS换到Android仍能出现
相同设备:相同设备下、相同环境、相同网络条件,我的测试设备可复现,他的复现
从上一步排查结果可确认:唯一不同就是登录的用户差异,随后检查根据接口返回值检查 用户数据差异性,从而确认问题情况
排查结果:某种指定类型的用户状态,在调用接口A时会单独去查库,因为测试环境没有建索引,所以查询慢。把数据库索引加上后响应正常
(3)偶发的BUG
首页要树立一个观点,从来不存在偶发的BUG,只是没有找到复现方法而已
说下移动偶发BUG排查思路
(1)操作差异:连贯性操作、有中断流程的操作,可能会导致一个现象:BUG偶发出现
比如:用户注册、填写资料并提交的场景
a.用户注册后,直接根据页面流程填写资料
b.用户注册后,先退出登录,再重新登录后再去填写资料
虽然a、b 2个操作都能达到用户注册后填写资料的流程,但是从接口层面去分析,用户注册/登录后常规情况下会调用用户状态/用户数据的接口,但是如果其中一个流程没有调用呢?
此类问题可以通过理解业务调用逻辑/接口调用顺序等来设计测试点,从而排查问题
(2)返回操作、点击操作、切换tab栏操作等操作的先后顺序不一致
(3)测试环境有变化:比如部署的服务分支、部署前端版本等发生变动了
(4)新版本安装与覆盖安装:相同版本、机型、网络条件、相同用户,偶发出现,如果是APP考虑,新版本安装与覆盖安装、内存不足等问题
BUG排查思路大体如上,结合抓包工具看具体请求报错,在根据业务场景调用一层层往下查服务端报错日志