postman 替换工具 bruno 使用介绍2

测试脚本接口自动化

前置条件
  • 已创建了 API 请求集(示例名为:api-collects)
  • 已创建了 API 请求(示例名为:api request1)
  • 已创建了环境变量(示例名为:demo)
  • 也为 API 请求编写了 assert 或者 tests 脚本
接口自动化项目 demo
  • 安装 node.js
  • 安装 npm
  • 新建项目文件夹(示例名为:bruno-test)
  • 项目文件夹下执行 npm init 将项目初始化为 npm 项目
  • 安装 @usebruno/cli 依赖 (脚本为:npm install @usebruno/cli)
  • 打开保存 API 请求集的文件夹目录,将 api-collects 目录下的所有文件都复制到 bruno-test 项目目录下下
  • 项目目录如下所示
bruno-test   //项目主文件夹
  api request1.bru //api 请求
  enviroments //环境变量
    demo.bru
  bruno.json
  node_modules //node 包依赖
  package-lock.json
  package.json //npm 项目配置文件
  • 运行接口自动化脚本
bruno run --env demo
  • 运行结果如下

在这里插入图片描述

接入 CI

接入 github action

以 github action 为例,其他 CI 工具类似

  • 前置准备:在项目 package.json 文件中添加如下脚本
"test": "bru run --env demo"
  • 在项目根目录下创建 .github/workflows 文件夹
  • 在 .github/workflows 文件夹下创建 main.yml 文件
  • main.yml 文件内容如下
name: bruno cli CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  run_bruno_api_test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - run: npm install
    - name: run tests
      run: npm run test
  • 提交代码到 github,会自动触发 github action
  • 查看 github action 运行结果,如图示例:

在这里插入图片描述

可拉取本项目代码进行参考:https://github.com/dengnao-tw/Bruno-API-Test-Starter

Postman 脚本迁移

API 请求集迁移
  • 在首页点击‘Import Collection’链接,打开导入 API collection 的弹窗
  • 点击选择 Postman Collection 的链接,再选在已存在的 Postman 请求集文件路径
  • 即可导入 Postman 的请求集
  • 但是目前只支持导入 API 请求,无法导入测试脚本,如图所示(但不影响请求调用)
    在这里插入图片描述
    在这里插入图片描述
环境变量迁移
  • 在首页选择刚才导入的 Postman 请求
  • 点击页面右上角的‘No Environment’链接(默认为 No Environment),选择菜单中的 configure 按钮即可打开环境变量管理弹窗
  • 点击‘Import Environment’链接,打开导入 Environment 的弹窗
  • 点击选择 Postman Environment 的链接,再选在已存在的 Postman 环境变量文件路径
  • 即可导入 Postman 的环境变量
    在这里插入图片描述
    在这里插入图片描述
测试脚本迁移参考

两个工具测试脚本的语法存在一部分差异,需要手动修改

pm.test("res.status should be 200", function () {
  pm.response.to.have.status(200);
});
pm.test("res.body should be correct", function() {
  var data = pm.response.json();
  pm.expect(data.id).to.equal(1);
  pm.expect(data.title).to.contains('provident');
});
test("res.status should be 200", function() {
  const data = res.getBody();
  expect(res.getStatus()).to.equal(200);
});
test("res.body should be correct", function() {
  const data = res.getBody();
  expect(data.id).to.equal(1);
expect(data.title).to.contains('provident');
});

更多信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值