Airborne使用教程

news2024/12/17 13:51:32

1.安装环境

前提条件:系统已安装Ruby

打开终端输入如下命令

gem install airborne

或者在Gemfile添加

gem 'airborne'

然后运行bundle install

2.编写脚本

在项目中新建api_tests_spec.rb文件

以GET接口"https://www.thunderclient.com/welcome"为例编写测试用例

require 'airborne'
Airborne.configure do |config|
  config.base_url = 'https://www.thunderclient.com'
end
describe 'GET/welcome' do
  it 'Verify Response' do
    get '/welcome'
    expect_status(200)
    expect_json('supports.graphql', true)
  end
end

3.运行测试

或者在终端输入

rspec api_tests_spec.rb

4.更多用法

常用断言方法

Airborne 提供了丰富的断言方法,可以快速验证 API 响应内容:

  • expect_status(status_code): 验证 HTTP 响应状态码。

  • expect_json_types(path, key: type): 验证 JSON 的键值类型,例如 :string, :int, :array, :bool。

  • expect_json(path, key: value): 验证 JSON 的键值内容。

  • expect_header(key, value): 验证响应头的值。

  • expect_body_contains(content): 验证响应体中是否包含某个字符串。

高级用法

配置认证token

如果你的 API 需要认证,可以通过配置 Headers:

Airborne.configure do |config|
  config.headers = { 'Authorization' => 'Bearer your_token' }
end

使用动态变量

你可以将 API 响应结果存储到变量中,以便在后续测试中使用:

describe 'Dynamic testing' do
  it 'uses the created resource' do
    post '/users', { name: 'Alice' }
    user_id = json_body[:id]
    
    get "/users/#{user_id}"
    expect_json(name: 'Alice')
  end
end

更多操作可以参考官方文档:https://github.com/brooklynDev/airborne

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

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

相关文章

Hadoop其一,介绍本地模式,伪分布模式和全分布搭建

目录 一、Hadoop介绍 二、HDFS的本地模式 三、伪分布模式 四、Hdfs中的shell命令 五、全分布搭建 六、使用Java代码操作HDFS 1、环境准备 2、单元测试(Junit)​编辑 一、Hadoop介绍 Hadoop 分为三部分 : Common、HDFS 、Yarn、MapRe…

【Tomcat】第五站:Servlet容器

Tomcat启动后,获取到项目当中所有的servlet的WebServlet中的配置信息。将配置信息和类对象都写入一个map集合当中。 map就是一个key-value类型的集合。 在MyTomcat中我们获取到了类对象和注解值。 Tomcat与请求连通 1. ServletConfigMapping 1. 创建一个config包…

猫眼浏览器v4.12.1重磅升级,极速、安全、保护全方位提升

猫眼浏览器(Catsxp)是一款经过深度优化的网页浏览器,凭借其创新性的设计理念和卓越的性能表现,正在重新定义现代浏览器的标准。这款基于Chrome内核精心打造的浏览器不仅为用户带来了全方位的网络体验提升,更在保护用户…

Axure原型设计技巧与经验分享

AxureRP作为一款强大的原型设计工具,凭借其丰富的交互设计能力和高保真度的模拟效果,赢得了众多UI/UX设计师、产品经理及开发人员的青睐。本文将分享一些Axure原型设计的实用技巧与设计经验,帮助读者提升工作效率,打造更加流畅、用…

梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象表达02

目录 1、举例(二) :西方童话 童话『青蛙王子』 的故事 故事中的概念 2、举例(三) :点餐服务 『 餐馆点餐服务』 的分析步骤: 1、举例(二) :西方童话 童话『青蛙王子』 的故事 从前有一位美丽的公主,喜欢玩金球。…

DevExpress WPF中文教程:Grid - 如何移动和调整列大小?(一)

DevExpress WPF拥有120个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

OpenIPC开源FPV之Adaptive-Link天空端代码解析

OpenIPC开源FPV之Adaptive-Link天空端代码解析 1. 源由2. 框架代码3. 报文处理3.1 special报文3.2 普通报文 4. 工作流程4.1 Profile 竞选4.2 Profile 研判4.3 Profile 应用 5. 总结6. 参考资料7. 补充资料7.1 RSSI 和 SNR 的物理含义7.2 信号质量加权的理论依据7.3 实际应用中…

23.DDD与微服务

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 DDD与微服务的关系1. DDD可以用微服务实现,也可以不用微服务实现2. DDD是微服务拆分的必须参考项之一3. 微服务架构…

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM(即时通讯)系统源码部署是一个复杂但系统的过程,涉及多个组件和步骤。以下是一个详细的部署指南,旨在帮助开发者或系统管理员成功部署一个全开源的IM系统,如OpenIM。      IM即时通讯系统源码准备工作   …

PVE系统下——OpenWRT一键扩容脚本(x86下EXT4SquashFS)

扩容了x86上的 OpenWrt 根分区和文件系统。 1.PVE 上增加硬盘大小 2.执行脚本 安装依赖 opkg update opkg install parted losetup resize2fs下载脚本并一键执行 wget -U "" -O expand-root.sh "https://openwrt.org/_export/code/docs/guide-user/advanced…

Midjourney教程之生成同一角色的不同姿势和服装

今天给大家介绍的是在 Midjourney 中如何创建同一个角色的不同姿势。这个功能是大家期待已久的,现在它已经正式可用了。 这个功能能够创建与原始图像相似的角色。"Character Reference" 功能类似于 "Style Reference",但侧重于角色…

gitlab仓库API操作

几年没接触gitlab了,新版本装完以后代码提交到默认的main分支,master不再是主分支 项目有几十个仓库,研发提交代码后仓库地址和之前的发生了变化 先修改Group的默认分支,不会影响已存在的项目 修改gitlab全局的默认分支 这就引…

aws(学习笔记第十七课) SQS Amazon Simple Queue Service服务

aws(学习笔记第十七课) SQS Amazon Simple Queue Service服务 学习内容: 使用SQS Amazon Simple Queue Service服务整体代码(nodejs的通常工程)代码动作 1. 使用SQS Amazon Simple Queue Service服务 利用应用程序来学习SQS 创建S3$ aws s…

Swin Transformer:用Transformer实现CNN多尺度操作

文本是关于Swin Transformer基础知识的了解 论文:https://arxiv.org/pdf/2103.14030 项目:https://github. com/microsoft/Swin-Transformer. 实现一个Swin Transformer:Swin Transformer模型具体代码实现-CSDN博客 Swin Transformer mlp…

linux学习笔记02 linux中的基础设置(修改主机名、ip、防火墙、网络配置管理)

目录 修改主机名 ​编辑 修改ip地址 防火墙 关闭networkmanage 修改主机名 查看主机名 hostnamectl status 修改主机名 vim /etc/hostname 修改ip地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33 输入这个命令后对照以下文件修改 TYPE"Ethernet" PROXY_M…

Windows 系统中的组策略编辑器如何打开?

组策略是 Windows 操作系统中用于设置计算机和用户配置的重要工具。它允许管理员控制各种系统功能,从桌面背景到安全设置等。对于 Windows 专业版、企业版和教育版用户来说,可以通过组策略编辑器(Group Policy Editor)来管理这些设…

【Go】Linux、Windows、Mac 搭建Go开发环境

1、Linux 第一步,在 官网 下包,如 go1.23.4.linux-386.tar.gz(注意架构区分) 第二步,将包上传至服务器,假如上传到 tmp目录下第三步,安装# 解压 tar -C /app -xzvf go1.23.4.linux-386.tar.gz#…

那一抹暖色

上海这周都是阳光明媚的天气,趁着工作日人少,来到公园看🍁 圣诞临近,一到这个节日,上海几乎一个月前,街上就有🎅🏻出没。 就先发这些吧,视频明天再做,眼睛要睁…

计算机毕业设计Python+Django农产品推荐系统 农产品爬虫 农产品商城 农产品大数据 农产品数据分析可视化 PySpark Hadoop

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

系统思考—沟通成本

昨天我们提到,企业真正的“降本”是减少决策错误的成本,今天我们来聊聊另一个重要的“成本”——沟通成本。这其实是一个典型的系统思考问题,沟通成本高并不是孤立存在的,而是系统中多种因素的结果。 1、层级多,信息损…