跳转至

接口测试、接口协议以及常用接口测试工具详解

前言:什么是接口

  1. 接口指的是软件提供给外界的一种服务。作用在于使其内部的数据能被外部进行修改的交互方式。 例如:USB接口,电脑里的数据可以看成是内容数据,而U盘里的数据可以看成是外部数据,那么USB接口的作用就是:电脑和U盘交互数据,也就是使电脑内部的数据能够和外部的U盘交换数据。 例如:微信的提现和充值,就调用银行对外开放的接口,这些接口有权限控制,一般需要鉴权码token才可以访问。那为什么要鉴权码呢?如果没有鉴权码约束,那是不是谁也可以修改银行内部的数据?那还得了,那就真可以定一个小目标了!

  2. 接口一般来说有两种:一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们用的app它在进行数据处理的时候都是通过接口来进行调用的。

程序内部的接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块、发帖模块等等,那你要发帖就必须先登录,要发帖就得登录,那么这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用。

接口协议以及对应的接口测试工具

  1. 基于http协议的接口:

http协议又叫超文本传输协议,主要是用于浏览器和服务器之间交互数据,这种接口常使用get和post两种方法请求,基于这种协议开发的接口是目前市面上面最多的!一般使用的接口测试工具有:PostmanJmeter

  1. 基于webService协议的接口 webService是基于soap的通信协议,请求和返回报文一般是xml格式的。一般使用的接口测试工具有:SoapUI

  2. 基于Dubbo协议的接口 3.1 dubbo 缺省协议 采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况 3.2 不适合传送大数据量的服务,比如传文件,传视频等,除非请求量很低。 3.3 基于Dubbo协议的接口一般也是使用SoapUI工具进行测试。

接口测试如何设计测试用例?

接口测试一般考虑入参形式的变化和接口的业务逻辑,一般设计接口测试用例采用等价类、边界值、场景法居多!

接口测试设计测试用例的思路如下: 1. 接口业务逻辑测试?(正例) 接口逻辑测试是指根据业务逻辑、输入参数、输出值的描述,对正常输入情况下所得的输出值是否正确的测试,也就是测试对外提供的接口服务是否正常工作。

  1. 模块接口测试?(反例) 模块接口测试是为了保证数据的安全及程序在异常情况下的逻辑的正确性而进行的测试。?

模块接口测试的主要包括以下几个方面?

  1. 鉴权码token异常(鉴权码为空<没有鉴权码>,错误的鉴权码,过期的鉴权码)。
  2. 其他参数异常。 2.1 必填项检查 2.2 参数的长度、类型、格式异常: 常规参数:(数字、字符串、日期) 参数长度:6-18位。或身份证、电话的长度。 参数类型:数字(精度),字母,中文,带空格的参数,特殊字符。 日期格式:日期:年月日,年月日时分秒,日期格式(包括/,-,:等)。 2.3 错误码异常覆盖。 2.4 接口测试其他的关注点 接口有翻页时,页码与页数的异常值测试 数据库的增删改查,比如一个post接口操作完成后,通过列表页接口看下新的数据是否和刚才的post一致 接口返回的图片地址能否打开,图片尺寸是否符合需求 当输出参数有联动性时,需要校验返回两参数的实际结果是否都符合需求。

    所有列表页接口必须考虑排序值 所有功能都要考虑兼容旧版本

接口组成

1. 接口都有那些部分组成呢?

由接口文档可知,接口至少应有:请求地址、请求方法、请求参数(入参和出参)组成,部分接口有请求头header。

2. header请求头和入参都是发送到服务器他们有什么区别呢?

首先,它们确实都是发送到服务器里的参数,但它们是有区别的,header里存放的参数一般存放的是一些校验信息,比如cookie,它是为了校验这个请求是否有权限请求服务器,如果有,它才能请求服务器,然后把请求地址连同入参一起发送到服务器,然后服务器会根据地址和入参来返回出参。也就是说,服务器是先接受header信息进行判断该请求是否有权限请求,判断有权限后,才会接受请求地址和入参的。


注: 上文内容不用于商业目的, 如涉及知识产权问题, 请权利人联系 vtest-top@foxmail.com , 将立即处理, 谢谢!