专栏首页猪圈子测试经理:" 工作五年你连服务端接口测试还不知道?"

测试经理:" 工作五年你连服务端接口测试还不知道?"

服务端的接口测试我们一般从功能开始进行测试,比如请求参数和响应参数的校验,业务逻辑或业务规则的校验,数据库操作的校验。功能正常后会根据需要进行安全相关的检查、性能测试以及系列扩展测试,比如与历史版本的兼容性测试、接口的超时验证以及设计合理性验证等,用例设计也是从这几个方面进行分析设计,下面的思维导图是一个概要的测试关注方向

详细介绍如下:

针对输入

输入主要是指接口的入参,我们平常的测试中,会先考虑正常的入参,以及异常的入参,异常情况包括:参数异常和数据异常,用例设计这块使用较多的是等价类划分和边界值分析

A、正常的入参

正常的入参很好理解,就是根据接口设计文档的入参标准,输入正常的参数,响应按接口设计文档的约定条件正常返回

B、参数异常

参数异常包括:参数为空,多参或少参,错误的参数

C、数据异常

数据异常:数据类型错误、非空参数为空,长度不符合设计,不在字典范围内的数据,不合法的成员,特殊字符或敏感字符,存在关联关系的参数数据异常等

针对处理逻辑

接口测试前一般研发会提供接口设计文档或业务相关的设计图、流程图,针对业务流程的处理逻辑,我们可以从入参的限制条件、事件的操作对象、业务的状态转换

A、 限制条件分析

数值的限制:字典,等级,行业相关限制,金额限制,分数限制等

状态的限制:有效|无效,在线|离线,拉黑|洗白等

关系的限制:存在或不存在,绑定或解绑等

权限的限制:管理员,普通用户等

B、 对象分析

对象分析主要是对合法和不合法的对象进行操作,比如银行卡用户对卡进行充值,则可能存在:用户A使用非用户A的卡充值;用户A使用自己的卡进行充值,卡已过有效期;用户A使用自己的卡进行充值,卡为黑名单或挂失等。

C、 状态转换的分析

比如支付类业务,先支付成功,撤单后会退款,再次支付如果支付未成功,则是支付失败,状态之间的切换是否正常,未按正常业务顺利进行操作时,状态怎么显示,是否可控,是否出现异常状态,空状态业务怎么处理等

D、 时序分析

一些复杂的活动中,一个活动是由一系列的动作按照指定顺序进行,这些动作形成一个动作流,是有按照这个顺序依次执行,才能等到预期的结果,那么在执行过程中发生的其他分支动作程序会作何处理

比如斑马停车风控业务,如果在入站后车辆直接掉头不驶入高速业务如何处理?

针对输出

在考虑异常时,通常我们都会想到正常情况,无效的情况,但是不一定能覆盖所有错误码,而接口定义返回的错误码可以帮助我们补充这一部分的用例,比如网络异常,无效的规则,无效的参数,无效的业务ID,无效的任务,服务器异常等,把errorcode的值都补充上去可以设计更多的用例

这种根据输出进行设计用例,可以发现前后端是否正常输出结果,提示是否友好,提示是否出现敏感信息等

数据库操作

A、对数据库操作是否频繁,是否会在写库过程中占用大量的CPU,写库完成后进程是否释放

B、业务数据入库是否正常,是否有重复数据入库,是否出现乱码;日志数据入库是否正常

C、数据更新是否正常,尤其是时间类字段,时间是否为24小时制的格式

D、数据删除、备份是否正常

安全性

敏感信息是否加密(如银行账号,密码,转账金额)

性能相关

A、接口在什么情况下会出现并发,并发场景是什么,什么情况下的并发会导致问题

B、最大并发,响应时间,吞吐量,资源消耗情况

接口超时

接口正常情况下是有返回的,那么如果接口不返回呢?所以接口超时后的处理也是测试需要考虑的部分,如果超时处理不当,可能会引起进程阻塞,或者超时后又接收到接口返回导致逻辑错乱

与历史版本的兼容性分析

已废弃的协议或接口,代码并未注释,在某种特定的情况下可能会触发历史版本已废弃的协议或接口,导致用户使用或功能调用后出现意想不到的问题,损失

同一套系统,不同服务之间的接口相互调用时,新接口是否受历史接口的影响,尤其是新旧接口都对某一个功能进行处理,是否存在业务不兼容的问题

这一点需要测试人员是长期的测试一个系统的,那么可能会想到这种场景,会清楚的知道什么时候哪个版本进行了重构,废弃了那些接口,新增了那些接口,哪些场景会触发历史接口的某个规则

接口设计合理

接口字段是否冗余,接口是否返回了调用方期望得到的信息,接口定义是否满足所有调用者的需求,接口调用是否方便,接口是否可扩展,接口参数使用是否方便,接口的业务规则是否都正确,接口都整个服务的使用会产生那些影响

本文分享自微信公众号 - 猪圈子(Tester-sc)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Tunnel:论如何在内网中自由渗透

    *本文作者:戒贤,本文属FreeBuf原创奖励计划,未经许可禁止转载 背景 能够成功地通过web漏洞获取到webshell,对于一次完整的渗透测试来说,仅仅相当...

    FB客服
  • 我叫你不要重试,你非得重试。这下玩坏了吧?

    前几天和一个读者聊天,聊到了 Dubbo 。他说他之前遇到了一个 Dubbo 的坑。

    why技术
  • 守护S级产品锻造之路,WeTest领航跃迁,与时代同行

    十年的内部打磨,五年的孵化迭代,WeTest(wetest.qq.com)秉持腾讯“以互联网为媒介,连接人与设备,让我们的生活更加丰满”的理念,持续驱动自我,逐...

    WeTest质量开放平台团队
  • 中移物联网软件测试面试心路历程

     做了一两年的功能测试后,突发发现能胜任全部工作,在已有的公司已经得不到任何技能方面的提升后。准备跳槽,说一下跳槽面试遇到的问题吧。

    小老鼠
  • 最近学习了 HTTP 连接池

    6.1大促值班发现的一个问题,一个rpc接口在0~2点用户下单高峰的时候表现rt高(超过1s,实际上针对性优化过的接口rt超过这个值也是有问题的,通常rpc接口...

    芋道源码
  • 原 如何调试移动端页面

    jojo
  • 如何调试移动端页面

    jojo
  • Linux内网渗透

    能够成功地通过web漏洞获取到webshell,对于一次完整的渗透测试来说,仅仅相当于万里长征的第一步。并不是所有渗透测试都会遇到几百台机器的大内网。

    HACK学习
  • 当前端基建任务落到你身上,该如何推动协作?

    作为一名野生的前端开发,自打本猿入行起,就未经过什么系统的学习,待过的团队也是大大小小没个准儿:

    前端劝退师
  • Fiddler是个问题少女,又作又可招人爱

    点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 08:30准时推送,每月不定期赠送技术书籍。

    ITester软件测试小栈
  • 测开新手:从0到1,自动化测试接入Jenkins学习

    大家好,我叫董鑫,一个在测试开发道路上的新手,之前一直从事手工功能测试,前段时间抽空温习了一遍老师全栈测开训练营中自动化测试、CICD版块的知识,最近公司正好有...

    测试开发技术
  • 测试仓库推介(上)

    最近加入了一个GitHub团队,地址:https://github.com/JunManYuanLong。里面有一些非常不错的开源项目,分享出来供大家参考学习,...

    FunTester
  • WeTest:五年沉淀,打造游戏品质的坚实后盾

    WeTest五周年庆火热进行中,超多免费福利赠送,【点击领取】(超链接:https://wetest.qq.com/activity/fiveyears/?fr...

    WeTest质量开放平台团队
  • 当前端基建任务落到你身上,该如何推动协作?

    作为一名野生的前端开发,自打本猿入行起,就未经过什么系统的学习,待过的团队也是大大小小没个准儿:

    歪马
  • SMB扫描

    SMB协议大家应该都有所了解,毕竟2017年的MS17-010血洗整个互联网,加上之前的MS08-067 漏洞,这些都是SMB协议上出现过的著名漏洞

    意大利的猫
  • 终于,我被一PHP大神骂醒了

    说实话,最近心态有点崩,公众号更文也不怎么勤快了,微信上的私信我也很少回复了,粉丝群里也不怎么露面了。

    闰土大叔
  • 由全民吃鸡引发的网游加速学习总结

    不论你是或不是一个游戏玩家,最近吃鸡类游戏的火热度可见一斑。而我所在的项目团队要来干这件大事了,因为我们要实现PC端网游加速这回事,第一个目标就是绝地求生。

    腾讯移动品质中心TMQ
  • 少年!用好这把瑞士军刀,从此网络故障诊断不用愁!

    Netcat 号称 TCP/IP 的瑞士军刀并非浪得虚名,以体积小(可执行 200KB)功能灵活而著称,在各大发行版中都默认安装,你可以用它来做很多网络相关的工...

    民工哥
  • 测试面试题集-网络基础

    点击上方蓝字“ITester软件测试小栈“关注我,每周一、三、五早上 07:30准时推送。

    ITester软件测试小栈

扫码关注云+社区

领取腾讯云代金券