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

详情如下:

用于输入

输入主要指界面的参数。在我们通常的测试中,我们会首先考虑正常参数和异常参数,包括异常参数和数据。在用例设计中,等价类划分和边界值分析被广泛使用。

A.正常参与

正常参数通俗易懂,即根据界面设计文件的参数标准,输入正常参数,响应按照界面设计文件约定的条件正常返回。

B.异常参数

参数异常包括:空参数、多参数或少参数、错误参数。

C.异常数据

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

对于处理逻辑

在接口测试之前,通用R&D将提供接口设计文件或与业务相关的设计图纸和流程图。对于业务流程的处理逻辑,我们可以从参数、事件的操作对象、业务的状态进行改变。

A.限制条件分析

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

状态限制:有效|无效、在线|离线、黑化|洗涤等。

关系的限制:存在或不存在、绑定或解除绑定等。

权限限制:管理员、普通用户等。

B.对象分析

对象分析主要是操作合法和非法的对象。比如银行卡用户给卡充值,可能有:用户A给非用户A的卡充值;用户用自己的卡充值,卡已经过期;a用户使用自己的卡充值,卡被列入黑名单或挂失。

C.状态转换分析

比如支付业务,第一次支付成功,票据取消后会进行退款。如果第二次支付不成功,支付会失败,状态之间的切换是否正常,状态如何显示,是否可控,是否存在异常状态,空白状态业务如何处理。

D.时间序列分析

在一些复杂的活动中,一个活动是由一系列动作按照指定的顺序执行的,这就形成了一个动作流。只有按照这个顺序执行动作,我们才能等待预期的结果。其他分支动作程序在执行过程中会发生什么?

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

针对输出

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

这种基于输出的设计案例可以发现前后端是否正常输出结果,提示是否友好,敏感信息是否出现等等。

数据库操作

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

B.业务数据入库是否正常,是否有重复数据入库,是否有乱码;日志数据入库正常吗?

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

D.数据删除和备份正常吗?

安全性

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

性能相关

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

B.最大并发、响应时间、吞吐量和资源消耗

接口超时

接口正常返回,那么如果接口不返回呢?因此,接口超时后的处理也是测试中需要考虑的一部分。如果超时处理不当,可能导致进程阻塞,或者超时后收到接口返回,导致逻辑混乱。

与历史版本的兼容性分析

废弃的协议或接口,代码不做注释,在某些情况下,可能会触发版本历史中废弃的协议或接口,导致用户使用或调用功能后出现意外问题和损失。

在同一个系统中,不同服务之间的接口相互调用时,新接口是否受到历史接口的影响,尤其是新旧接口是否处理某一功能,是否存在业务不兼容的情况。

这就需要测试人员对一个系统进行长时间的测试,所以他们可能会想到这个场景,清楚地知道什么时候哪个版本被重构了,放弃了那些接口,增加了那些接口,哪些场景会触发历史接口的某个规则。

接口设计合理

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

阿里资深技术专家带你聊一聊——服务端的接口测试...相关推荐

  1. 阿里资深技术专家:谁说程序员是吃“青春饭”的?

    你是否认真思考过:毕业 3-5 年.10 年,乃至更久后,我们希望成为什么样的人?作为一名技术人,我们要如何规划自己的职业发展生涯? 网上热议的"35 岁中年危机",本质上又因什么 ...

  2. 阿里资深技术专家崮德:8 个影响我职业生涯的重要技能

    崮德 阿里资深技术专家 读完需要 7 分钟 速读仅需 3 分钟 崮德, 2005 年毕业于浙江大学,获得电路与系统硕士学位,后加入华为,从事 2G 和 3G 的基站开发.2006 年加盟上海晨讯科技, ...

  3. (转自阿里技术)如何快速成长为技术大牛?阿里资深技术专家的总结亮了

    如何快速成长为技术大牛?阿里资深技术专家的总结亮了 李运华 阿里技术 3月29日 阿里妹导读:你是否有类似这样的问题--"天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?" ...

  4. 花了我一个晚上浓缩了一整套阿里资深技术专家设计教程整理出的java架构设计方法

    最近学习了阿里资深技术专家设计教程,颇有收获,总结一下. 1 基本概念和目的   相关资料领取 架构设计的目的是为了解决系统复杂度带来的问题,并不是要面面俱到,不需要每个架构都具备高性能.高可用.高扩 ...

  5. 8月8日云栖精选夜读 | 阿里资深技术专家林轩:云时代软件研发的终局猜想

    2015 年到 2016 年,是业界普遍认为的容器技术爆发的一年,短短几年时间,我们看到容器技术星火燎原.但是容器毕竟是个底层产品,距离业务还很远.对云上客户来说,直接需要的终归是直接触达业务的应用. ...

  6. 阿里大数据技术如何进化?资深技术专家带你回顾

    阿里妹导读:很多童鞋在后台留言,希望看到大数据相关的文章.因此,今天带来一篇阿里资深专家观滔在2017年云栖大会的精彩分享,为大家展示阿里大数据计算服务的进化演进.以及MaxCompute解读. 一. ...

  7. 如何衡量研发效能?阿里资深技术专家提出了5组指标

    阿里妹导读:新的一年,相信很多产品技术团队把研发效能提升列为重要的目标,甚至还有团队为此专门成立了项目组.然而,到底什么是好的研发效能,却很少有人能够表达清楚.标准不清晰,又何谈提升? 今天,阿里研发 ...

  8. 阿里资深技术专家:优秀的数据库存储引擎应具备哪些能力?

    导读 本文作者是阿里巴巴OLTP数据库团队资深技术专家--曲山.作为自研高性能.低成本存储引擎X-Engine的负责人,曲山眼中的优秀关系型数据库存储引擎应该具备哪些能力呢? 正文 数据库内核按层次来 ...

  9. 一个项目中能提出哪些数据库优化_阿里资深技术专家曲山:优秀的数据库存储引擎应具备哪些能力?...

    云栖君导读:作为数据库的底盘,一个成熟的存储引擎如何实现高效数据存取?本文作者是阿里巴巴OLTP数据库团队资深技术专家--曲山.作为自研高性能.低成本存储引擎X-Engine的负责人,曲山眼中的优秀关 ...

最新文章

  1. 和至少为k的最短子数组 python_和至少为k的最短子数组
  2. linux 下后台运行python脚本
  3. SpringMVC 返回值分类
  4. 备份数据库的expdp语句_Oracle数据库备份恢复Data Pump Expdp/Impdp参数详解与案例介绍...
  5. python实现mysql的读写分离及负载均衡
  6. 步进电机功率计算公式
  7. ARMv8-A编程指导之Caches(1)
  8. 三菱fx5u modbus tcp fb块用法_FX5U强势来袭
  9. 正则表达式(regex,RE)
  10. 分享一个网站地图生成工具
  11. sklearn+机器学习
  12. 遐想:Android Nexus One Flan
  13. 图情论文笔记 | 图书情报档案机构如何助力乡村振兴?
  14. 道一HTTP测试工具功能升级
  15. pacemaker常用命令
  16. SOFA BOLT源码解析之设计要点-线程模型
  17. 第十四次CCF CSP认证心得
  18. win7java浏览器崩溃_win7系统浏览器页面一直崩溃的修复方法
  19. 市场分析——行业背景分析
  20. 当前主要的常用的PHP环境部署套件比较

热门文章

  1. Java 帝国之Java bean上
  2. 论文笔记:Object Detection in 20 Years: A Surve(目标检测20年研究综述)
  3. CentOS7.9 通过 kubeadm1.23.5 安装 K8S
  4. hadoop和spark HA部署
  5. 查看已安装Tomcat的版本号
  6. 戈革:独一无二的学者
  7. Mac如何做才能彻底清理垃圾
  8. 安装BT5 backtrack5 linux 无线网卡驱动
  9. RISC-V为中国MCU企业打开一个新窗口!
  10. 基于PHP美食食谱的外文翻译,中国传统菜谱的英文翻译锦集