接口测试01

常见的接口类型

接口是指外部系统与系统之间以及内部各子系统之间的交互点。

其中包括外部接口、内部接口

内部接口又包括上层服务与下层服务接口、同级接口

系统对外接口:比如你要从别的网站或服务器上获取资源或信息,别人肯定不会把数据库共享给你,它只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就可以使用它写好的方法,从而达到数据共享的目的

程序的内部接口:方法与方法之间、模块与模块之间的交互,程序内部抛出的接口,比如TMOOC系统,有登录模块、我的课程等等,如果你要看我的课程必须先登录,才可以观看,这两个模块就得有交互,它就会抛出一个接口,供内部系统进行调用

常见的WEB接口有哪些

HTTP协议的接口、WEB SERVICE接口

HTTP接口是走HTTP协议,通过路径来区分调用方法,请求的报文都是key = value的形式,返回的报文一般都是JSON串,有GET和POST等方法

WEB SERVICE接口是走SOAP协议通过http传输,请求报文和返回的报文一般是xml格式,在测试过程中一般使用工具才能进行调用测试 — 用的较少

程序中的接口 API

# 定义一个add函数 -- 实现加法运算功能,最后返回运算结果
# 定义函数: 函数名 参数表 返回值
# 定义add函数,传入两个参数
def add(a,b): # 接口可以接收使用者提供的数据
    # 逻辑处理
    c = a + b # 对这些数据进行处理,实现预定的功能
    # 返回结果
    return c # 将结果返回给使用者
# 调用函数:使用函数名,传入参数,返回结果
add(1,2) # 结果为3
add(3,5) # 结果为8
注意:接口测试考虑是程序的输入参数、输出结果

接口的本质及其工作原理是什么

接口你可以简单的理解他就是URL,工作原理就是说URL通过GET或POST请求向服务器中发送一些数据,然后得到一些相应的返回值,本质就是数据的传输与接收

服务器和客户端(机)

服务器是被测软件或被测接口程序安装的位置

使用linux操作系统作为服务器,会使用云服务的形式存在

客户端/机是个人计算机,通常将postman、fiddler、jmeter安装在个人计算机上

请求和响应

客户端要使用服务器上的软件或接口程序,需要把要处理的数据发送给服务器,服务器上的接口程序会处理数据,然后把结果发给客户端

客户端发送数据给服务器的过程叫做请求

服务器把处理结果发送给客户端的过程叫做响应

请求的组成部分

请求头包含许多有关客户端环境和请求正文的有用信息,例如,请求头可以声明浏览器所用的语言,请求正文的长度,操作系统等

示例:

Accept:image/gif.image/jpeg./
Accept-Language:zh-cn
Connection:Keep-Alive
Host:localhost
User-Agent:Mozila/4.0(compatible:MSIE5.01:windows NT5.0)
Accept-Encoding:gzip,deflate

请求体也叫请求正文,对于post方法来讲,要发给服务器的数据存放在请求体中

响应的组成部分

响应头主要是指响应的附加信息,比如响应类型、响应状态码、cookie、session等

响应体也叫响应正文,相当于接口返回值,也是从测试人员测试时最关心的内容

WEB接口的组成要素

1.接口地址

形式:协议://服务器IP地址或域名:端口号/项目名称/接口名称

例如://172.166.1.1:8080/test/api/?class=tsd2107&id=1

协议:常见的协议比如HTTP、HTTPS等

​ HTTP为普通http请求

​ HTTPS加密的http请求,传输数据更加安全

​ FTP文件传输协议,主要用于传输文件

服务器IP地址就是指提供接口的系统所部属的服务器地址

域名如www.tmooc.cn

端口号如果不填写端口号,默认是80,否则需要填写端口号

​ 有时候,一台服务器会提供很多服务,用不同的端口号区分不同的软件或接口

端口号是0~65535之间的整数

常见的端口号:

​ http 80、https 443

接口名本质上是函数名、方法名、类名、模块名、文件名

?用于分割接口地址和参数标志,必须是英文的(地址栏中有?是GET请求)

class和id是参数名,表示给服务器上的接口发送数据,请求服务器处理

&用于链接多个参数,是固定写法,多一个参数就加一个&符号连接

/test/api/?class=tsd2107&id=1也叫路径(URI)

URI叫统一资源标识符,一般用来表示网址或接口中具体位置或名称,是URL的一部分

URL叫做统一资源定位器,表示一个完整的网址或接口地址

2.请求方法

表示如何发送和处理数据

常见的请求方法:

方法名称 方法介绍
GET 主要用于获取数据/查询
POST 主要用于增加、修改、删除资源
PUT 主要用于修改资源(全部更新)
patch 主要用于修改资源(部分更新)
delete 主要用于删除资源

常见面试题:GET和POST方法的区别

  • GET请求可以被缓存,POST不可以
  • GET请求会保存在浏览器的历史记录中,POST不会
  • GET请求可以被收藏为书签,POST不会
  • GET请求时,发送数据的长度一般都有限制,POST没有限制
  • GET请求一般用于获取数据,POST请求主要用于提交数据
  • GET请求发送的数据一般会在URL(接口地址)中,POST发送的数据放在请求体中
  • POST发送请求一般比GET发送请求更加安全

3.参数

是需要接口程序处理的数据

主要考虑参数有哪些,叫什么名字,那些是必填参数,那些是可选参数,参数的类型,参数长度,参数的约束

4.返回值/响应正文

响应头包含响应状态码,简称状态吗、HTTP状态码

响应状态码 状态码介绍
200 成功响应(服务器成功把结果发给客户端,但是不确保结果正确性)
301 永久重定向
302 临时重定向
401 需要授权
403 客户端错误,比如IP被封禁、客户端无写权限、无读权限、客户端证书错误等
404 客户端请求的网页文件不存在,URL地址错误
500 服务器端的错误,比如服务器代码错误、服务器重启、服务器关机、服务器太忙(拒绝服务)

响应类型有三种类型,分别是:

​ text/html网页版,类似于字符串

​ xml soap/webservice接口比较常见的响应类型

​ JSON类型是最常见的响应类型

响应体/响应正文是返回text/html网页版、xml 、JSON类型内容,测试是否通过要看响应体

5.数据库如果接口涉及到写数据,必须要验库