当前位置: 首页 > news >正文

接口测试工具

文章目录

    • 一、基础知识
      • 1.HTTP/1.0 和 HTTP/1.1 的主要区别
      • 2.Jsonpath
    • 二、接口测试工具
      • 1.Postman
        • 1>Postman断言
        • 2>postman参数化
        • 3>获取token值,存为全局变量
      • 2.Apifox
      • 3.swagger(斯瓦格)
      • 4.Jmeter

一、基础知识

image-20250702215941705

1.HTTP/1.0 和 HTTP/1.1 的主要区别

  • HTTP/1.0每个请求和响应都需要建立一个新的 TCP 连接,并且在请求完成后关闭连接;HTTP/1.1,默认是持久连接,除非明确指定关闭连接。

  • HTTP/1.0不强制要求 Host 头;HTTP/1.1强制要求每个请求都包含一个 Host

  • HTTP/1.0主要支持 GETPOST 方法。HTTP/1.1支持更多的请求方法,如 PUTDELETEHEADOPTIONSTRACE,从而提供了更丰富的 HTTP 功能。

2.Jsonpath

$:表示根路径;.:表示下一级

$.numbers[1].number

image-20250626152845549

二、接口测试工具

批量查询关注多参

1.Postman

1>Postman断言
// 状态码断言;Status code: Code is 200
pm.test("Status code is 200", function () {pm.response.to.have.status(200);
});
// 通过响应内容,包含的字符串断言;Response body: Contains string
pm.test("断言", function () {pm.expect(pm.response.text()).to.include("\"status\":0");
});
// 通过Json值断言;Response body: JSON value check
// pm.expect(jsonData.msg).to.eql("密码错误");其中jsonData表示json的根路径
pm.test("通过jsonData.msg的值断言", function () {var jsonData = pm.response.json();pm.expect(jsonData.msg).to.eql("密码错误");
});
2>postman参数化

postman本地参数化文件要求:
1、有表头
2、一组数据占一行,一个参数占一列,列与列之间用英文逗号间隔
3、如果有空行,只能有一个,且要放在文件结尾

3>获取token值,存为全局变量

通过Jsonpath获取

//新版本中:responseBody已弃用
//可以使用pm.response.json()或pm.response.text()
// var jsonData = pm.response.json();
var jsonData = JSON.parse(responseBody)
pm.globals.set("token1", jsonData.data.token);

通过正则表达式获取

//最新版:
//reponseBody已弃用
//有,pm.response.text();或 pm.response.json();  var data = pm.response.text(); 
//var token = responseBody.match(new RegExp('左边界(.+?)右边界'))[1]
var token = data.match(new RegExp('左边界(.+?)右边界'))[1]
pm.globals.set ("token",token);

2.Apifox

界面现代化,操作与Postman大同小异

3.swagger(斯瓦格)

只需要了解即可,只有Java中有

开发人员将api接口写入这个网址,也就不会写接口文档了

4.Jmeter

使用方法参考Jmeter使用教程

http://www.dtcms.com/a/287872.html

相关文章:

  • PDF发票批量打印工具哪个好?高效打印发票的实用工具推荐
  • LangGraph是一个基于图计算的大语言模型应用开发框架
  • 重学Framework Input模块:如何实现按键一键启动Activity-学员作业
  • 死锁的认识与处理
  • 使用 .NET 6.0 的简单 WebSocket 客户端和服务器应用程序
  • 基于GEE与哨兵2号的土地覆盖分类方法及实现
  • 137、真心话大冒险测谎器3.0
  • [故障诊断方向]基于二维时频图像和数据增强技术的轴承故障诊断模型
  • 家庭KTV v1.1.9 | 曲库丰富,无限制免费K歌
  • Kotlin main函数
  • RabbitMQ—事务与消息分发
  • JUC并发包CountDownLatch减法计数器的使用实例(多线程)
  • Git 完全手册:从入门到团队协作实战(2)
  • 万字解析LVS集群
  • Pandas 30分钟
  • Mybatis:注解完成增删改查
  • steam游戏搬砖项目超完整版实操分享
  • 解惑LINQ中的SelectMany用法
  • 48Days-Day03 | 删除公共字符,两个链表的第一个公共结点,mari和shiny
  • CCF编程能力等级认证GESP—C++8级—20250628
  • 【EMC设计基础--信号环路分析、PCB设计规则】
  • 深入解析文件操作(上)- 二进制文件和文本文件,流的概念,文件的打开和关闭
  • Visual Studio Code(VSCode)中设置中文界面
  • 使用C#对象将WinRiver项目文件进行复杂的XML序列化和反序列化实例详解
  • STM32_Hal库学习ADC
  • XSS的反射型、DOM型、存储型漏洞
  • sqli-labs靶场通关笔记:第32-33关 宽字节注入
  • Go语言中的类型转换与类型推断解析
  • Spring AI硬核攻略:235个模块解析 + 6大场景实战
  • view和pure的区别