接口的使用场景

接口测试的场景一般分为以下三种:

系统与系统之间的调用

系统与系统之间的调用主要产生于系统的Service层,很典型的例就网站的第三方登录。在A网站输入B 网站已经注册过的用户名密码,A网站调用B网站提供的接口,将用户在A网站输入的用户名密码交由B网 站验证,如果B网站验证通过将会返回给A网站一个登录成功的信息,A网站允许用户登录A网站。

上层服务对下层服务的调用

应用层,从认知上你可以看成是系统所提供的功能。对于web系统来说,你可以认为是浏览器页面上所提供的功能,按钮、输入框等。

Service层,可以理解为服务器所提供数据和逻辑的处理。

DB层,(Data Base)数据库主要用来存放数据,例如用户的个人信息,商品的信息与价格。

访问对象,它是第一个面向对象的数据库访问接口。对于我们第三章节所介绍的PyMySQL驱动就扮演着这样一个角色。

举个例子来说明各层的工作过程,首先是Service提供了一个查询接口,这个接口只需要一个参数(查询的关键字);然后应用层提供了一个输入框,需要用户输入查询关键字,并且还提供了一个查询按钮用于提交查询的关键字。

当用户输入查询关键字并点击提交按钮后,相当于调用的查询接口,查询接口需要对用户提交的关键字做各种判断,为空怎么处理?为特殊字符怎么处理?后然,通过DAO层调用数据库,根据关键字查询表中的数据,然后再将拿到的数据返回给应用层,应用层再负责将数据展示到web页面上。

在这个过程中,各层之间的交互就是通过接口,应用层与Service 主要通过HTTP接口。Service层与DB层主要通过DAO(Data Access Object)数据库访问接口,对于Python与MySQL之间,我们前面介绍的PyMySQL 驱动就扮演着这样的角色。

系统内,服务与服务之间的调用XX系统

系统内部,服务与服务之间的调用,这里也可以看作是程序与程序之间的调用。

举例更容易说清楚,我们继续举例。假设系统开发一个用户查询接口,输入用户名,返回用户信息,如果用户不存在则返回null;现在需要新开发一个用户抽奖的接口,该接料需要用户名和抽奖动id,抽奖接口得到用户名后可以调用用户查询接口,如果用户查询接口返回null,那么抽奖接口就可以直接返回用户不存在了。在这个例子中,用户抽奖接口就调用的用户查询接口。

接口测试的意义

根据分层自动化测试中的定义,最底层由开发人员编写的单元测试保证代码质量,最上层由功能测试人 员手工+自动化进行大量的功能自动化测试保证功能的可用。那么进行接口测试的意义是什么?

保证系统的稳定性:

一个系统的服务端越接近底层,对系统的影响就越大,甚至有可能牵一发而动全身,服务端的一个缺陷 可能会引起客户端的几个甚至十几个缺陷,更可怕的是服务端的缺陷有可能引起系统的崩溃,这对整个系统 来说,损失将是不可估量的,因此服务端接口的质量将直接影响到系统的正确和稳定。

然而,在实际的开发过程中,开发人员并没有充足的时间编写单元测试,并且他们往往对自己编写的代 码有足够的信心,不愿意将时间“浪费”在编写单元测试身上。这个时候接口测试就肩负着重要的作用。

将bug 控制在项目前期:

就笔者所做的微信活动而言,后端系统比较成熟,对于前端开发来说,每个活动都有很大不同。这就导 致后端接口开发只需要一天就可完成,而前端开发的工作量至少需要两、三天。而在这个空当期就可以充分 的对接口进行测试,从而尽早的发现系统bug;减少功能测试的工作量,缩短产品的发布周期。

检查服务器的异常处理能力:

我们通常把前端的验证称为弱验证,因为它很容易被绕过,这个时候如果只站在功能的层面时行测试, 就很难发现一些安全的问题。不以前功能为入口的接口测试就会发挥出它的作用。

举例,某接口默认需要传三个参数,因为前端页面控制三个参数都不能为空。但是直接调用该接口时只 传了一个参数,而接口并没有对只传一个参数的情况进行处理,结果将直接抛出了系统错误信息。对于这个 错误而言,只从功能测试层面进行测试是无法测到的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值