资讯专栏INFORMATION COLUMN

【mock service系列】如何用mountebank作mock service

岳光 / 953人阅读

摘要:官网图片如下,确实有一瓶药。如何使用,可以多带带使用,按照官网教程就好,也可以结合使用。后续我会把多带带使用的以及结合使用的上传至供大家参考,欢迎提意见。只是目前国内使用的不多,想想先积累点使用经验也是好的,说不定又激发新的灵感。

Mountebank--江湖骗子,他有药,你要吗?

最开始看到这个词感觉怪怪的,词典解释是江湖骗子、卖假药的意思,感觉很奇妙,为啥子取这个名字。
官网图片如下,确实有一瓶药。

What

Mountebank到底是什么?
从我使用的理解,就是给开发者提供假的api,替换掉被真实依赖的api,这在测试场景中经常用到。

How

如何使用,可以多带带使用,按照官网教程就好,也可以结合docker使用。
后续我会把多带带使用的demo以及结合docker使用的demo 上传至github 供大家参考,欢迎提意见。
详细的步骤请参考git里面的commit信息。
第一个get api 效果如图

纯数据代码只有下面一部分

{
  "port": 4545,
  "protocol": "http",
  "stubs": [{
      "responses": [{
        "is": {
          "statusCode": 200,
          "headers": {
            "Content-Type": "application/json"
          },
          "body": ["Australia", "Brazil", "Canada", "Chile", "China", "Ecuador", "Germany", "India", "Italy", "Singapore", "South Africa", "Spain", "Turkey", "UK", "US Central", "US East", "US West"]
        }
      }],
      "predicates": [{
        "equals": {
          "path": "/country",
          "method": "GET"
        }
      }]
    }, {
      "responses": [{
        "is": {
          "statusCode": 400,
          "body": {
            "code": "bad-request",
            "message": "Bad Request"
          }
        }
      }]
    }]
}

而需要把数据run起来 脚本部分只要shell就好

#!/bin/sh
set -e
RUN_RESULT=$(docker ps | grep hasanozgan/mountebank | wc -l)
MOUNTEBANK_URI=http://localhost:2525
BANK_IS_OPEN=1

if [ "$RUN_RESULT" -eq 0 ]; then
  docker run -p 2525:2525 -p 4545:4545 -d hasanozgan/mountebank
fi

curl $MOUNTEBANK_URI/imposters || BANK_IS_OPEN=0
if [ $BANK_IS_OPEN -eq 1 ]; then
  break
fi

curl -X DELETE $MOUNTEBANK_URI/imposters/4545
curl -X POST -H "Content-Type: application/json" -d @stubs.json $MOUNTEBANK_URI/imposters
Why

为什么选用mountebank,
一个原因是因为之前没用过,只是听到国内一些讲测试的文章有说过,看完并没有get太多的点,还不如动手玩一下;
另外更重要的原因是刚好一个codebase有现成的,有项目契机做事情很lucky。

抛开这些自身兴趣和巧合,我推荐开发者选用mountebank的原因大概会有以下几个

轻量级 无平台依赖

多语言 多协议支持

免费

有UI交互有趣

更多的自夸部分参见Why mountebank?

Trivial to get started
mountebank is easy to install, without any platform dependencies. mountebank aims for fun and comprehensive documentation with lots of examples, and a nice UI that lets you explore the API interactively.

A platform, not just a tool
mountebank aims to be fully cross-platform, with native language bindings. Servers are extensible through scripting when the out of the box functionality isn"t enough.

Powerful
mountebank is the only open source service virtualization tool that is non-modal and multi-protocol. Commercial solutions exist, but their licensed platforms make it hard to move the tests closer to development and may even require a specialized IDE. mountebank provides service virtualization free of charge without any platform constraints

When&缺点

其实目前我也刚使用不久,也不知道啥太大的缺点,而关于什么时候使用呢?
当有需要mock假的依赖的api的时候,就可以使用,感觉和没说一样。
只是目前国内使用的不多,想想先积累点使用经验也是好的,说不定又激发新的灵感。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/10132.html

相关文章

  • mock service系列】Online mock service or API by Sand

    摘要:沙箱,第一反应,但并不是。为避免误解,下文中所有提到都是指这个工具,不是沙箱。做什么的,根据其官网上的描述可以理解为快速生成,即时部署,协作构建并集成了调试工具。对个人而言,强烈推荐给入门的人。 Sandbox--沙箱,第一反应,但sorry并不是。 sandbox 这个词大家并不陌生,但貌似国内的技术share中很少看到有提到这个工具的。为避免误解,下文中所有提到sandbox都是指...

    zgbgx 评论0 收藏0
  • Python 的模拟测试介绍

    摘要:接下来我们将介绍如何对对象的方法进行模拟测试。选项创建模拟测试接口我们可以在的构造函数中提供一个模拟测试实例,而不是模拟创建具体的模拟测试方法。 如何不靠耐心测试 通常,我们编写的软件会直接与那些我们称之为肮脏的服务交互。通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用——就是那些在我们自己测试的时候不希望的功能。 比如,可能我们...

    BearyChat 评论0 收藏0
  • mock service系列】使用 Rosie mock JS数据

    摘要:的作用主要就是构建一些的数据对象,大部分使用场景也是在测试中。具体使用时候,一般会有一个用来构建,另外一个在需要数据的地方进行直接引入。当你厌倦已有的无论是字面量生成,还是单独数据生成的方式。感觉用更符合语义以及函数思维。 Rosie? factory_girl? 如果说是单纯命名上面,是受一幅画的影响,画里面的妹子叫Rosie;如果是项目灵感其实是来自于factory_girl,fa...

    olle 评论0 收藏0
  • 开源一个监控数据采集Agent:OpenFalcon-SuitAgent

    摘要:目前此系统仅支持类系统下使用,不支持系统什么是这是一个获取各种系统的监控数据的。监控数据上报公有的跟官方社区的思想一致采集的系统监控信息如内存等等一百多种没有任何信息其他的业务系统的监控都会打上。 OpenFalcon-SuitAgent 项目地址:github 版本说明 本系统版本划分如下 alpha:内部测试版(不建议使用于生产环境) beta:公开测试版(不建议使用于生产环境)...

    linkin 评论0 收藏0
  • 开源一个监控数据采集Agent:OpenFalcon-SuitAgent

    摘要:目前此系统仅支持类系统下使用,不支持系统什么是这是一个获取各种系统的监控数据的。监控数据上报公有的跟官方社区的思想一致采集的系统监控信息如内存等等一百多种没有任何信息其他的业务系统的监控都会打上。 OpenFalcon-SuitAgent 项目地址:github 版本说明 本系统版本划分如下 alpha:内部测试版(不建议使用于生产环境) beta:公开测试版(不建议使用于生产环境)...

    王晗 评论0 收藏0

发表评论

0条评论

岳光

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<