软件测试学习——接口测试

接口测试

  • 根据API文档编写接口测试用例
  • 使用Postman 工具进行接口测试,熟练创建测试集、断言、关联、参数化及生成测试报告
  • 使用python+Requests 封装接口测试框架,实现接口对象封装。测试用例编写、测试数据管理及生成

理论

  • 分类

    • 硬件
    • 软降
  • 概念:数据交互的通道

  • 接口类型:

    • 系统之间
      • 淘宝与支付宝
    • 系统内部
      • 淘宝登录与订单系统
  • 接口测试

    • 针对接口进行测试,主要测试数据的传递、交互、控制管理过程以及接口之间的
  • 原理

    • 模拟客户端建立连接
    • 发送请求
    • 服务器处理请求并相应
    • 校验相应数据
  • 特点

    • 提前介入,提早发现BUG
    • 发现页面操作发现不了的问题
    • 成本低效益高(底层一个BUG能引发上层8个左右
    • 不同于传统的单元测试,接口测试是从用户的角度对系统进行全检测

HTTP协议

超文本传输协议

  • url格式解析

    • 协议部分:http、https、ftp

    • 域名部分:www.xxx.com,也可以使用IP地址

    • 端口号:8080,默认端口可以省略

      • 默认端口(http 80/https 443/ftp 21
    • 资源路径部分

      • 图片、视频、音频、链接、接口等
    • 查询参数部分

      • ?:隔离URL主主体与参数部分内容

      • &:存在多个参数时,连接符

HTTP请求

  • 请求行

    • 请求方式 get、post、put、delete…
      • get 查询数据
      • post 新增数据
      • put 修改数据
      • delete 删除数据
    • 资源路径
    • 协议及版本
  • 请求头

    • 主要以键值对形式存在
    • 重点掌握Content-Type
      • text/html:HTML格式
      • test/plan:纯文本格式
      • image/jpeg:JPG图片格式
      • JSON
      • x-www-from-urlencoded:表单
      • form-data:表单中进行文件上传使用
  • 请求体

    • 内容形式:json、html、test

HTTP响应(报文

  • 状态行
    • 协议/版本 状态码(三位数组成
      • 1XX:指示信息,表示请求已接收继续处理
      • 2XX:成功–表示请求已被成功接收、理解、接受
      • 3XX:重定向–要完成请求必须进行更进一步的操作
        • 输入旧地址返回新地址
      • 4XX:客户端错误–请求有语法错误或请求无法实现
      • 5XX:服务器端错误–服务器未能实现合法请求
  • 响应头
    • 键值对形式存在
    • 描述服务器相关信息
  • 响应体
    • 响应数据:XML、json、html
状态码 状态消息 动词 说明
200 OK [GET] 服务器成功返回用户请求的数据
201 CREATED [POST/PUT] 用户新建或修改数据成功
202 Accepted [*] 表示一个请求已经进入后台排队(异步任务)
204 NO CONTENT [DELETE] 用户删除数据成功
400 Bad Request [POST/PUT] 客户端请求有语法错误,不能被服务器所理解
401 Unauthorized [*] 表示用户没有权限(令牌、用户名、密码错误)
403 Forbidden [*] 表示用户得到授权(与401错误相对),但是访问是 被禁止的
404 Not Found [*] 请求资源不存在,eg:输入了错误的URL
406 Not Acceptable [GET] 用户请求的格式不可得(比如用户请求JSON格式, 但是只有XML格式)
410 Gone [GET] 用户请求的资源被永久删除,且不会再得到
500 INTERNAL SERVER ERROR [*] 服务器发生错误,用户将无法判断发出的请求是否成功
503 ERROR [*] 服务器当前不能处理客户端的请求,一段时间后可能恢复正常

RESTful

REST:即(Representational State Transfer)的缩写。词组的翻译是"表现层状态转化"。如果一个架构符合REST原则,就称它为RESTful架构

是一种规范、不是标准或规定

  • 示例:

    • url:`协议://域名:端口号/资源路径/{资源集合}/{指定资源}
    • 请求方法:get/post/put/delete
    • 状态码:200/201/204
  • RESTful接口风格

    • 对用户进行操作的相关接口,包括增删改查
    • 接口之间传递的数据常用JSON
    • 常用动词
      • GET:从服务器获取资源(一项或多项)
      • POST:在服务器新建一个资源
      • PUT:在服务器更新资源(客户端提供改变后的完整资源)
      • DELETE:从服务器删除资源
  • 重点:

    • 请求方法与状态码对应
      • 查询:【get】【200】
      • 新增:【post】【201】
      • 修改:【put】【201】
      • 删除:【delete】【204】

流程

  1. 需求分析
    • 主要依据需求文档
  2. 接口文档解析
    • 一般是由开发人员编写接口文档(API文档)
  3. 设计测试用例
  4. 执行测试
    • 使用接口测试工具实现
    • 通过编写代码实现
  5. 接口缺陷管理与跟踪
  6. 生成测试报告
  7. 接口自动化持续集成(可选)

接口文档

  • 基本信息
    • 接口名称
    • 请求方法
    • 请求路径
    • 接口描述
  • 请求参数
    • 请求头
    • 请求体
      • 请求参数名称、参数类型、是否必须、示例、备注
  • 返回数据
    • 不同情况的响应状态码
    • 响应数据
      • 包含响应数据名称、类型、是否必须、示例、备注

作用

  • 便于前端开发和后端开发的合作
  • 便于项目迭代或者人员迭代时,快速上手维护
  • 便于测试尽早接入

设计的方法与思路

验证接口功能是否按照接口文档实现(输入+处理+输出)

输入:request 输出:respond

  • 单接口测试

    • 正向功能:通过性测试
      • 仅必填参数
      • 全部参数
      • 参数组合
    • 反向测试:异常测试
      • 参数异常:无参、少参、多参、参数错误
      • 数据异常:数据为空、长度不符、类型不符、错误数据
      • 业务数据异常:结合业务功能考虑输出的各种异常返回情况
  • 多接口测试

    • 业务场景测试(优先级:高)
      • 将多个业务场景设计的接口进行组合测试
      • 注意:接口调用的先后顺序即可
  • 接口测试模板

    • 编号
    • 模块
    • 标题
    • 接口名称
    • 接口地址
    • 请求方式
    • 请求头
    • 数据类型
    • 请求参数
    • 预期结果
      • 状态码
      • 返回数据
    • 实际结果
    • 结论

Fiddler

Filters

1.第一项有三个选项,不做更改:
“No zone filter”
“Show Only Intranet Hosts”
“Show Only Internet Hosts”
2.第二个选项是只监控以下网址
“No Host Filter”不设置hosts过滤
“Hide The Following Hosts”隐藏过滤到的域名
“Show Only The Following Hosts”只显示过滤到的域名
“Flag The Following Hosts”标记过滤到的域名

postman

  • 登录测试后会返回一个data

  • 之后的信息更改 Authorization = Bearer XXX :Token

    • xxx为data返回的数值
  • 主要特点:

    • 简单易用的图形用户界面
    • 可以保存接口请求的历史记录
    • 可以创建测试集collection,更有效的管理组织接口
    • 可以在团队之间同步 接口数据

常见的数据传递格式

  • 字符串 : url?username=123&passwd=123
  • 表单:applocation/x-www-from-urlencoded
  • json:applocation/json

高级用法

测试集管理

  • 创建集合-new collection
  • 创建目录-add folder
  • 添加请求-add request

断言

  • 特点:通
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值