🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 真实案列分析 > ### 现象:登陆的时候,所有信息输入正确,点击登陆按钮没反应 原因: 1、浏览器兼容性问题; 2、网速太慢; 3、系统卡顿; 4、代码处理逻辑问题,没有做页面跳转。 > ### 面试官:如果一个购物平台充值的时候有重复入款的情况 从测试的角度,你会怎么复现问题,结合什么工具来进行测试! 参考答案: 用Fiddler工具抓包,查看点击一次充值按钮,发起了几次充值请求,如果超过一次请求,说明前端的处理逻辑出了问题,发起的充值请求次数错误; 如果前端的请求次数是正确的,就查看应用服务器的日志,让开发定位是否是应用层的代码有问题;应用层没问题,就是数据库的代码出问题了。 > ### 我们当时是申请退费100,但是实际退费了双倍,退费金额就直接被改了。但是仍然是一次请求。 原因:客户申请退费的时候,系统弹出确认退费对话框的同时,前端把退费金额发给了后台的一个变量,用户点击取消按钮,变量的值没有清空;用户再次退费的时候,就退了双倍。 > ### 系统并发200个用户,Jmeter 提示 http status-code = 500 原因:数据库连接没有来得及关闭,就有用户访问上来了,导致数据库崩溃 。这个就是数据库的链接这块开发没有处理好 > ### 面:给你一个项目,已经上线了,现在要增加两个功能点,星期五要上线,你会怎么安排 先做需求分析,判断这两个功能点能否在短时间内完成,如果可以完成,不会影响其他的模块,然后做后面的安排。第一天写用例,后面两三天测试,提交缺陷,做回归。最后写报告,给客户验收。 > ### 面:那如果你这边测试是1+1=3,开发那边是1+1=2那怎么办? 参考答案: 1、先确认测试环境的代码是不是和开发那边的是一致的,因为有可能是开发没把代码提交到服务器,我们现在测试的版本还不是最新的; 2、如果测试环境的代码和开发的是一致的,就用fidder抓个包,看看问题是在前台还是后台,如果服务器返回的数据有问题,就把响应的服务器的日志取下来发给开发定位。 > ### 测试过程中项目紧急,测试环境有问题,数据提供不了(构造不了数据),你该怎么办? 参考答案:从生产环境上把数据导到测试环境上测试;如果生产环境的数据包含了用户的个人信息,需要进行脱敏处理,就是导入到测试环境上之后再把用户的信息修改下,再测试。 > ### 页面有个日期控件,我需要写入一个开始时间和结束时间,有没有遇到过这种场景? 参考答案: 1)、如果可以直接修改值,就用send\_keys()输入值; 2)、如果输入日期的输入框不能直接修改,一般来说,这个输入框有一个readonly的属性,调用js将这个属性删除,然后再用send\_keys()输入值; > ### 怎么验证前端加密的信息是不是正确的? 参考答案:我们在客户端输入好了信息,提交,然后用Fiddler抓包,看客户端加密后的数据,与开发给到的加密脚本是否一致,如果一致就是没有问题。其次,还要看返回的数据是不是正确的。 > ### app版本升级具体应该怎么做? 参考答案:app的升级,我们可以在后台设置,只对指定的手机进行版本的推送,然后先在这几台手机上进行升级的测试,如果没有问题,再去全量推送。 > ### 升级出现问题怎么办? 升级出现问题,就先修复问题,然后修复完成之后,再在测试机上进行测试,没有问题,再全量推送了。 > ### 怎么去找到难以复现的问题 ? 1)、查找日志,看是那个环节出现了问题 2)、尽量去重复操作出现问题的步骤,从不同角度去尝试 > ### 你怎么查看日志的前后行数? 参考答案1:一般情况是当前端页面报错时,我们会立即分析一下问题及产生原因。比如页面出现500,那肯定就是服务器内部报错,开发写的代码出问题了。这时候会去服务器日志文件里面定位问题,日志里一般都有时间和操作的记录,可以把日志导到本地来查看分析结果。 参考答案2: 或者使用Linux命令根据关键词查看日志并返回关键词所在行:cat 路径/文件名 | grep 关键词