• 0
  • 0
分享

  接口测试一般需要关注以下几点:

  1.输入

  2.输出

  3.逻辑处理

  4.数据库

  5.安全性

  6.性能

  7.接口超时

  8.兼容性

  9.接口设计(较少关注)

  以下为各部分介绍。

  1.输入

  输入,接口的入参,一般使用等价类和边界值设计用例。需要考虑输入的正常与异常情况,其中异常包括有参数异常以及数据异常。

  A.正常的入参

  根据接口设计文档的入参标准,输入正常的参数,接口按接口设计文档的描述,得到正常的响应返回。

  B.参数异常

  参数异常包括:

  1)参数为空

  2)多参

  3)少参

  4)错误的参数

  C.数据异常

  数据异常包括:

  1)数据类型错误

  2)长度不符合设计

  3)非空参数为空

  4)特殊字符或敏感字符

  5)不在字典(接口设计)范围内的数据

  6)非法参数(非常规参数的处理,如号码、邮箱的判断机制)

  7)存在关联关系的参数数据异常

  2.输出

  在考虑接口异常时,不一定能覆盖所有错误码,可以通过接口定义返回的错误码补充异常情况的用例。

  如:

  A.网络异常

  B.无效的规则

  C.无效的参数

  D.无效的业务ID

  E.无效的任务

  F.服务器异常

  利用errorcode补充用例,可以发现前后端输出是否正常,敏感信息处理机制,及提示信息是否符合规范等。

  3.逻辑处理

  接口测试一般会提供接口设计文档,另外还应获取或整理业务流程图,针对业务流程中的处理逻辑,结合接口的输入限制、业务状态等进行测试点的考虑。

  A.限制条件

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

  2)状态限制:在线或离线,是否开通服务等

  3)关系限制:如账号与个人信息的绑定

  4)权限限制:三权分立(管理员,操作员,监控员等),用户之间的信息隔离等

  B.对象分析

  操作的对象是否合法,如对问题账号的转账,冻结用户的登录等。

  C.状态转换的分析

  在金融行业中状态转换的分析及处理较为重要,如商城购物,退款、付款中取消了订单、继续进行订单付款、是否可多次支付、业务流程跳转的状态处理等。

  D.时序分析

  时序分析多为针对业务流的处理分析。对于一些复杂活动,如办理业务需要进行的流程顺序,其业务流的处理。如资料的填写、上传是否只能按顺序进行?是否可返回上一步?流程步骤之间的跳转如何处理?资料填写到一半,去办理其他事务或切换窗口会导致什么情况?

  4.数据库

  接口在进行数据传输交互时,都需要对数据库进行操作,因此亦需要关注数据库的以下内容:

  A.数据读写是否正常

  B.数据存储是否正常(乱码、重复数据等情况)

  C.对资源的使用情况(CPU、内存等)

  D.对线程的占用、释放情况(读写线程的处理机制等)

  E.对数据的处理是否正常(增、删等操作)

  5.安全性

  对于接口的安全性测试,一般包含以下内容:

  A.信息的加密(包括但不限于 登录口令、用户身份信息等)

  B.传输方式(http/https)

  C.接口的鉴权方式

  D.sql注入防范

  E.越权访问

  后续如有安全测试,可能还包括非正常接口的访问、DDoS防护等。

  6.性能

  接口的性能不佳,会影响用户使用,甚者还会影响业务的正常进行。在金融行业中更是最为注重的测试点。

  接口的性能主要关注以下几点:

  A.最大并发

  B.响应时间

  a)平均响应时间

  b)最大响应时间

  c)最小响应时间

  C.吞吐量

  D.资源使用情况

  E.错误率

  7.接口超时

  接口测试的非正常情况处理包括接口超时,在金融行业中亦是较为注重的测试点,超时处理不当,可能会引起进程阻塞、逻辑混乱等情况。如提交订单后限制多长时间内完成付款,超时则订单无效。网络问题导致的长时间未成功付款等。

  8.与历史版本的兼容性分析

  如软件系统为迭代发布,则需要考虑对旧版本的接口兼容或接口废弃处理。需要考虑以下几点:

  A.废弃的协议或接口是否已注释,是否已不可使用

  B.新、旧接口之间是否兼容

  C.旧接口是否会影响新接口的使用

  D.接口的更新是否影响其他接口或外部系统的调用

  9.接口设计合理

  对于接口的设计应遵循以下几点:

  A.只提供必要的接口字段

  B.只返回必要的期望信息

  C.方便调用

  D.可拓展

  同时亦可关注以下内容:

  a.接口定义是否满足所有调用者的需求

  b.接口参数使用是否方便

  c.接口的业务规则是否正确

  d.接口对服务使用的影响

  以手机银行基金买卖提交接口为例,进行简单的接口用例分析:

  测试对象:手机银行基金买卖提交接口:


1.png



作者:小笔   

来源:http://www.51testing.com/html/50/n-4479050.html


2021 问卷礼物图.png

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   软件测试记录,是一项比较考验逻辑思维和想象力的工作。它既不像软件开发那样有实实在在的代码作为工作成果的展示,也没有BA那样,将软件需求拆分为story,就能够决定项目的走向。测试工程师的测试成果则没有那么明显,没有很容易可度量的成果展示,那么为了保证软件质量,同时也要知会给项目相关方,那么测试日报和测试报告就是非常重要的途径了。  测试日报和测试报告,在一定程度上是可以避免冗长的会议汇报,以及反复和项目相关方的沟通,体现了数据一次性报备,同时在原有邮件上全部回复式的更新,可以清晰地体现出测试工作的推进和版本的迭代情况。有助于未能深入了解项目的相关方,从基础数据入手来了解整个项目的运行。同时...
            0 0 639
            分享
          • 读者提问:什么是测试左移,什么是测试右移 ?阿常回答:一、测试左移测试左移就是在测试阶段到来之前,尽可能的抓紧开发前(需求分析)和开发中的时间做测试,提前发现问题,防微杜渐,避免积重难返。在需求源头就要控制伪需求,在代码设计阶段就要控制劣质代码。二、测试右移测试左移是往测试之前的开发阶段移,测试右移是往发布之后移,也就是产品上线了之后也可以进行一些测试活动。当然在生产环境直接做测试是不推荐的,但可以在生产环境做监控,监控显示性能和可用率,一旦发现任何问题,尽快反应,在用户发现之前,把问题解决了。关于左移和右移企业常见的做法,可参考@IDO老徐写的这篇文章如果能把功能测试涉及的这些都搞...
            0 0 1737
            分享
          •   在面试过程中,很多小伙伴也会说,我们会根据需求所描述的功能,进行测试。那作为一位应聘者,如何才能把自己之前工作的能力展示给你的面试官呢。  随着有赞SOA服务化的深入推进,系统拓扑结构越来越复杂。我们也在不断提升测试小伙伴的测试能力及问题思考的能力。  我们的日常测试,一般需要考虑需求功能测试、性能测试、异常测试、安全测试。  一、熟悉技术方案  有赞现在没有纯粹的测试工程师,不论是通过阅读技术方案文档、或是跟开发 Face to Face 沟通技术方案。从中,测试同学需要了解一下信息:  当前需求,涉及哪些应用的改动,或者我的业务需要改动哪些应用;  了解每个应用在全站系统拓扑结构的节点...
            13 13 1942
            分享
          •  作为一名前端,日常开发过程中除了写业务代码,前后端联调更是重要的一环。但这一环却往往是整个开发中最繁琐也最累人的一环。任谁都想早点下班,然而提升联调效率并不是个纯技术相关的问题,而是需要有良好工作流程的问题。友情提示:(阅读前情简介仅需1分钟,干货部分大约5分钟)前情简介:亲身经历节选Code: 403 “将我踢飞”彼时正处公司切换中台系统的技术栈,以半个sprint周期为单位进行着业务模块的迁移。每一个业务模块验证上线后就会下架 老爷车 中相对应的部分并通知员工基于新的中台系统进行办公。彼时又恰逢数据库扩容和分库分表,接口流转偶有故障为日常开发增添了麻烦。在这个背景下,我当时负责...
            12 12 2250
            分享
          • 做接口测试中,对于一般性的单业务接口测试很多工具可供选择,但是对于一些相关业务相关性的关联接口测试就比较麻烦,使用工具比如jmeter、postman、soapui等等就比较麻烦。我比较偏重脚本化执行测试用例,所以选择了groovy作为主要语言来进行接口测试,但是脚本依赖的库还是基于之前所在的java为主的测试框架,有兴趣的可以翻翻以前的文章。项目的架构思路是以模块为基础把接口分类,然后对于接口的请求单独进行实现。通过一个user作为一个用户,携带各种属性,如:uname,pwd,token,userinfobean等信息。来作为各个模块类之间的信息传递。回到修改密码接口,简单说一下我们接口的...
            1 0 2218
            分享
      • 51testing软件测试圈微信