¶有没有抓过包,为什么要抓包,具体怎么做的
抓包这块,其实我们在工作用得是比较多的,一般我们都在测试过程碰到问题,我们有的候通过抓包去看一下前端与后台的数据交互,通过分析这个数据,来定位到底是前端问题,还是后台问题。
主要用的就是 fiddler工具,如果只是抓取Web端数据的话,只要在浏览器上设置代理服务器,指定代理服务器为本地的fiddler这个工具,设置好端口:8888 就可以了,如果要抓取手机端的包,首先需要保证手机与电脑(安装了 fiddler的这个电脑)在同一个网络,在手机上要设置http代理服务器为手动,然后服务器指定为电脑的ip地址,端口设置为8888
例外,如果要抓取https包,可能还需要在电脑上安装证书,手机端这边也要安装证书,差不多这样就可以。
¶为什么要进行抓包具体怎么分析的
主要是我们在测试过程中,出现Bug的时候,为了定位问题,分析问题,需要抓取前端后台的数据交互过程,通过看数据,从而来分析到底是前端问题还是后台问题
分析这块的话:
1、首先看发的请求是否有问题,请求的接口url是否有错误,参数是否有错误,如果url或传参有问题那就是前端Bug
2、如果请求没有问题,看下后台返回的数据是否有问题,状态码5开头的基本都是后台问题,状态码为200,响应数据与预期不一致,那也是后台Bug,不过这里有可能是数据库问题,也有可以是后台代码问题,这里首先我一般会查看下数据库的数据,如果数据库没有问题,那就需要查看下后台的日志文件,具体分析下看是后台代码哪里出问题了,然后把日志信息信息截图给开发,
3、返回的数据没有问题,请求参数,u也没有问题,那可能是前端代码是否转换有问题,那就是前端Bug
¶大概给我讲下抓包的原理
其实就是把 fiddler设置为代理服务器,那么浏览器上发出所有请求都由 fiddler这个工具来代理转发,其实就是说:通过fiddler来拦截客服端与服务端之间的数据交互,这样我们可以拦截到客户端给服务器发了什么数据,服务器给客户端响应了什么数据,然后对数据进行分析。
¶给你一个需求,你具体讲下,你怎么测试
第一点:首先我要熟恶这个需求的背景,这个需要功能,我至少要知道这个需求做的是什么吧,做的 是一个什么样的解决方法这个要搞清楚。
第二点:这些搞清楚,看这个需要和其他模块有哪些交互,需不需要关联起来分析,有没有影响到其 他模块,或者数据有没有流向其他模块。
第三点:这些都清楚了,那么我会根据熟悉的情况看下工作量,哪个时间点交付,在这个时间点我需 要做一个计划给老大说下,如果时间充分,一个人能搞定,那么就一个人搞定,搞不定,我 会向老大申请人力。其实接下来也差不多了,分析需求,尽量要评审,在前期就保证好质量, 如果没有问题。其他也就是用例实例化,执行啊,bug跟踪啊等,最后出个报告就好了。
基本我做的活,会这么做主要看你在最短时间把需求吃透,做好计划,展开工作。
¶给你一个项目,你怎么展开工作,请详细说一下,你具体怎么做的
面试官考的点:进我公司,给你一个项目,你怎么做,看你有没有独立做项目能力
第一点:首先我要熟悉这个项目的背景,我至少要知道这个项目做的是什么吧,做的是一个什么样的 解决方法这个要搞清楚
第二点:这些搞清楚,那么必须要清楚这个项目的核心模块和业务,我们给这个模块做一个优先级, 先测试哪些核心模块,再做哪些模块
第三点:根据刚刚信息,我会熟悉这个业务,这个业务相关模块,以及写数据前后台交互等
第四点:这些都熟恶了,那么我会根据熟悉的情况看下工作量,哪个时间点交付,在这个时间点我需 要做一个测试计划一般需求分析的话,根据我的经验基本2天差不多了,编写用例时间,执行时 间,bug修复时间,我会做一个工作量评估,如果还有其他测试,我会把这个计划发给大家,让 大家评审这个计划和安排,看安排是否合理,大家能不能在这个计划时间段完成,基本需求分析 等多给个2天左右,那么大家要再这个时间段完成,完成后我会安排大家讲解需求,做需求评审 和需要讲解,前期时间多投入点,后面风险小一点,这个我主要跟进下进度就行。
第五点:那么接下来,大家按照计划去编写用例,用例在时间点完成后,我会组织大家评审,这个两 个我必须把控,减少后面测试风险,前面分析和用例把握到位,后续执行和bug这块不会有太多 问题后续的话,那么大家执行就行,我主要跟进这个进度,每天大家bug解决情况,以及测试进 度,做成日报,像些问题不好解决的,有问题的,我去协助那么测试完成后,我会收集大家测试 数据,做一份测试报告,这个我会评估这个测试有没有风险,没有的话,发送给开发老大,开发 所有人,测试所有人。这块评审下,后续组织测试人员安排上线,我基本是这么做的
¶项目快上线因为开发延迟,测试时间被压缩怎么做?
[开发延期完成,产品还需如期上线,测试需怎么办
首先看下自己还剩下多少时间,然后要评估工作量,评估下风险,比如说,可能我根本做不完,风险太大,那么这个我首先要把风险提出来,给对应的领导,那么我会要求有人协助我完成,需要多少人力来完成,
如果只是说,正常时间完不成,那么我可以提下加班,看加班这个时间段能否完成,如果可以,我会和老大商量,提出加班计划。
如果是其他的,先跟领导确认,比如说我只需要把优先级高的工作完成其他工作可以安排到下一个版本去做,那么我就做个计划,把计划个老大说下。
¶如果时间比较紧的话,你怎么安排你的工作
首先要评估下风险,比如说,可能我根本做不完,风险太大,那么这个我首先要把风脸提出来,给对应的领导,那么我会要求有人协助我完成,需要多少人力来完成,
如果只是说,正常时间完不成,那么我可以提下加班,看加班这个时间段能否完成,如果可以,我会和老大商量,提出加班计划,
如果是其他的,比如说我只需要把优先级高的工作完成,其他工作可以安排到下一个版本去做,那么我就做个计划,把计划个老大说下。
¶返回数据现在有问题,怎么排查问题
这个可能需要抓包,首先抓包看下前后台的数据交互情况,确认下是不是前端请求发送,有问题导致返回数据有问题。如果是请求有问题,那提Bug给前端,让前端修复,
如果请求没有问题,与接口文档对比,查看下返回数据具体是哪里出问题了,这里还得,首先查看下数据库,看是不是数据库中本身数据就有问题,如果数据库数据没有问题,那可能是后台代码问题,这个时候可以查看下后台的日志文件,通过分析日志文件的错误信息排
查具体什么原因导致问题出现
¶有时候下订单成功有时候下单失败是什么原因
对于订单成功和失败的情况,各自去抓包,把两次抓取的数据来做对比,分析原因
1、假如发送的请求不同,那肯定是前端问题,
2、假如是返回数据不同,那基本判定是后台代码出了问题,这时候可以去看日志,看数据库,把这些信息提交给开发处理,也可能是网络问题没发出去的。
¶APP出现崩溃时怎么抓取日志
adb logcat android studio logcat
这种情况我肯定要去看手机端的日志,去分析崩溃日志,通过 adb logcat去直看日志,
根据崩溃时间段去查找这个时间段日志,去查看是否有 Error,Exception,Crash,OOM等显
现,分析日志,不懂的可以百度查看下原因,然后发给开发处理。
¶微信里面,如果大家都看不到你发的朋友圈信息,分析下什么原因
1、A删除了那条朋友圈信息
2、A屏蔽了所有好友查看自己的朋友圈
3、如果没有屏蔽,多发几条看看,如果发的所有朋友圈,好友都看不到,
也可能是微信后台出问题了,或者A的微信账号有异常等等,
不过这种情况不太可能。
¶微信里面,如果只是B看不到,其他朋友都可以看到,分析下什么原因
1、B把A拉黑了
2、A把B拉黑了
3、B设置了不查看a的朋友圈
4、A设置了屏蔽B看到自己的朋友圈,或者A屏蔽了自己所有的朋友圈
5、A删除了那条朋友圈信息
6、A设置了只展示某个时间段的朋友圈信息
7、B根本就不是A的微信好友
¶你测试数据是从哪里获得怎么获得的,假如不告诉你,你怎么处理
(1) 一般都是我们测试人员在测试过程自己造的测试数据,如果大量数据,我们可以用到存储过程
(2) 也可以让运维人员帮忙从生产环境导出相关的测试数据,如果测试数据中涉及安全性的数据,直接是不能导出