参数名称 | 参数类型 | 参数长度 | 说明 |
resultCode | Int | 5 | 结果返回码,返回42000表示处理成功 |
score | Int | 11 | 本次得分 |
preRank | Int | 11 | 赛前积分在赛后的排名 |
rank | Int | 11 | 积分排名 |
upRankFlag | Int | 1 | 排名上升:1;排名不变:0;排名下降:-1 |
isUpLevel | Int | 1 | 经验值是否升级 0 否;1 是 |
exp | Int | 11 | 本次增加的经验值 |
expLevel | Int | 3 | 经验值等级 |
designation | String | 30 | 称号(对应于经验值) |
cPreRank | Int | 11 | 对手赛前积分在赛后的排名 |
cRank | Int | 11 | 对手赛后积分排名 |
cUpRankFlag | Int | 1 | 对手排名上升:1;排名不变:0;排名下降:-1 |
encourageWord | String | 15 | 鼓励语句 |
此接口比数据查询接口又更加复杂,除了用条件判断和数据查询类接口的策略对此接口进行测试用例设计之外,还需要验证对接口的算法规则进行检查,因为此接口涉及根据用户比赛成绩(record)进行排名然后返回其得分及排名情况(score、rank、upRankFlag、exp),通过对相关数据表中的数据进行查看方式,接口算法规则验证包括:
1)用户胜利、失败、中途主动/被动退出、规定时间内未完成比赛情况下,此场比赛得分(scroe)是否正确;
2)用户比赛成绩比上次成绩花费时间短、长、持平情况下,排名情况(upRankFlag)是否正确;
3)用户比赛成绩处于第一名、最后一名、比上次成绩花费时间短/长/持平情况下,用户积分排名(rank)是否正确;
4)用户胜利、失败、中途主动/被动退出、规定时间内未完成比赛,并且用户经验值在各种经验等级范围下,经验值根据得分进行计算的公式是否正确。
逻辑运算接口由于还涉及插入或更新数据库操作,因此测试时还需要考虑数据库特性,如数据精度问题,在MySQL数据库中,如果是浮点型数据,存入时会有精度误差(131072.32插入float(10,2)类型的数据会变为131072.31),因此对于需要用于金额计算、数据统计、成绩比较的数据,最好使用定点型。
最后服务器接口的测试如果有足够条件的话,还需要通过白盒测试来对接口代码做进一步的测试,通过编写关键代码的测试桩,可以有效查找将字符数组当成字符串使用造成的读越界这类不易通过黑盒测试发现的BUG。接下来的工作就是如何通过测试工具来执行服务器接口功能测试。