接口测试学习-1

本文详细介绍了接口测试的基础知识,包括接口的概念、接口文档的重要性、接口测试的步骤和分类,以及HTTP协议的相关内容。强调了接口测试在软件测试中的关键作用,如无界面、无交互、基于协议的特点,以及如何设计接口测试用例。还探讨了工具的使用,如Fiddler和Postman,并提供了使用教程。接口测试是确保系统稳定性和数据交换有效性的关键环节。
摘要由CSDN通过智能技术生成

目录

接口测试day_1

1.接口概念

2.接口文档

接口测试依据(重要):

接口三要素(重要):

3.接口测试

3.1接口测试特点

3.2接口测试概念

3.3接口测试原理(步骤)

3.4 接口测试分类

3.5接口测试意义

测试轮次(补充)

3.6接口测试用例设计

4.协议(HTTP)

4.1HTTP请求

4.2HTTP响应

4.3状态码

4.4请求方式

5.接口测试顺序(思路)

5.1测试环境的准备

5.2 接口测试工具

5.3 接口测试执行顺序

5.4接口测试的关键

6.fiddler使用

6.1fiddler是干什么的

6.2使用fiddler抓浏览器的包

7.postman使用

7.1postman页面介绍

7.2postman中使用get请求

7.3postman环境(局部)变量

7.4postman发送post请求

7.5postman之tests

7.6postman参数化

7.7postman其他操作


接口测试day_1

1.接口概念

客户端: 和用户交互

服务端: 提供数据,业务逻辑

request: 请求---客户端

response: 响应---服务端

接口是连接客户端和服务端之间的桥梁,规定了客户端和服务端之间数据交换的格式.

接口就是一个规范

谁来统一规范:项目架构师或项目经理

张三:<username:xxx>

<password:123456>

李四:

{username:xxxx,password:123456}.

{user:xxx,pwd:123456}

成功,success,code:1

2.接口文档

接口文档是接口规范的表现形式;

接口测试最重要的依据是接口文档

接口测试依据(重要):

  • 接口文档----开发出的

  • 需求文档

  • 原型图

接口文档组成部分:

  • 接口名称 ----说明接口功能

  • 接口描述 ----对接口功能详述

  • 接口地址 ----接口请求地址

  • 请求方式 ----针对接口使用协议

  • 传入参数 ----请求所需要的数据

  • 返回值 ----服务器响应的数据

  • 状态码 ----断言请求参数对应返回值是否正确

  • 说明 ----接口其他内容

接口三要素(重要):

  • 请求地址+请求方式

  • 请求参数

  • 返回值

3.接口测试

3.1接口测试特点

  • 无界面

  • 无交互

  • 不是手工测试

  • 基于协议

    • 任何协议都由两部分组成

      • 协议头 ---headers

      • 协议体 ---body

  • 数据校验

    • 验证业务逻辑

  • 格式验证

    • 请求参数

    • 返回值

3.2接口测试概念

  • 接口测试就是代替前端验证后台程序是否正确

3.3接口测试原理(步骤)

  • 模拟客户端向服务器发送请求

  • 服务器收到请求并经过处理返回数据

  • 客户端对返回数据的正确性做验证

3.4 接口测试分类

web接口:

  • 服务器接口:由公司程序员开发的项目接口(工作重点)

  • 第三方接口:其他公司序员开发的项目接口

模块接口:

3.5接口测试意义

  • 更早发现问题

    • 接口测试是在手工测试之前执行

  • 缩短项目周期

  • 发现更底层的问题

  • 检测服务端的容错能力

测试轮次(补充)

  • 冒烟测试(不在轮次中)

  • 第一轮测试(筛选用例)

    • 所有业务流程--正向流程

  • 第二轮测试

    • 回归第一轮bug

    • 所有测试范围的所有用例

  • 第三轮测试

    • 回归前两轮bug

    • 再执行一次正向流程用例

    • 对老功能测试(迭代项目)

  • 验收测试(开发不再更新代码)

    • 验收测试环境(UAT)

      • UAT环境----接近线上环境

  • 线上验证

    • 测试人员不再线上环境产生数据

      • 不产生交易

3.6接口测试用例设计

  • 功能

    • 是否是按照接口文档实现的

  • 业务逻辑

    • 关联接口测试

  • 异常

    • 请求参数

    • 参数异常

      • 参数名称异常

    • 数据异常

      • 请求参数对应的值

eid = 001 # 发布会id

name = 小米 # 发布会标题

limit # 限制人数

status # 状态

address # 地址

start_time # 发布会时间

  • 安全

    • 认证 ---我是谁

      • 登录

    • 授权 ---我能干什么

      • 垂直权限---上下级

      • 水平权限---同一级

接口测试用例模板

  • 用例编号

  • 用例标题

  • 优先级

  • 所属模块

  • 描述

  • 前置条件

  • 请求方式

  • 请求参数(参数对应数据类型)

  • 操作步骤

  • 预期结果(返回值)

4.协议(HTTP)

4.1HTTP请求

  • 请求行

    • 请求方式(get,post)

    • 请求地址

    • 协议版本---HTTP版本1.1

  • 请求头---header

    • useragent:发送请求的设备信息(浏览器内核版本,系统版本)

    • contentType:请求内容的数据类型

      • form_data

      • json

      • x_www_form_urlencoded

      • binary

    • cookie

  • 空行

  • 请求体

    • 请求参数的具体内容

4.2HTTP响应

  • 状态行

    • 响应状态码

  • 响应头

    • 与请求头类似

  • 空行

  • 响应体

    • 响应内容

4.3状态码

  • 2xx

    • 200 表示服务器成功处理了请求,但是返回数据不一定是你想要的

  • 3xx

    • 301 永久重定向

  • 4xx

    • 404 表示访问的资源不存在

    • 403 拒绝访问

    • 401 没有权限

  • 5xx

    • 503 表示服务器现在拒绝请求,将来可能恢复

4.4请求方式

  • get 向服务器请求资源

    • 请求参数(parmas)

      • 写在url地址后

      • url?参数名=参数值&参数名2=参数值2

  • post 向服务器新增资源

    • 请求参数(body)

      • 1.form_data

      • 2.x_www_form_urlencoded

      • 3.raw

        • json

        • xml

      • 4.binary 上传文件

    • 其中1和2是按照表单格式来体现

      • 键值对---Python中的字典

    • 3中的json---json字符串

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

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

5.接口测试顺序(思路)

5.1测试环境的准备

在项目所在路径下打开cmd命令行

  • 安装

    • pip install -r requirements.txt

  • 启动

    • Python run_server.py

5.2 接口测试工具

  • postman

  • Python--requests

5.3 接口测试执行顺序

  • 测试单接口

    • 接口调试---开发配合

      • 达到效果

        • 接口在正常数据下可以请求成功

    • 单接口测试(一个接口)

      • 执行接口测试用例

  • 测试关联接口(多接口组合测试)

    • 根据业务逻辑中需要用到的接口

    • 将这些接口串联起来进行测试

    • 接口之间的交互

      • A接口B接口

      • A接口的返回值作为B接口的请求参数

5.4接口测试的关键

针对接口三要素来做

6.fiddler使用

6.1fiddler是干什么的

  • fiddler是抓包工具 charles 在Mac系统上 HTTPwatch是和IE浏览器 wareshark (http,tcp,ip)

  • 在什么情况下使用

    • 辅助手工测试

      • 定位bug 区分一个bug是前端的还是服务端的 (面试题)

      • 对于web端 定位bug使用的是浏览器的f12---network

      • 对于app应用 定位bug 需要借助抓包工具

6.2使用fiddler抓浏览器的包

  • 抓包工具默认抓HTTP协议

  • 抓https协议

    • 1.打开fiddler--->tools选项---->options

    • 2.选择HTTPS栏

      • 勾选decrypt HTTPS traffic

      • 点击Actions 选择 export root certificate to desktop

      • 点击OK

    • 3.设置浏览器(谷歌浏览器为例)

      • 设置---->高级---->证书管理

      • 导入---->选择fiddler证书---->确定

    • 4.重启fiddler

7.postman使用

7.1postman页面介绍

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

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

7.2postman中使用get请求

  • 不带参数的get请求

    • 将请求地址复制到地址栏中即可

    • 点击send

  • 带参数的get请求

    • 将请求地址复制到地址栏中

    • 填写参数

      • 可以直接在请求地址后进行添加

        • 请求地址?参数1=参数值1&参数2=参数值2

      • 在postman--->parmas选项

        • 按照键值对格式填写请求参数

        • 模糊查询在参数处添加 blur=1(为开启模糊查询参数1为开启)

7.3postman环境(局部)变量

  • 添加环境(局部)变量

    • postman--->设置---->Add添加环境(局部)变量

      • 环境(局部)变量名称

      • 添加具体变量

  • 引用变量

    • 在postman右上角下拉菜单中选择需要的局部变量

    • 引用具体的一个变量格式:{{变量名}}

7.4postman发送post请求

  • post请求的区别主要在于请求参数类型的不同

    • 请求参数类型----form-data格式

      • 键值对格式

      • contentType:multipart/form-data; boundary= 边界

      • 自带的边界boundary,是post中form-data请求参数格式的特点

    • 请求参数类型----x-www-form-urlencoded格式(比较常见的一种)

      • 键值对格式

      • contentType:application/x-www-form-urlencoded

    • 请求参数类型----json格式(最为常见)

      • json字符串

      • contentType:application/json

    • 请求参数类型为---binary格式上传文件

7.5postman之tests

  • 作用

    • 断言

    • 获取接口返回值

  • 断言

    • 断言状态码

      • status Code: code is 200

    pm.test("请求成功", function () {
        pm.response.to.have.status(200);  //断言接口响应的具体状态码,并不局限于200
    });
    • 断言返回值

      • response body: JSON value check 适用于接口返回值格式为json

pm.test("请求成功", function () {
    pm.response.to.have.status(200);  //断言接口响应的具体状态码,并不局限于200
});
//获取返回值
jsonData.下一级(字典格式)
jsonData.下一级[索引值](列表格式)
 
  • 获取返回值

    • set an environment variable

var jsonData = pm.response.json();  //表示获取所有返回值,保存为jsonData
var dep_name = jsonData.create_success.results[0].dep_name;  //获取到返回值中的dep_name
pm.environment.set("dep_name", dep_name);//第一个参数是保存在postman中的变量名,第二个参数是变量值

7.6postman参数化

  • 1.新建一个csv格式的文件,并且在notepad++将csv文件进行转码 UTF-8

  • 2.文件中表头,一般情况下是接口参数名称

  • 3.在postman中将对应接口做修改

    • 将请求参数的值写成csv文件表头的对应变量名

    • 修改完成后记得保存

  • 4.在collection中点击批量执行

  • 5.选择需要执行的接口

  • 6.添加csv文件到postman中

    • Data select file按键

  • 7.如果没有自动识别文件中的条数,手动修改iterations值

  • 8.点击Run

  • 注意:

    • pass+fail=在接口中设置断言的个数

7.7postman其他操作

  • 导出

    • 文件夹--->点击...---->点击export---->设置保存路径

  • 导入

    • postman界面---->点击左上角import---->选择文件

  • 前置处理器

    • 在发送请求之前执行

      • 当点击send之后

      • postman会先检测前置处理器中是否有代码

    • 一般情况下用来生成测试数据

  • 获取环境变量

    • get an environment variable

    pm.environment.get("mastername")//mastername指的是环境变量中的变量名称

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值