接口测试(一)——前言与定义

一、前言

(这部分较长的文字内容可以帮你更好的理解接口的本质)

1.1 名词解释:

TCP/IP:传输控制协议/互联网络协议
HTTP:超文本传输协议,是一个资源请求访问的工具。
URL:统一资源定位符,是一个资源在网络主机上的地址。拿现实类比,就像一个电视机在家里的位置,放在了什么地方。

1.2 网络数据传送

网络上数据的传送形式是一个个数据包。IP协议提供数据包的命名方法和递送机制,能够让一台主机在网络上向另一台主机传送包。TCP协议是建立在IP协议上,提供进程间可靠全双工连接的协议。

TCP/IP就像一辆汽车,用运输货物,但是在互联网世界,有无数辆这个模样的汽车,如何将这些一模一样的汽车区分开来,分清一辆汽车是做什么工作,就需要HTTP协议,HTTP就是给汽车定义类型改变外型的规则,比如这种车是小轿车,那种车是大客车。HTTP请求类型由此而来,GET、POST、DELETE、PUT等等。

1.3 浏览器访问实质

我们打开一个浏览器,要访问对应的网页,在地址栏输入URL,其实质就是发送一个HTTP请求,根据请求类型拿取那个地址对应的资源文件,本质就是你的电脑主机和目标主机建立一个连接,获取资源的过程。

这里用客户端和服务器来区分你自己的主机(客户端)和想取资源文件的目标主机(服务器)。服务器用两种不同的方式向客户端提供内容,分别为静态内容和动态内容。一般来说,磁盘文件就是静态内容,直接返回给客户端。而运行一个可执行文件,该文件的运行结果就是动态内容。

如下是静态内容一个典型的URL: http://www.google.com:80/index.html
就是到地址映射的域名为www.google.com因特网主机上获取一个html资源文件地址。域名映射的相关内容这里不多解释。

如下是动态内容的一个典型URL:http://bluefish.ics.cs.cmu.edu:8000/cgi-bin/adder?15000&213
‘?’字符用来分隔文件名和参数,每个参数用‘&’字符分隔开。上述URL标识了一个adder的可执行文件,带着2个字符串参数15000和213。

1.4 Http请求与响应

请求:上述提到的HTTP请求类型包含GET、POST、PUT等,就是对资源不同的操作方式。各种类型详细的区别这里不多介绍。在接口测试中使用的最频繁的就是GET和POST两种请求方式。我们一般掌握这两个请求就可以应对大多数的测试用例需求了。

响应:服务器收到客户端的请求后,就需要提供相应的响应结果给客户端。其中状态码是我们判定一次请求是否成功的依据。常见的状态码有 200(成功)、404(未发现资源)、403(资源禁止访问)等等。也是我们后续接口测试断言使用的判断依据之一({response.status_code})。

二、接口测试

2.1 接口含义

接口就是一个系统与外部系统,或者一个系统内部子系统之间,组件之间交互的节点。 1 拿现实类比,我们上下电梯,电梯的按钮就是一个接口。我们不需要关注我们按下那个按钮,电梯是如何工作的,我们只需要关心,按下按钮后,电梯能否到达相应的楼层。在程序员的世界里,广义上的接口也是指代一些经过其他程序员封装的函数(API)。比较直观的理解接口就是如同我上文提到的,是保存在远程主机上的动态/静态内容。

2.2 接口测试内容

一般来说,接口测试是指代web数据接口的测试。其原理就是通过GET或者POST等请求向远程主机发送数据包,然后获取反馈结果,将反馈结果与我们预期的结果进行比较,看是否符合要求。(模拟客户端向服务器发送请求,接收反馈,检查反馈数据是否符合预期)类似灰盒测试。

2.2.1 接口参数类型

  • 字符串
  • 数字
  • 布尔
  • 浮点数
  • obj (python中字典)
  • 列表 等等

2.2.2 接口测试的方式(用例设计)

  1. 等价类分析(属于黑盒测试)
  • 正常的参数集合
  • 异常的参数集合
  1. 边界值分析
  • 业务规则边界
  • 输入输出边界
    1. 覆盖所有必传参数
    2. 空参数
    3. 可选参数组合
  1. 接口性能测试
  • 接口响应时间
  • 并发数
  • 服务器资源(内存、CPU、IO、网络等)
  1. 接口安全测试
  • 加密
  • 白名单

2.2.3 接口判定依据

  • status code 200
  • 返回消息体字段内容、类型和接口文档定义一致

2.2.4 cookie和session

  • cookie: 存放在客户浏览器上,有失效时间
  • session: 存放在服务器上

  1. Randal E.Bryant / David O’Hallaron : Computer Systems: A Programmer’s Perspective (3rd Edition)(深入理解计算机系统)[M]机械工业出版社,2016-11. ↩︎

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值