接口测试和Mock学习路线(中)

news2024/11/15 6:52:04

1.什么是 swagger

Swagger 是一个用于生成、描述和调用 RESTful 接口的 WEB 服务。

通俗的来讲,Swagger 就是将项目中所有想要暴露的接口展现在页面上,并且可以进行接口调用和测试的服务。

现在大部分的项目都使用了 swagger,因为这样后端开发就不需要专门为接口使用者编写接口文档。

当接口更新之后,只需要修改代码中的 Swagger 描述就可以实时生成新的接口文档,这样就可以避免接口文档老旧不能使用的问题。

而且通过 Swagger 页面,可以直接进行接口调用,降低了项目开发阶段的调试成本。

1.1.分析查询接口

接口的 swagger 文档怎么看:

1.1.1、调试宠物

怎么在页面上调试接口,以查询宠物接口举例 - 点击 Try it out - 请求参数 status 选择 available - 点击 Execute 发出请求 - 下方展示当前请求的 Curl 命令 - 下方展示当前请求的完整 URL - 下方展示响应状态码和对应的响应体 - 有了 swagger,就可以非常方便的获取到接口的信息,有了这些信息,就可以设计测试用例

1.1.2、接口测试用例设计

  • 宠物的 增、删、改、查 冒烟测试用例
  • 模块+测试标题+优先级+前置条件+URL+请求方法+请求参数+预期结果+实际结果

1.1.3、编写断言

Tests 主要用来做断言,比如要测试返回结果是否含有某一字符串,就可以用到 Tests。

  • 断言,就是结果和预期对比
  • 如果一致,则用例通过,返回PASS
  • 如果不一致,断言失败,用例失败,失败返回 FAIL

test 中可以使用 JavaScript 脚本来进行断言的编写。如果本身不熟悉 JS 语法的话也没有关系,Postman 当中已经预置好了常用的断言。

断言模板:如下

  • 验证响应状态码

    Status Code:Code is 200

    pm.test("响应状态码为 200", function () {
      pm.response.to.have.status(200);
    });
    
    status 方法中传入的值 200 就是预期结果,可以把括号中的状态码改为任意需要的值,比如 400

  • 检查响应体中是否包含某个字符串

    Response Body:contains string

    pm.test("响应体中包含预期的字符串", function () {
      pm.expect(pm.response.text()).to.include("doggie");
    });
    
  • 检测 JSON 中的某个值是否等于预期的值

    Response Body:JSON value check

    pm.test("宠物名称为 doggie", function () {
      var jsonData = pm.response.json();
      pm.expect(jsonData[0].name).to.eql("doggie");
    });
    

    var jsonData 是定义了一个变量,然后把响应数据经过 JSON 格式化之后,赋值给了定义好的变量。

    然后用 expect 这个方法,把响应数据中的 url 这个 key 中的值提取出来,用 eql 这个方法去和括号中的字符串做比较,如果这两个值是一致的,返回 true,如果不一致就返回 false

  • 验证响应体是否与某个字符串完全相同

    Response Body:Is equal to a string

    pm.test("Body is correct", function () {
      pm.response.to.have.body("response_body_string");
    });
    
    这是一个全量的断言,把响应的数据和一个确定的字符串去做比较,如果完全相同返回 true,不完全相同返回 false

  • 验证响应头信息中的 Content-Type 是否存在

    Response Body:Content-Type header check

    pm.test("Content-Type is present", function () {
      pm.response.to.have.header("Content-Type");
    });
    
    这个断言可以用来测试响应的头信息中是否包含某个字段,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);
    });
    
    可以用来判断响应的时间是否超过了某一个值,预设的是 200ms,如果没有超过返回 true,超过预设的值返回 false

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1617074.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于STM32实现流水灯【Proteus仿真】

详情更多 wechat:嵌入式工程师成长日记 https://mp.weixin.qq.com/s?__bizMzg4Mzc3NDUxOQ&mid2247485624&idx1&sn4e553234c2624777409bd2067a07aad8&chksmcf430de0f83484f6189b119d9d83ea6e6f2a85d13afaa04d218483918231c38e6382d3007061&tok…

【大语言模型LLM】- Meta开源推出的新一代大语言模型 Llama 3

🔥博客主页:西瓜WiFi 🎥系列专栏:《大语言模型》 很多非常有趣的模型,值得收藏,满足大家的收集癖! 如果觉得有用,请三连👍⭐❤️,谢谢! 长期不…

【图说】VMware Ubuntu22.04 详细安装教程

前言 无论是从事 Linux 开发工作,还是希望电脑运行双系统,VMware 虚拟机都是我们日常工作不可或缺的工具。本章将会重点介绍 VMware 安装流程,以及在 VMware 上如何运行、使用 Ubuntu22.04 系统。 一、VMware 下载安装 1.1 VMware 官网下载…

使用虚拟信用卡订阅Starlink教程

Starlink 是由 SpaceX 公司开发的卫星互联网服务平台。它旨在通过将成千上万的卫星部署到地球轨道上,为全球范围内的用户提供高速互联网接入。通过 Starlink,用户可以通过卫星连接接入互联网,无需依赖传统的地面基础设施,这对于偏…

软考高项(已通过,E类人才)-学习笔记材料梳理汇总

软考高项,即软考高级信息系统项目管理师,全国计算机技术与软件专业技术资格(水平)考试中的高级水平测试。适用于从事计算机应用技术、软件、网络、信息系统和信息服务等领域的专业人员,以及各级企业管理人员和从事项目…

基于K-means和FCM算法的合成纹理图像及SAR图像的分割

🎀个人主页: https://zhangxiaoshu.blog.csdn.net 📢欢迎大家:关注🔍点赞👍评论📝收藏⭐️,如有错误敬请指正! 💕未来很长,值得我们全力奔赴更美好的生活&…

免 Administrator 权限安装软件

以欧路词典为例, 从官网下载的安装包 https://www.eudic.net/v4/en/app/download 直接运行会弹出 UAC 提示需要管理员权限. 一个词典而已, 为啥要管理员权限呢? 答案是安装程序默认使用的安装路径是 C:\Program Files\ 这就不难理解了. 对于这种不需要其他额外权限的软件, 可以…

zabbix自动发现和自动注册

一、zabbix自动发现 1.1 确保客户端上的zabbix-agent2服务器状态正常 1.2 在web页面删除原有的客户端主机 1.3 在服务端和客户端上配置hosts 1.4 web端配置自动发现 二、zabbix自动注册 2.1 环境配置 2.2 修改zabbix-agent2配置文件 过滤非#或非¥开头的内容 2.3 we…

Qt 跨平台开发的一丢丢总结

Qt 跨平台开发 文章目录 Qt 跨平台开发摘要第一 \ & /第二 神奇{不能换行显示第三 预处理宏 关键字: Qt、 win、 linux、 lib、 MSVC 摘要 最近一直在琢磨Qt跨平台开发的问题,缘由有以下几个, 首先第一个,我们目前开发…

【剪映专业版】03立体自动翻页

【剪映专业版】立体自动翻页制作 1.导入素材,图片或视频均可 2.将素材2拖动至素材1的上方,点击蒙版,选择线性蒙版,并旋转为90度。 3.复制素材1,并拖动到素材2上方,分割并删除后半部分,点击蒙版…

Java进阶-Stream流

概述 在Java8中,得益于lambda所带来的函数式编程,引入了一个全新的Stream流的概念目的:用于简化集合和数组操作的api 案例 需求:创建一个集合存储多个字符串元素,将集合中所有以“z”开头的元素存储到新的集合中&am…

邀请全球创作者参与 The Sandbox 创作者训练营

作为首屈一指的元宇宙平台之一,The Sandbox 的使命是成为全球创作者的中心。随着我们对 Game Maker 的不断改进、旨在激发创作者灵感的定期 Game Jams、革命性的 "创作者挑战 "以及众多其他活动的开展,我们见证了大量个人加入我们充满活力的创…

C++ 虚表起源

本文会让看不见 摸不着的虚表(Vtable),虚指针(Vptr)彻底现行 本文涉及思想: C 面向对象 封装 继承 多态 中的 多态 概念解释: 虚表指针: 这是指向虚表(vtable)的指针,虚表中包含了该类的所有虚函数对应的地址。 虚表&#x…

每日一题 — 二分查找

704. 二分查找 - 力扣(LeetCode) 朴素二分查找模板: while(.......){//防止溢出int mid left(right - left)/2;if(........){right mid-1;}else if(......){left mid1;}else{return mid;}} 代码: public int search(int[] num…

十六、Qgis工具如何将shp转换geoJson类型文件

在使用GIS地图的时候线路图是非常重要的一个部分,根据以前的下载方法下载好了Qgis工具,那么如何将在openstreetmap下载下来的.shp文件转换为geoJson呢,下面就来说说。 准备工作 一、首先肯定是下载好了中国地图的全部的.shp包。里面包含全国的地图,包含shp,cpg,dbf类型的道…

软考 系统架构设计师系列知识点之大数据设计理论与实践(18)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(17) 所属章节: 第19章. 大数据架构设计理论与实践 第5节 Lambda架构与Kappa架构的对比和设计选择 19.5.2 Lambda架构与Kappa架构的设计选择 根据Lambda与Kapp…

ArrayList与顺序表(2)

前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&#x1…

FFmpeg源码编译

msys2 依赖环境安装 依赖环境安装编译X264编译 fdk-aac文件处理编译x265编译FFmpeg 依赖环境安装 编译X264 用于h264 AVC视频格式编码 CCcl ./configure --enable-shared #指定使用cl,编译成动态链接库 make -j32 #使用32线程进行编码 make install命令一 关于第一条命令执…

专注 APT 攻击与防御—工具介绍—Sqlmap

sqlmap参数详解: 由于Sqlmap 是常用工具之一,所以本篇的篇幅较长,详解一次所有参数。 1、Options(选项) Usage: python sqlmap.py [options]Options(选项):-h, --help Show basic help messa…

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

系列文章目录 前言 本综合指南提供了在英伟达 Jetson设备上部署Ultralytics YOLOv8 的详细攻略。此外,它还展示了性能基准,以证明YOLOv8 在这些小巧而功能强大的设备上的性能。 备注 本指南使用Seeed Studio reComputer J4012进行测试,它基于…