1. 接口测试基础

基础知识

什么是接口?

接口分类

硬件接口:指的是两个硬件设备之间的连接方式

软件接口:简单来说就是软件程序之间的数据交互通道

软件接口分类

程序内部接口:同一个系统中模块与模块间的接口

举例:登录->浏览商品->加入购物车->下单

外部接口:是跨系统平台与平台间的对接

举例:付款->支付 快递->物流

常见接口分类

不管是哪一种形式的接口,本质上都是通过某一种传输协议,在客户端与服务端之间传递数据

Http接口:目前使用最为广泛,使用http协议传输数据,常用的测试工具Jmeter、Postman等

Web Service接口:使用soap协议通过http传输,请求报文和响应报文一般是xml格式的,常用的测试工具SoapUI

什么是接口测试?

本质上基于某种协议,模拟客户端发送请求给服务器,服务器返回响应数据,对响应数据进行分析,判断和我们的预期是否一致(断言),从而验证功能是否正确。

为什么要做接口测试?

经典测试金字塔:

在这里插入图片描述

接口测试优点:

  • 接口测试更早介入,降低研发成本
  • 更容易实现自动化测试、比UI稳定
  • 更加接近于底层,发现的BUG影响范围广

接口测试流程

一、需求分析:理清功能、需求明确

二、接口分析:接口文档(抓包)分析请求与响应,接口之间的依赖关系

三、测试计划:分配测试任务进度安排和指导测试方案执行

四、用例设计:根据功能整理提取测试点,运用如等价类、边界值、场景法

单接口场景

保障接口的正确性,既要保证接口可以按照需求正确处理传入的参数,给出正确的返回;也要按照需求,正确的拒绝传入非法的参数,给出正确的拒绝性返回。

  • 正向场景:正常发送请求得到正常的响应数据

     所有必填参数
     全部参数(必填参数+选填参数)
     参数组合(必填参数+某些选填参数)
    
  • 异常场景:用不属于规定范围的数据区发送请求检查服务器能否正常处理

     参数异常:关键字参数、参数为空、多、少参数、错误参数
     数据异常:关键字数据、数据为空、长度不一致、错误数据
    

多接口场景

站在用户角度考虑常用的使用场景,通过多个接口的串联组合调用完成业务逻辑,更加关注于业务流程是否能跑通

五、测试准备:测试环境搭建、测试数据准备

六、测试执行:使用对应接口测试工具执行测试用例

七、缺陷管理:缺陷提交->修复->回归->关闭

八、测试报告:缺陷统计、分析、总结

Fiddler抓https请求:http://testingpai.com/article/1595507292210
Fiddler抓包工具官网:https://www.telerik.com/fiddler

postman接口测试工具官网:https://www.postman.com/

接口四大要素:

  • 请求方法
  • 请求地址
  • 请求头
  • 请求参数

get请求与post请求的区别

  • get请求把请求参数数据拼接到URL地址的后面(查询参数),post请求把请求参数数据放到请求体
  • get请求传输的数据量相对来说比较小,post请求传输的数据量更多

post请求传参的类型

  • Content-Type:application/json json 传参
  • Content-Type:multipart/form-data 多参数表单 – 传输大容量的数据(上传文件)
  • Content-Type:application/x-www-form-urlencoded form表单传参

总结

1、接口/接口测试基础概念
2、金字塔测试模型
3、接口测试开展流程(掌握,面试问的较多)
4、通过抓包工具分析接口协议(http协议),接口请求/接口响应
5、postman接口测试工具模拟发送接口请求

HTTP协议

HTTP概念

  • Hyper Text Transfer Protocol(超文本传输协议);
  • 是因特网上应用最为广泛的一种网络传输协议,HTTP最初是为
    Web 浏览器与 Web 服务器之间的通信而设计的;
  • HTTP 基于 TCP/IP 通信协议来传递数据(HTML文件、图片文件、查询结果等),属于应用层协议,默认端口为80。

在这里插入图片描述

HTTP请求

HTTP请求主要由请求行、请求头、请求体组成。

1. 请求行

包括:

<请求方法> <统一资源定位符URL> <http协议版本>

1.1 统一资源定位符URL(Uniform Resource Locator)

用于描述互联网上的网页和其他的资源地址

格式:

schema://host[:port]/path/.../[?query-string] 
  • scheme:协议,如http,https,ftp等
  • host:域名或者IP地址
  • port:端口
  • path:资源路径
  • query-string:发送的参数
1.2 请求方法
请求方法备注
GET查询、获取资源-查
POST更新资源-改
PUT替换资源-增
DELETE删除资源
HEAD获取服务器响应消息头
PATCH更新资源,替换部分资源
GET与POST请求方法的区别?(高频面试题)
  1. 提交数据的方式不同

     GET将请求数据附在URL之后
     POST将请求数据放在请求体中
    
  2. 传输的数据量大小不同

     GET方法URL长度受限制
     POST方法理论上请求体中的数据不受大小限制
    
  3. 安全性不同

     GET直接将信息暴露在URL中
     POST放在请求体中更加安全
    

2. 请求头

请求头描述
Host主机ip地址或域名
User-Agent客户端相关信息,比如操作系统、浏览器等信息
Accept指定客户端接收信息类型,如:image/jpg,text/html,application/json
Accept-Charset客户端接受的字符集,如gb2312、iso-8859-1
Accept-Encoding可接受的内容编码,如gzip
Authorization客户端提供给服务端,进行权限认证的信息
Cookie携带的cookie信息
Referer当前文档的URL,即从哪个链接过来的
Content-Type请求体内容类型,如Content-Type: application/x-www-form-urlencoded
Content-Length数据长度
Cache-Control缓存机制,如Cache-Control:no-cache
Pragma防止页面被缓存,和Cache-Control:no-cache作用一样

3. 请求体

存放请求携带的数据

HTTP响应

包含状态行、响应头、响应正文

1. 状态行

格式:

<http版本> <状态码> <状态码描述>

状态码:用以表示网页服务器HTTP响应状态的3位数字代码

状态码描述
1XX请求已接受待处理
2XX请求成功并返回
3XX重定向相关,请求资源位置发生了变化
4XX客户端发送请求错误
5XX服务器端错误

2. 响应头

响应头描述
ServerHTTP服务器的软件信息
Date响应报文的时间
Expires指定缓存过期时间
Set-Cookie种Cookie
Last-Modified资源最后修改时间
Content-Type响应的类型和字符集,如:Content-Type: text/html; charset=utf-8
Content-Length内容长度
Connection如Keep-Alive,表示保持tcp连接不关闭,不会永久保持连接,服务器可设置
Location指明重定向的位置,新的URL地址,如304的情况

3.响应数据

存放服务端响应的数据

常见面试题

  • 说说接口测试如何做的?
  • 接口测试中常见的返回(响应)状态码?
  • 平常用什么工具测接口的?
  • get和post区别是什么?
  • 在浏览器中输入URL,整个流程是怎么样的?

作业

  1. 安装好postman/fiddler工具
  2. 通过fiddler工具分析项目的接口请求(登录->商品搜索->商品详情页接口->添加购物车),通过xmind工具梳理接口信息,再通过postman工具发起请求去测试下
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值