接口测试 用例设计&postman实战 L1

1、接口测试用例设计

目录

  • 接口测试流程
  • 接口测试用例设计思路
  • 接口测试用例要素

接口测试流程

image

接口测试用例设计思路

接口测试用例要素

  • 用例名称
  • 接口地址
  • 请求方式
  • 前置条件
  • 请求头部
  • 请求参数
  • 响应状态码
  • 预期响应结果

2、Postman 基础使用

目录

  • Postman 工具准备
  • Postman 使用

Postman 工具准备

Postman 介绍

  • 快速构建请求
  • 提供响应结果的比较功能
  • 查看测试结果
  • 批量运行
  • 设置环境变量

Postman 安装

Postman 页面

Postman 使用

发送 GET 请求

发送 POST 请求

  • 请求方式:POST
  • 请求 URL:https://httpbin.ceshiren.com/post
  • 请求参数
    • FORM 格式:Body –> form-data
    • JSON 格式:Body –> raw –> JSON
    • 文件格式:Body –> form-data –> File

查看接口响应

  • 响应体
  • 响应头
  • 响应状态

操作头信息

  • 添加请求头
  • 修改请求头

3、Postman 实战练习

目录

  • 宠物商店接口文档分析
  • 接口测试用例设计
  • Postman 完成接口测试

宠物商店接口文档分析

接口测试用例设计

Postman 完成接口测试

  • 创建测试集
  • 编写断言
  • 运行测试集
  • 查看测试结果

断言

  • 验证响应状态码
  • 验证响应体中是否包含某个字符串
  • 验证 JSON 中的某个值是否等于预期的值
  • 验证响应体是否与某个字符串完全相同
  • 验证响应头信息中的 Content-Type 是否存在
  • 验证响应时间是否小于某个值
// Status Code:Code is 200
// 验证响应状态码
pm.test("响应状态码为 200", function () {
    pm.response.to.have.status(200);
});

// Response Body:contains string 
// 验证响应体中是否包含某个字符串
pm.test("响应体中包含预期的字符串", function () {
    pm.expect(pm.response.text()).to.include("doggie");
});

// Response Body:JSON value check
// 验证 JSON 中的某个值是否等于预期的值
pm.test("宠物名称为 doggie", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData[0].name).to.eql("doggie");
});

// Response Body:Is equal to a string
// 验证响应体是否与某个字符串完全相同
pm.test("响应体正确", function () {
    pm.response.to.have.body("response_body_string");
});

// Response Body:Content-Type header check
// 验证响应头信息中的 Content-Type 是否存在
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});

// Response time is less than 200ms
// 验证响应时间是否小于某个值
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});

运行测试集

  • 测试集页面 → Run 按钮

查看测试结果

变量

  • Postman 中变量的种类与作用域
    • Data:在测试集中上传的数据
    • Environment:环境范围
    • Collection:集合范围
    • Global:全局范围
    • Local:在脚本中设置的变量

变量定义

  • 全局变量:Environments → Globals
  • 测试集变量:测试集页面 → Variables
  • 环境变量:Environments → +

变量的使用

  • 请求 URL, Params 参数或 Body 表格或JSON/XML 文本中通过 {{变量名}} 使用
  • 在 Pre-request Script 和 Tests 脚本中使用封装好的语句获取或者设置对应变量
// 获取全局变量
var status = pm.globals.get("status");
// 输入到控制台
console.log(status)

// 获取测试集变量
var petId = pm.collectionVariables.get("petId");
// 获取环境变量
var url = pm.environment.get("baseURL");

// 设置全局变量
pm.globals.set("status", "sold");
// 设置测试集变量
pm.collectionVariables.set("petId", 0);
// 设置环境变量
pm.environment.set("baseURL", "");

变量的优先级

  • 优先级从高至低为:Data → Enviroment → Collection → Global → Local