目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、接口测试范围
根据服务器的测试需求,接口测试范围主要分为:
新增接口的测试;
新增业务功能接口测试;
整个服务器的接口测试。所需测试测试接口依次增多,在测试时间足够的条件下,当然需要对所有接口进行测试用例的设计,但如果测试较短的情况下,则应该首先根据用户的典型操作对测试接口进行优先级划分,对调用频繁接口需要优先进行测试。
2、接口测试策略
在进行平台服务器接口测试之前,首先需要整理服务器接口的测试方案,分析接口测试的要点。
平台服务器的接口测试内容主要有:
接口设计检查
接口用于服务器与客户端的数据交互,客户端通过网络协议传递的数据为服务器接口的输入数据,因此应该首先通过服务器接口文档及客户端数据约束文档进行交互数据的有效性检查:
整数型数据位数;
浮点型数据精度;
字符串数据范围值;
要求客户端的整数型、浮点型、字符串数据以及其最大值和最小值都能作为服务器接口的有效输入。这些工作在服务器设计评审时就可以进行,以便确保不会出现客户端上传数据被服务器自动进行截断或四舍五入的操作。
接口依赖关系检查
以上策略只谈到单个接口的测试方法,对于用户来说,一个操作可能会造成服务器调用多个接口来进行完成,因此还需要从业务处理的角度,对各种业务操作所涉及的多个接口之间依赖调用进行测试。
接口依赖关系检查主要是通过接口的输出值为另一接口的输入值来实现的,因此在进行接口测试之前,需要分析所测试接口的输入值是通过客户端还是其他接口输出来获取的,在设计测试用例时,加入接口的依赖关系说明以便于测试。
接口输入/输出验证
服务器接口功能测试类似于单元测试,在设计测试用例时,侧重点在于接口模块输入/输出项的正确性验证,根据接服务器接口处理方式,对各种接口进行分类:
第一类:条件判断接口
这类接口在接收到请求数据后,会根据输入参数进行条件判断,然后返回相应结果码,通常涉及条件判断的接口有:用户鉴权接口、升级状态上报、密码修改/重置等接口。
因此输入/输出项验证的侧重点主要集中在:
判断条件的验证
要对判断条件进行验证,则需要知道接口是根据哪些输入项来进行判断的。
以密码重置接口为例:
密码重置接口
『接口功能』:用户登录之后发起找回密码操作,用户输入邮箱信息后,游戏中心将向平台服务器发送请求,平台服务器将随机为用户生成新的密码,发到用户的邮箱中。
『接口方向』:游戏中心—>平台服务器
『遵循协议』:HTTPS,请求消息使用Post方式
参数名称 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|
userID | Int | 10 | 用户ID号 |
String | 60 | 邮箱地址 | |
key | String | 50 | 接口名称 |
version | String | 8 | 版本号 |
响应消息(sendMessageRes)
参数名称 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|
resultCode | Int | 5 | 结果返回码,返回42000表示处理成功 |
此接口根据输入的userID、email参数来进行数据正确性的判断(key是接口名称,如果错误服务器将不会处理,version是版本号,其值只是用于记录,不参与判断)。
设计接口测试用例时,应该首先对接口的判断参数进行验证,这些输入项不能为空,然后利用等价类划分、边界值方法来根据userID、email输入项设计各种合法的数据,验证接口是否可以正常处理。
异常数据的响应:
只考虑正常情况,而不考虑异常场景是无法保证接口功能运行正常,对于密码重置接口,用户ID不存在、不合法,邮箱输入格式错误、用户邮箱信息不存在或未激活就是测试时需要考虑的异常场景。
设计这类输入值,并且检查接口返回的响应码,响应码的正确才能保证客户端根据异常情况来显示相应的提示信息。简而言之,条件判断的接口其测试策略就是根据判断条件来设计各种输入值来检验接口的功能。
第二类:数据查询接口
这类接口接收到请求数据后,首先会验证请求是否合法,然后会根据请求项查询数据库相应表中数据返回给客户端。
通常涉及数据查询的接口有:用户基本资料/经验值/赛事信息查询、游戏列表获取、在线人数查询等接口。
以用户经验值查询接口为例:
用户经验值查询接口
『接口功能』:用户登录游戏中心后,可以查询自己每个游戏项目的经验值信息,包括此项目的经验值等级、等级称号、今日经验值上限等。
『接口方向』:游戏中心—>平台服务器
『遵循协议』:HTTP+XML,请求消息使用Post方式
参数名称 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|
userID | Int | 10 | 用户ID号 |
webkey | String | 60 | 当前分配给指定登录用户的密钥 |
key | String | 50 | 接口名称 |
version | String | 8 | 版本号 |
isAll | Int | 1 | 是否查询用户所有的运动项目经验值 0:是;1否 |
sportItemID | String | 50 | 运动项目ID,当isAll=1时不能为空,指定查询某个运动项目的经验 |
响应消息(sendMessageRes)
参数名称 | 参数类型 | 参数长度 | 说明 |
---|---|---|---|
sportItemID | String | 50 | 运动项目ID |
sumExp | Int | 11 | 运动经验值总额 |
expLevel | Int | 3 | 经验值等级 |
minExp | Int | 11 | 本级最小经验值 |
expOrder | Int | 11 | 经验值排名 |
maxExp | Int | 11 | 本级最大经验值 |
todayExp | Int | 11 | 今日获得经验值 |
todayExpLimit | Int | 11 | 今日经验值上限 |
designation | String | 30 | 称号(对应于经验值) |
winCount | Int | 11 | 胜利场次 |
lossCount | Int | 11 | 失败场次 |
isMaxExp | Int | 1 | 总经验值是否达到最大 0 否;1 是 |
此接口首先会根据webkey来判断请求是否合法,然后根据请求参数中的userID、isAll、sportItemID来查询数据表中相应数据。
除了象条件判断接口一样根据判断项webkey、请求参数userID、isAll、sportItemID设计合法/不合法和正常/异常测试值之外,还需要结合数据库来对查询结果进行验证:
是否根据正确的关联数据表进行查询;
验证查询结果是否从数据表中正确项中获取,涉及到多表联合查询时,不同表中的相同项设计不同测试数据进行验证;
修改查询结果在数据表中对应项中的数据,使其为空值或客户端相应项的范围值的最大和最小值,查看接口输出是否正确。
下面是我整理的2023年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
只有持续努力,才能绽放最耀眼的光芒;每一次奋斗,都是向梦想更近一步的距离。无论前路多险峻,不要退缩,坚定地迈向成功的道路。相信自己,战胜困难,成就辉煌!
只有坚持拼搏、追求卓越的人,才能看到自己的梦想绽放出最美的光芒。无论前路多艰难,我们都要勇往直前,用努力和汗水书写属于自己的辉煌篇章!
只有奋斗过程中的坚持和努力,才能铸就出真正的辉煌与成功。无论环境如何,都要勇往直前,追逐梦想的脚步永不停歇。相信自己的能力,用汗水和智慧书写属于自己的辉煌篇章。