app测试定位问题的方法

https://blog.csdn.net/qq_40689831/article/details/81736104

总结起来app测试也有快三年的经验了,从以前的小白到现在快速定位问题。能给研发快速定位出问题,尤其是一个复杂的问题,对他们来说是非常重要的,能够节省不少时间。

当然这也需要具备一定的知识与能力,长用到的基本知识如下:

1、抓包工具的使用:mac本的charles比较好用,windows的就用fiddler。(本人是mac所以用charles多些,了解多一点。)

2、常用数据库(mysql、sqlserver)操作语句:查询、插入、修改、删除,其实用的最多的是查询,在非常确定的特定场景下才会用到插入、修改与删除,一般不要轻易的去操作插入、修改与删除,否则会造成很多无效的测试数据。

3、熟悉http协议,至少能看董请求与应答内容。

4、了解php代码,能够通过抓包工具获取到的接口信息去查询php代码中接口代码实现逻辑及涉及到的库表数据,其实能看懂接口调用时对那些库表进行了操作也就差不多了。

需要的知识具备后,那就是操作流程了,在此也是分享一下我个人的操作流程,如有不足之处还望谅解(我这也是摸着石头过河)及多多指点。

来个实例做参考吧,实例(客户端查询信息交易月列表)期望显示是:

实际操作时显示:

明显不是我们想要的结果,那我们该如何下手去定位问题。首先可能想到的是先提bug,让研发去查找吧,继续执行下一条用例。其实我不是很赞同这种做法。做为一个测试人员,首先要确认这确实是问题才提bug给研发,否则提一些无效的bug给研发,会出现“狼来了,狼来了”的效果,很容易降低测试人员在研发那的可信度;当然我的做法也不一定正确“先确定问题再提交bug”,视情况而定。针对一般的问题测试还是能确定下来是否是bug的。言归正传,分析定位实例的问题是否是bug;如果是bug,则是什么原因造成的bug。

第一步:发现问题重现bug,连接代理利用抓包工具获取更多信息。

查看操作环境及app操作版本,这个在抓包时,从http的请求中很快能查找到。见下图:

从上图我们可以得到很多信息:

1、操作环境:http://bapp.hj.jzdev.info—>指bapp的开发环境(bapp测试环境http://t.a.jzsec.com)。

2、页面是h5还是原生,可以参考以下几种方式:

a、可以通过页面接口图标来判断

—>指返回的是h5页面

—–>大部分是指返回的是原生页面,也有可能指h5页面。

b、可以通过返回信息的形式来判断

有以上JSON Text 显示的是原生页面(获取联系人列表),有以下HTML显示的是h5页面(极融e合约列表)。

或请求形式含有from是h5,含有JSON Text时是原生页面。如下图是h5页面。

3、接口信息:

域名:http://bapp.hj.jzdev.info/

接口:bcustomer/custstocktradeamt

请求信息:

appVer=V4.0.0.08&deviceCode=b42248269a6c7d44e8e6d70e910e234e&userId=6cc58bcf960794fbf06d1900a49e4ee2&type=100&deviceType=iOS&cust_id=&cust_phone=18714251425&token=4c18f70b648b88c89de0e31ac11ec530&mobilephone=18610431044&appType=2&envType=0

返回信息:

{

“code”: -3,

“msg”: “\u5ba2\u6237\u672a\u5f00\u6237”,

“data”: [{

“result”: 0

}]

}

第二步:根据获取的信息接口bcustomer/custstocktradeamt查找原代码。

查以查看到“trade_fund_accout”表,基本确定是此表无要查询的信息才出的错。转换为sql语句”select * from trade_fund_account where c_user_id=(select id from c_user where loginmobile=’18714251425’)”查询结果为空。

以上使用在大部份场景,有个别场景不用看代码,只看接口的请求信息也能看出个一二。如实例接口请求中的参数:cust_id明显为空嘛。客户号为空的情况那就要分析原因了,还是得又回到环境上来了,开发、测试环境此种情况基本是脏数据手动修改过数据,可以忽略不用关系提bug。但如果是生产环境,那就得推断一下了。

生产环境的数据基本都是流程产生的数据,从表象上看客户的状态与客户的信息不一致导致的,所以推断是同步过来的开户数据,但同步信息有误。直接查看同步时跑的是那个定时接口,再根据接口再分析查找具体原因。还有类似的问题如下:

一般在客户端都会显示有“error”信息,看errror信息后的sql中&#39对应的就是有问题的信息字段。

注:如果图片不能查看,可查看此链接:http://note.youdao.com/noteshare?id=5a7e5a91ef3e4f8ae3db9114d9820529

  • 1
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值