接口用例前的准备工作
本次负责测试的是一个对外查询接口,是给外部系统提供使用的,在用例开始设计之前,要做以下准备工作 1、了解需求,明确接口要实现的功能 无论是功能测试用例设计还是接口用例设计,都必须要了解用户的需求是什么,为了解决什么样的问题而做这个需求。
2、查看接口设计文档 接口设计文档是必须要有的,包括接口的url、是Get还是Post方法、Http Header中是否需要特别的参数(如Content-Type)、接口入参的说明、返参的说明、以及必要的示例等。
如何设计用例
1、从接口的入参维度,设计用例: 本接口有三个入参:channel、orderId、sign。其中第一个是渠道、第二个是订单id、第三个是MD5签名。
要考虑各参数的异常情况,当参数有误时,接口success应该是false,且message有错误提示。例如以下几种情况: 1)考虑channel、orderId、sign是否必填项。本接口中此三项都是必填的,所以要考虑当任一项缺失时,接口应有合理的错误提示。 2)考虑channel数据类型和取值范围,如果限定是几个数值,那么当输入其他数值时,接口应有合理的错误提示。 3)考虑orderId数据类型,本参数是string类型的,考虑是否有字符限制的, 当输入超过限制长度的字符时,接口是否返回错误提示; 当输入的订单id不存在时,接口是否返回合理错误提示。 4)MD5签名(即加密的一种方式):当输入的MD5签名有误时,接口应有合理的错误提示。
2、从接口的返参维度,设计用例: 本接口返回的参数大约有20几个,不一一介绍了,要设计合理的用例,要能覆盖各参数返回正确数值、空数值等各种情况。
3、从具体业务逻辑角度,设计用例: 本系统中,不同的订单状态,返回的数据内容是不同的。所以我们按照6种订单状态,分别准备对应的orderid,来测试返回数据的正确性。 从设计出来用例的个数来看,业务逻辑中包含的用例个数是最多的。
测试的执行
工具:postman+jmeter 1、最常用的工具,当然是postman了,无论开发人员调试接口还是测试人员测接口,都是最常用最省事儿的工具。postman的使用方法可自行百度一下。
2、当需要并发执行接口的时候,我比较喜欢jmeter,配置多个线程组,配合着csv参数话,就能实现简单的压测。
根据了解,本接口的调用方式并无大批量的并发场景,所以并未考虑压测。 但是在后期测试中,发现同样的入参,绝大部分时候接口返回都是正确的,但偶尔会出现success:false,message“系统异常”的情况。通过postman来手动复现,通常要调用接口十几次甚至几十次才能复现出来,手指头都要点疼了,所以我用jmeter配置了简单的场景来复现问题,每秒执行10次接口,看下问题出现的具体情况和复现概率。 后来开发同事分析出了问题原因,是后端同事在进行dubbo调用的时候消费端忘记加超时时间了,而dubbo的默认超时时间是1秒。后来加上了5秒超时,再使用jmeter调用接口时,就不会有“系统异常”出现了。
后续接口测试注意事项
1、根据本次测试的经验,后续接口测试时,一定要多调用几次,防止偶然出现接口调用失败的情况。 2、每次测试的时候,最好将测试的记录(入参、返参等)等记录下来的,可以列入测试报告里,当后续接口有改动的时候,或者回归bug的时候,都可以找出来重复使用。
|