接口的分类
- 系统与系统之间的接口
系统与系统之间的接口,这里可以是公司内部不同系统之间的接口调用,也可以不同公司之间系统接口的调用。对于前者来说,笔者所测试MAC 平台就是一个对公司内部提供接口的系统。例如用户接口、抽奖接口、图片相册接口等。而对于公司的其它系统,如社区网站和微信活动可以调用这些接口快速的实现相应的功能。而对于后者来说,如微信,微博所提供的第三方登录接口,如果你开发的系统不想自建用户体系,完全可以调用这些接口来实现用户的登录。
- 下层服务对上层服务的接口
应用层,从认知上你可以看成是系统所提供的UI 层功能。对于Web 系统来说,你可以认为是浏览器页面上所提供的功能,登录、注册、查询、删除等。
Service 层,可以理解为服务器所提供数据和逻辑的处理。
DB 层,(Data Base) 数据库主要用来存放数据,例如用户的个人信息,商品的信息等。
访问对象,它是一个面向对象的数据库访问接口。
举例来说明各层的工作过程,首先是Service 提供了一个查询接口,这个接口需要一个参数(查询的关键字);然后应用层提供了一个输入框,需要用户输入查询关键字,并且还提供了一个查询按钮用于提交查询的关键字。当用户输入查询关键字并点击提交按钮后,相当于调用的查询接口,查询接口需要对用户提交的关键字做出相应的判断,是否为空?然后,通过DAO 层调用数据库,根据关键字查询表中的数据,最后,再将拿到的数据返回给应用层,应用层负责将数据展示到Web 页面上。
在这个过程中,各层之间的交互就是通过接口,应用层与Service 主要通过HTTP 接口。Service 层与DB层主要通过DAO(Data Access Object)数据库访问接口。
- 系统内,服务与服务之间的调用
系统内部,服务与服务之间的调用,大多情况下是程序之间的调用。
继续举例,假设系统开发一个用户查询接口,输入用户名,返回用户信息(性别、年龄、手机号、邮箱地址等),如果用户不存在则返回null;现在需要新开发一个用户抽奖的接口,该接口需要用户名和抽奖动id,抽奖接口得到用户名后可以调用用户查询接口,如果用户查询接口返回null,那么抽奖接口就可以直接返回用户不存在了。在这个例子中,用户抽奖接口就调用的用户查询接口。
那么这里的用户查询接口和抽奖接口本质上就是程序开发的函数或类方法,提供入参与返回值。
接口测试的意义
- 更早的发现问题
- 缩短产品研发周期
- 发现更底层的问题
- 检查服务器的异常处理能力