接口测试是测试系统组件间接口的一种测试。
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。
测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
接口测试该如何提高测试的覆盖率呢?
一般需要关注以下几点:
输入、输出、逻辑处理、数据库、安全性、性能、接口超时、兼容性。
输入,接口的入参,一般使用等价类和边界值设计用例。需要考虑输入的正常与异常情况,其中异常包括有参数异常以及数据异常。
正常的入参
根据接口设计文档的入参标准,输入正常的参数,接口按接口设计文档的描述,得到正常的响应返回。
参数异常
参数异常包括:
1.参数为空
2.多参
3.少参
4.错误的参数
数据异常
1.数据异常包括:
2.数据类型错误
3.长度不符合设计
4.非空参数为空
5.特殊字符或敏感字符
6.不在字典(接口设计)范围内的数据
7.非法参数(非常规参数的处理,如号码、邮箱的判断机制)
8.存在关联关系的参数数据异常
在考虑接口异常时,不一定能覆盖所有错误码,可以通过接口定义返回的错误码补充异常情况的用例。如:
1.网络异常
2.无效的规则
3.无效的参数
4.无效的业务ID
5.无效的任务
6.服务器异常
利用错误码补充用例,可以发现前后端输出是否正常,敏感信息处理机制,及提示信息是否符合规范等。
接口测试一般会提供接口设计文档,另外还应获取或整理业务流程图,针对业务流程中的处理逻辑,结合接口的输入限制、业务状态等进行测试点的考虑。
限制条件
1.数值限制:字典,等级,行业相关限制,金额限制,分数限制等
2.状态限制:在线或离线,是否开通服务等
3.关系限制:如账号与个人信息的绑定
4.权限限制:三权分立(管理员,操作员,监控员等) , 用户之间的信息隔离等
对象分析
操作的对象是否合法,如对问题账号的转账,冻结用户的登录等。
状态转换的分析
在金融行业中状态转换的分析及处理较为重要,
如商城购物,退款、付款中取消了订单、继续进行订单付款、是否可多次支付、业务流程跳转的状态处理等。
时序分析
时序分析多为针对业务流的处理分析。对于一些复杂活动,比如:
1.办理业务需要进行的流程顺序,其业务流的处理。
2.资料的填写、上传是否只能按顺序进行 ?是否可返回上一步?流程步骤之间的跳转如何处理?
3.资料填写到一半,去办理其他事务或切换窗C I会导致什么情况?
接口在进行数据传输交互时,都需要对数据库进行操作,
因此亦需要关注数据库的以下内容:
1.数据读写是否正常
2.数据存储是否正常(乱码、重复数据等情况)
3.对资源的使用情况(CPU、内存等)
4.对线程的占用、释放情况(读写线程的处理机制等)
5.对数据的处理是否正常(增、删等操作)
对于接口的安全性测试, -般包含以下内容:
1.信息的加密(包括但不限于登录口令、驴身份信息等)
2.传输方式( http/https )
3.接口的鉴权方式
4. sq|注入防范
5.越权访问
6.后续如有安全测试,可能还包括非正常接口的访问、DDoS防护等。
接口的性能不佳,会影响用户使用,甚者还会影响业务的正常进行。 在金融行业中更是最为注重的
测试点。
接口的性能主要关注以下几点:
1.最大并发
2.响应时间: 1.平均响应时间2.最大响应时间3. 最小响应时间
3.吞吐量
4.资源使用情况
5.错误率
接口测试的非正常情况处理包括接口超时,在金融行业中亦是较为注重的测试点,超时处理不当,
可能会引起进程阻塞、逻辑混乱等情况。比如:
1.提交订单后限制多长时间内完成付款,超时则订单无效。
2.网络问题导致的长时间未成功付款等。
如软件系统为迭代发布,则需要考虑对旧版本的接口兼容或接口废弃处理。
需要考虑以下几点:
1.废弃的协议或接口是否已注释,是否已不可使用
2.新、旧接口之间是否兼容
3.旧接口是否会影响新接口的使用
4.接口的更新是否影响其他接口或外部系统的调用
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!