随着AI等新技术的不断发展,企业对于测试人员的要求也越来越高。只会表面点点点的测试工程师逐步被取代,而掌握接口测试、开发语言、测试框架开发,可从事高级(及以上)测试岗位,越来越受到互联网企业的重视。

如今,对于测试人员来说,掌握接口测试基本上已经成为一个标配的能力。

当你打开这篇文章,我想你应该对接口测试产生了兴趣。无论你是刚刚开始接触接口,还是此前从来没有接触过,希望这篇文章能让你对于接口测试有更多的了解。

因为安妹之前总是会碰到很多初学者,先去网上搜了一大堆高大上的名词解释,就感觉被吓到了,好像接口测试是一个很高深、很难懂的东西。

但其实安妹今天想告诉你的是,接口测试其实没有你想象的那么难,只要找对了方法和工具,它其实很简单!这篇文章也会尽可能通俗易懂地来给大家聊聊接口测试,以及接口测试常用测试方法。

那么,首先,让我们先来了解一下接口。

什么是软件接口?

软件接口,Application Programming Interface(API),是软件各个模块间对接方法的定义,或者是系统与系统之间对接方法的定义。

说到软件各个模块,不了解软件架构的同学可能不知所云,在此举一个例子。大家都使用过京东或淘宝,在使用之前我们都必须先要进行登录,那么京东或淘宝它们是怎么知道你的输入的帐号及密码是合法的呢?你在点击“登录”按纽之后为什么能跳转到京东或淘宝的首页呢?

我们软件的开发分为前端开发和后端开发。

前端开发是指开发出软件的形象特征,简单的讲也就是说你在打开一个网站后会呈现一个页面给你 ,这个页面的排版、样式布局是前端开发工程师设计地,比如各种输入框、字体的大小、各种按纽等 等 。

而后端开发工程师做什么呢?后端则负责提供各种数据,然后展示在页面上。比如你淘宝上输入了“裙子”点击“搜索”,此后网站页面会为你提供各类裙子的信息,网页为你提供这些信息的功能就是由后端人员开发的。

那既然说网站开发是分为前端、后端,此时又会有人有疑问如何才能将软件的前端、后端结合在一起呢?接口,通过接口就可以将软件的前、后端结合交互,从而组成一个完整地软件。所以接口测试就是指的是对软件各个组件交互情况的测试(软件前后端交互过程图)。




前端js怎么调取后端java_接口测试


除此之外,软件接口还可体现在不同的两个系统间的交互使用,例如大家在微信朋友圈中分享的各类信息同步到QQ里面,实际上也是通过接口方式去实现的,这是系统间(或是系统对外)的接口。

接口都有哪些类型
接口一般分为两种:一种是程序内部的接口,一种是系统对外的接口
系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的。
程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

常见的接口分类
通常我们看到的接口的分类主要是:1.webservice接口 2.http api接口
webService接口:是走soap协议通过http传输,请求报文和返回报文都是xml格式的,我们在测试的时候都用通过工具才能进行调用,测试。
http api接口:是走http协议,通过路径来区分调用的方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。

json是一种通用的数据类型,所有的语言都认识它。(json的本质是字符串,他与其他语言无关,只是可以经过稍稍加工可以转换成其他语言的数据类型,比如可以转换成Python中的字典,key-value的形式,可以转换成JavaScript中的原生对象,可以转换成java中的类对象等。)

为什么要做接口测试
简单来说,主要有这几点原因:

(1)越底层发现bug,它的修复成本是越低的。
(2)前端随便变,接口测好了,后端不用变,前后端是两拨人开发的。
(3)检查系统的安全性、稳定性,前端传参不可信,比如京东购物,前端价格不可能传入-1元,但是通过接口可以传入-1元。
(4)如今的系统复杂度不断上升,传统的测试方法成本急剧增加且测试效率大幅下降,接口测试可以提供这种情况下的解决方案。
(5).接口测试相对容易实现自动化持续集成,且相对UI自动化也比较稳定,可以减少人工回归测试人力成本与时间,缩短测试周期,支持后端快速发版需求。接口持续集成是为什么能低成本高收益的根源。

怎样做接口测试
由于我们项目前后端调用主要是基于http协议的接口,所以测试接口时主要是通过工具或代码模拟http请求的发送与接收。工具有很多如:postman、jmeter、soupUI等。

做接口测试需要有《接口文档》,对前端传入的请求参数(比如登录时的帐号及密码就是参数)内容进行说明,对服务器响应内容也需要说明。测试工程师需要去验证这些参请求参数、服务器响应内容是否合理。

常见接口测试方法:

在测试方法需要考虑以下几种情况,但又不仅仅只包含这几种方法,具体还要看软件需求。

输入参数合法、输入参数不合法、输入参数为空、输入参数为null、输入参数超长、必传字段不传、非必传字段不传、模拟网络超时、模拟网络异常

下面以QQ登录时的接口测试进行举例说明:

(1)考虑输入正确地输入合法有效的帐号、密码登录查看是否可以登录成功;

(2)考虑无效的帐号、密码登录时,系统处理是否正常;

(3)考虑只输入帐号,不填写密码时系统如何处理;

(4) 考虑只输入密码,不填写帐号时系统如何处理;

(5考虑帐号及密码均不输入的情况下,系统如何处理;

(6)考虑输入帐号、密码仅有一个正确的情况下系统如何处理。

总之,做好接口自动化测试并没有那么简单,当然只要找对方法和工具,一切都没有你想象中那么复杂!