配置Mountebank环境

mountebank系列(2)

Posted by Bruce Wong on March 22, 2022

最近在项目中遇到一些场景,例如我们要调用Zoom的API代替用户自动订阅会议并发送通知给参与人。也有调用SMTP服务进行邮件发送,还有第三方支付系统进行支付。这些场景在只是功能开发的个别调用的时候,可以使用真实的系统,或者第三方提供的测试系统进行调试开发。但是当API有限流限制,例如Zoom API 单日单账户只能创建100个会议。再或者如果你希望进行性能测试的时候,不太可能频繁调用第三方接口,设想一下调用支付的场景。那将是个灾难。

这里推荐一下打桩服务——Mountebank。如果想了解Mountebank是一个什么工具,作用有哪些,可以参考我这个系列的第一篇文章《什么是打桩服务》,这篇文章我介绍一下Mountebank的各个具体功能的使用和作用。本文说明的是如何快速搭建服务环境。毕竟如何搭建这个工具,能快速使用起来是尝试的第一步。

本机安装方法

本机安装mountebank server有几种方式:

  • npm 安装 就是直接在本机的环境通过npm安装。如下是脚本。
    npm install -g mountebank
    
  • docker安装 如果你想保持本机环境的清洁,那也可以使用容器。通过docker来运行。mountebank的作者提供了docker镜像,可以通过docker hub下载并运行。下面是脚本。
    docker pull bbyars/mountebank
    

    启动服务

    安装完成后,最简单的方式就是启动一下,看是否打出正确的日志。针对安装方式有如下几种启动方式:

  • npx 启动
      npx mb start
    
  • 容器启动
      docker run --rm bbyars/mountebank mb start
    

    正常启动后都会在屏幕打印一条记录:

    info: [mb:2525] mountebank v2.6.0 now taking orders - point your browser to http://localhost:2525/ for help
    

    2525是mountebank默认服务管理界面和API的端口。如果和你的机器有冲突,或者你希望用一个更喜欢的端口号,你可以通过启动命令修改:

    mb start --port 3333
    

    退出服务

    当然最简单的是关闭容器,不过可以通过命令来操作关闭那咱们就用优雅的方式吧。命令都是:mb stop

  • 如果是npm方式那么可以
    npx mb stop
    
  • docker容器
    docker exec -it [containerID] /bin/sh
    /app $ mb stop
    

    当屏幕提示如下记录时,说明已经推出了。

    info: [mb:2525] Adios - see you soon?
    

    好了,很简单的一个单机环境搭建好了,下一篇我们将开始使用最简单的打桩服务来提供API测试使用。

参考引用