用例设计的注意事项(不断更新中)
有关数字
场景一:接口返回的数字是字符串类型,涉及到用一个数值去乘这个字符串,三位数字的时候还好,前端可直接乘,不会出问题。可超过三位数字时,接口返回的是“1,345”,中间加了千位符,前端乘的时候识别到了逗号,乘的时候出现了NaN和null。
解决方案:涉及到长数字加减乘除,需要设计千位数字和万位数字的用例
有关支付
微信支付:支付完成后,微信需要回调成功或失败,这时候应该是支付中,通过回调修改状态支付成功或失败
遇到的问题:在调起微信收银台,订单支付状态为支付中,点击返回或关闭收银台,订单状态为待支付;调起微信收银台,意外退出或直接关闭页面,案件状态为支付中,一分钟后未支付变为待支付,这样会有个问题,正常在收银台停留超过一分钟再支付,微信支付成功但没有及时给到回调,我们系统里订单状态为待支付,用户可取消订单(用户会误解取消订单是退款的操作)
支付宝支付:
有关登录
有关用户名
场景一:之前用户名为了兼容emojo表情,用户名用base64储存的,后来发现改变数据库里表的字段类型就可兼容表情。由于注册方式和修改用户名有很多入口,展示也有很多地方,用例覆盖不全面,公众号关注也配置了注册用户的功能,一直不知道这个事,导致上线后,从公众号注册的用户使用base64格式储存的用户名直接显示了出来。
解决方案:测试前,问清楚相关开发需要测试哪几个存储入口。从公众号注册、小程序注册、app第三方授权、修改用户名登录考虑
场景二:小程序提现时需关注公众号,关注公众号时判断了用户是否存在,却更新了用户当时的头像和昵称。需求:小程序里用户可更换头像和昵称(在其他情况下不需要更新用户的头像昵称)。测试时以为开发不会多此一举,然鹅开发是复制了注册流程改的,没有考虑到
解决方案:完善用例覆盖面。需要弄清需求,在已有用户的情况下,用户再通过别的入口登录,是否要同步当时的头像和昵称。根据需求把用例考虑全。
场景三:小程序或公众号里,用户昵称过长。在测试小程序或公众号时,用户名是直接获取微信昵称,不记得修改成长的用户名,导致部分页面用户名过长时,显示样式有问题。
解决方案:修改数据库的用户名,或直接将微信用户名改成最长的。
有关并发
场景一:拆红包接口和提现接口,满足一定条件可以拆红包,接口有判断拆过红包,第二次请求就不会再拆,但是并发请求时,在查的时候都是没有拆过红包的情况,所有这些请求都成功拆了红包。出现方法:别人说在请求时把手机网络关了或手机调成飞行模式,快速点击请求按钮,再打开网络就会出现。这种方式我没试出来,用的是压测工具试出来的。
解决方案:接口都会出现并发的情况,有些功能随意,有些功能出现并发就会有损失。例如,提现、抢购、领取。涉及到金额的是功能要仔细考虑出现了并发时有哪些危害。开发会用到事务或锁表解决。测试需要用到压测工具测试。