接口测试入门到精通

1.课程介绍

1.接口测试相关概念(掌握)
2.restful风格
3.jason数据格式
4.Postman接口测试工具(掌握)

2.接口相关概念

2.1接口的概念

客户端:和用户交互。
服务端:提供数据、业务逻辑。
request:请求(客户端)
response:响应(服务端)
接口又叫API(application programing interface)应用程序编程接口,我们经常会说web接口,app接口。是连接客户端和服务端的桥梁,同时规定了客户端和服务端之间数据交换格式。
谁来统一规范:项目架构师或者项目经理。

2.2为什么使用接口:

- 研发标准不统一,团队磨合难度高。
- 研发周期长
- 可扩展性差

2.2.1在项目中使用接口优点:

- 统一设计标准
- 扩展性灵活
- 前后端开发相对独立,前后端都可以使用自己熟悉的技术。

2.2.2接口三要素:

-请求地址+请求方式
-请求参数
-返回值

2.3接口分类:

软件 --就是前后端共同遵守的一套数据交互的规范。

2.4接口文档

接口规范以接口文档的形式进行体现,我们做接口测试就是依据接口文档进行测试。
接口测试依据:
- 接口文档
- 需求文档
- 原型图
#2.5接口文档包含内容:

  • 接口名称 ---说明接口功能
  • 接口描述 ---对接口功能进行详述
  • 接口地址 ---接口请求地址
  • 请求方式 ---针对接口使用协议
  • 传入参数 --请求所需要的数据
  • 返回值 ---服务器响应数据
  • 状态码 ---断言请求参数对应返回值是否正确
  • 说明 ---接口其他内容

3.接口测试

3.1接口测试概念:

代替客户端验证后台程序是否正确。

3.2接口测试特点

  • 无界面
  • 无交互
  • 不是手工测试
  • 基于协议
    -任何协议都由两部分组成
      -协议头
      -协议体
  • 数据校验:对请求参数和返回值格式验证。

接口测试原理

  • 模拟客户端向服务器发请求。
  • 服务器收到请求并经过处理返回数据
  • 客户端对返回数据正确性进行验证。

接口测试分类

1.web接口测试:

  • 服务器接口测试:测试自己公司实现接口(工作重点)
  • 第三方接口测试:测试别人公司实现接口

2.模块接口测试:

  • 程序内部接口

接口测试意义:(重点)

  • 更早发现问题
    -接口测试在功能性测试之前执行的
  • 缩短产品研发周期
  • 发现更底层问题
  • 检查服务器异常处理能力

测试轮次:

  • 冒烟测试(不在轮次中)
  • 第一轮测试(筛选用例)
    • 所有业务流程--正向流程
  • 第二轮测试
    • 回归第一轮bug
    • 所有测试范围的所有用例
  • 第三轮
    • 回归前两轮的bug
    • 在执行一次正向流程
    • 对老的功能也要测试(迭代项目)
  • 验收测试(开发不再更新代码了)
    • 验收测试环境(UAT)
      • UAT环境----接近线上环境
  • 线上验证
    • 测试人员不再线上环境产生数据
      • 不产生交易

接口测试VSUI测试

UI测试:

-web应用和app迭代速度非常快
-页面更新更频繁
- 测试成本高于效益
- 可交付第三方进行测试(云测,众测)

接口测试

针对服务端后台测试,接口规则一旦确定。后期的变化非常小,接口测试性价比更高。成为企业内重点测试对象。    
服务端中保存着用户数据、业务数据、交易数据等,倘若任何一个接口实现有问题,都会影响所有用户,服务端数据和业务逻辑关系着企业的命脉,所以极少有企业把接口测试交给第三方进行测试。作为测试人员,我们需要验证接口见数据传递的正确性和完整性。

如何进行接口测试

接口测试三要素:

- 根据url定位服务器资源
- 设置提交的数据
- 查看相应结果

接口测试流程:

需求讨论>需求评审>场景设计(用例设计)>数据准备>执行用例

接口测试重点:测试用例设计:

  • 理清思路
  • 提高测试效率
  • 跟进测试进度
  • 跟进重复性工作
  • 告诉领导做过

接口测试用例设计着手点:

1.功能
2.业务逻辑
3.异常
4.安全

1.功能用例设计的测试点:1功能是否正常2.功能是否根据接口文档实现
2.业务逻辑用例设计的测试点: 1.是否依赖业务(比如‘下单’操作要判断是否已经登陆成功)
3.异常用例设计的测试点:
- 异常参数:(请求参数的参数名)
- 关键字参数
- 参数为空
- 多少参数
- 错误参数
- 异常数据(请求参数对应的值)
- 关键字数据
- 数据为空
- 长度不一致
- 错误参数
4.安全用例设计测试点:1.cookie 2.header 3.唯一识别码

3.http协议

http请求

  • 请求行
    -请求方式
    • 请求地址
    • 协议版本-HTTP1.1
  • 请求头--header
    • useragent:发送请求设备信息
    • contenttype:请求内容的数据类型:
      • form_data
      • json
      • x_www_form_urlencoded
      • binary
    • cookie
  • 空行
  • 请求体:
    • 请求参数的具体内容

http响应

  • 状态行
    • 响应状态码
  • 响应头
    • 与请求头类似
  • 空行
  • 响应体
    • 响应内容

      状态码

  • 2xx
    • 200 表示成功处理请求,但是返回数据不一定是想要的(和服务器连接通畅)
  • 3xx
    • 301 永久重定向
  • 4xx
    • 404 表示访问资源不存在(可能地址写错了)
    • 403 没有权限
  • 5xx
    • 503 表示服务器现在拒绝请求

HTTP请求方式

get:

向服务器请求资源

  • 请求参数(params):
    • 写在url地址后
    • url?参数名=参数值&参数名2=参数值2

post

向服务器新增资源
- 请求参数(body)(一二按照键值对显示,对应python中字典)
- form_data
- x_www_form_urlencoded
- raw
- json json字符串
- xml
- binary 上传文件

put

向服务器更新资源,表现形式和post相同。

delete

向服务器发送删除资源,表现形式和get相同

4. RESTful风格

5.json数据格式

5.1什么是json

- json指javaScript对象表示方法
- 轻量级文本数据交换格式
- 具有自我描述性,更易理解

5.2json语法

格式1-json对象:{‘键1’:‘值1’,‘键2’:‘值2’}
格式2-json数组:[值1,值2,值3,,,]
复合格式(嵌套):
对象+素组:{'name':'葫芦娃','age':'8','技能':['','','']}
数组+对象:[{},{}]

6.接口测试顺序

6.1测试环境准备

- 安装
    - pip install -r requirements.txt
- 启动
    - python run_server.py

6.2接口测试工具

- postman
- Python-requests

6.3接口测试执行顺序

  • 测试单接口
    • 接口调试--开发配合
      • 达到效果
        • 接口在正常数据下可以请求成功
          • 单接口测试
    • 执行接口测试用例
  • 测试关联接口(多接口联合测试)
    • 根据业务逻辑中需要用到的接口
    • 将这些接口串联起来进行测试
    • 接口之间的交互

7.fiddler

7.1fiddler:

  • fiddler是抓包工具 ,Charles在mac系统上 ,HTTPwatch是和IE浏览器结合比较好areshark(http,tcp,ip)

  • 在什么情况下使用

    • 辅助手工测试
      • 定位bug 区分一个bug是前端还是服务端
      • 对于web 定位bug使用的是浏览器的f12 ---network
      • 对于app应用 定位bug需要借助抓包工具

    7.2使用fiddler抓浏览器的包

    • 抓包工具默认抓HTTP协议
    • 抓https协议
      • 1.打开fiddler-tools-options
      • 2.选择HTTPS:勾选decrypt HTTPS traffic,点击export root certificate to desktop
      • 3.设置浏览器
        • 设置-高级-证书管理
        • 导入-先择fiidler证书-确定
      • 4.重启fiddler

8.postman使用

图片说明

  • 接口测试三要素-接口文档中提取

  • 接口返回值-系统数据库中得到

    8.1 postman中使用get请求

  • 不带参数的get请求

    • 将请求地址复制到地址栏中即可
    • 点击send
  • 带参数的get请求

    • 可以将地址复制到地址栏即可
    • 填写参数
      • 可以直接在请求地址后进行添加
        • 请求地址?参数1=参数值1&参数2=参数值2
      • 在postman--params选项
        • 按照键值对格式填写请求参数书

    8.2postman环境变量

  • 添加环境变量
    -postman--设置--add添加环境变量

      - 环境变量名称
      - 添加具体变量
  • 引用变量

    • 在postman右上角下拉菜单中选择需要 的局部变量
    • 引用一个具体变量{{}}

图片说明

全部评论

相关推荐

1个小白:可以考虑投一下字节
点赞 评论 收藏
分享
评论
点赞
3
分享

创作者周榜

更多
牛客网
牛客企业服务