接口测试 想说爱你并不难

接口测试

什么是接口(API)

API全称Application Programming Interface,这里面我们其实不用去关注AP,只需要I上就可以。一个API就是一个Interface。我们无时不刻不在使用interfaces。我们乘坐电梯里面的按钮是一个interface。我们开车一个踩油门它也是一个interface。我们计算机操作系统也是有很多的接口。(这是目前个人找到比较好理解的一段解释)

接口就是一个位于复杂系统之上并且能简化你的任务,它就像一个中间人让你不需要了解详细的所有细节。那我们今天要讲的WebAPI就是这么一类东西。像谷歌搜索系统,它提供了搜索接口,简化了你的搜索任务。再像用户登录页面,我们只需要调用我们的登录接口,我们就可以达到登录系统的目的。

现在市面上有非常多种风格的Web API,目前最流行的是也容易访问的一种风格是REST或者叫RESTful 风格的API。从现在开始,以下我提到的所有API都是指RESTful风格的API。

接口测试没什么高深,只是测试的对象是接口而已。

案例

某公司发现,价值100元的商品,在该公司网上商城被以0.01元买走了很多。攻城狮们火速定位,问题原因很快被找到了,原来是购买商品接口的bug。该接口需要3个参数:商品id、商品单价、购买数量,而服务器根据接口传过来的商品单价(0.01元)生成了订单。服务器本应根据数据库中的商品单价100元来生成订单。如下图,我们将页面上的单价修改后,再购买,提交到服务器的商品单价就是0.01元。

作为测试工程师的你,有做过这种测试吗?

如果没有强烈建议你赶紧补充测试。侥幸是测试工程师的最大天敌之一。

what-接口是什么?

在计算机中,接口是计算机系统中两个独立的部件进行信息交换的共享边界。举个例子,我提供加法的计算接口,你给我两个数,我就给你返回一个和。

what-什么是接口测试?

狭义的接口测试指的是对接口进行测试,上个例子中测试的是不同输入参数时,我加法的返回是否正确。一般讲的接口测试是这种。

广义的接口测试包含接口提供方、接口调用方的测试。 比如,你调用我的接口执行加法,我返回错误的响应,或者我响应超时,这时你的处理是否正确。

为什么要做接口测试?

上面的案例就能说明做接口测试的重要性。一般做接口测试有如下原因:

一般的功能测试,覆盖不到多种情况。(如上例所示)

从安全角度考虑,只依赖于前端的校验不能满足要求,需要服务端也要做校验,比如:APP上一个充值的界面,充值金额输入框不能输入负数,测试时,我们要确保服务器也做了这个校验。有一万种手段绕过前端验证。

从安全的角度考虑,用户密码、其他用户隐私信息传输时都需要进行加密。

当APP的代码不更新,而服务端代码更新时,直接通过接口自动化测试就能快速知道是否影响APP的功能。

很多系统是没有界面的,只提供接口功能,没法通过界面的方式进行测试。

6. 接口测试相对容易实现自动化,也容易实现持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

How-怎么做接口测试?

“怎么做接口测试”这个问题可以分解为两个问题:

怎么设计接口测试用例?

怎么执行接口测试?

怎么设计接口测试用例?

怎么执行接口测试?

Fiddler、SOAPUI、PostMan等可以做半自动的接口自动化测试;

使用Robot Framework做全自动化的接口自动化测试;

自己用代码做全自动的接口自动化测试,如Java+testNG;

4. 找其他第三方平台做全自动的接口自动化测试。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181017G16HPU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券