一 什么是接口测试

首先看人们的日常生活场景,手机刷朋友圈,发微信,聊QQ,看新闻,逛京东,逛淘宝等等……
疑问:数据是如何交互的?答案:接口
接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
              —百度百科
接口测试是集成测试的一部分

二 接口类型

Code接口:函数方法间的调用

package com.java.base; public class InterfaceTest { //求两个整数相加的和 public static int add(int a, int b){ return a + b; }

  1. public static void main(String[] args) {
  2. //测试整数相加
  3. int resule = add(1,2);
  4. if(resule == 3){
  5. System.out.println("success!");
  6. }else{
  7. System.out.println("fail!");
  8. }
  9. }

}

Message接口:请求和响应
http:wireshark抓取网易云音乐的http请求包举例说明常见的http请求rpc

三 为什么要进行接口测试

首先介绍下分层测试的概念

RestAssured接口系列|1 接口测试简介 - 图1
其中unit test单元测试由开发组织实施,单元测试也是开发对代码进行自我检查的过程
Service test接口测试部分
UI test 用户界面测试

效率

执行效率高
介入早,发现bug早,优先级高
发现bug导致-接口修改-代码修改

成本

接口测试时介于UI测试和单元测试之间的部分,是一种灰盒测试,相对于UI测试,它是底层测试,一个底层的bug大概会引发8个上层bug,而且越是底层的bug引发的问题可能越是严重,甚至直接导致网站down掉,也就是说底层Bug的优先级一般都较高,可见接口测试相对于ui级别的测试发现bug的效率更高。
**

四 什么样的条件适合做接口自动化测试

软件需求变动不频繁

  测试脚本的稳定性决定了自动化测试的维护成本。如果软件需求变动过于频繁,测试人员需要根据变动的需求来更新测试用例以及相关的测试脚本,而脚本的维护本身就是一个代码开发的过程,需要修改、调试,必要的时候还要修改自动化测试的框架,如果所花费的成本不低于利用其节省的测试成本,那么自动化测试便是失败的。
  项目中的某些模块相对稳定,而某些模块需求变动性很大。我们便可对相对稳定的模块进行自动化测试,而变动较大的仍是用手工测试。

项目周期较长

由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。

自动化测试脚本可重复使用

  自动化测试脚本的重复使用要从三个方面来考量,一方面所测试的项目之间是否很大的差异性(如C/S系统和B/S系统的差异);所选择的测试工具是否适应这种差异;最后,测试人员是否有能力开发出适应这种差异的自动化测试框架。

五 怎样实现接口自动化测试和持续集成

工具及框架选择

Jmeter:

优点:

  1. 有GUI操作界面,上手容易,不需要编程基础,但支持代码实现
  2. 成熟,稳定,参考资料多
  3. 功能强大

    Sopaui:

    优点:

  4. 有GUI操作界面,上手容易,不需要编程基础,但支持代码实现

  5. 成熟,稳定,参考资料多
  6. 功能强大

缺点:以上两个具体都不支持多人同时协作开发。

Rest assured:

优点:

  1. 丰富的开源类库支持
  2. 自由灵活
  3. 支持多人协作开发

缺点:

  1. 需要编程基础,上手难度较大

不是说Jmeter和soapui不好,推荐rest assured的原因就是有丰富的开源类库支持,可以根据自己的实际需求做二次封装,由于有一定编程基础有要多人协作开发的自动化测试团队无缝对接,对那些想学习编程,进行自动化测试开发的同学也提供了很好的平台。
语言选择:
Rest assured目前支持java版本,此书以后所有内容都是使用java开发语言,开发工具笔者推荐intellij,本书的代码编写及调试运行是基于intellij idea 2016 2.1,优点就不在累述了,大家自己自己熟悉的开发工具都可以,但本书介绍的一些设置和技巧在其他工具可能无效,请注意。

RestAssured接口系列|1 接口测试简介 - 图2