支持多种服务mock的工具 OpenMock

admin 2022年5月19日10:08:04安全工具评论15 views1756字阅读5分51秒阅读模式

1 推荐理由

当项目依赖比较多的其他服务,在测试时,通常连接是这些服务的test环境,但是这样做第一 无法保证被依赖服务用例的完备性,第二 在实际测试过程中可能会遇到比较多费时费力的联调问题。本次推荐的openmock工具,通过mock的手段,可以简化此类项目的测试过程。

2 功能介绍

openmock支持通过yaml文件,配置HTTP、gRPC、Kafka、AMQP (e.g. RabbitMQ) 等协议的mock服务。

3 使用指南

3.1 安装

下载代码,并进入目录:

$ git clone git@github.com:checkr/openmock.git
$ cd openmock

使用docker安装:

$ docker run -it -p 9999:9999 -v $(pwd)/demo_templates:/data/templates checkr/openmock 

$ docker-compose up

检查是否安装成功:

$ curl localhost:9999/ping

3.2 配置示例

openmock的配置文件可以分成4大部分:

  1. Schema:openmock可以配置多个行为,每个行为通过key和kind来表示;
  2. Except:用来定义协议类型(HTTP、gRPC、Kafka、AMQP),以及触发当前行为的条件;
  3. Action:用来定义当前行为的执行结果;
  4. Template:用来定义和组装响应payload。

下面是HTTP mock server的配置示例:

# 这里是 Template
- key: http-request-template
  kind: Template
  template: >
    { "http_path""{{.HTTPPath}}""http_headers""{{.HTTPHeader}}" }
# 这里也是Template
- key: color-template
  kind: Template
  template: >
    { "color""{{.color}}" }

# 这里是Schema
- key: teapot
  kind: AbstractBehavior
# 这里Except
  expect:
    http:
      method: GET
      path: /teapot
# 这里Action
  actions:
    - reply_http:
        status_code: 418
        body: >
  # 这里使用了Template
          {
            "request-info": {{ template "http-request-template" . }},
            "teapot-info": {{ template "color-template" .Values }}
          }

- key: purple-teapot
  kind: Behavior
  extend: teapot
  values:
    color: purple

测试一下,可以看到如下结果:

$ curl localhost:9999/teapot
{"request-info":{"http_path":"/teapot","http_headers":""},"teapot-info":{"color":"purple"}}

更多示例请参考:

https://github.com/checkr/openmock/tree/master/demo_templates

4 总结

openmock 通过yaml文件可以实现快速mock服务,并且可以支持多种协议,比如HTTP、gRPC、Kafka、AMQP等。在项目测试时,可以试试使用openmock,看看能否提高项目的测试效率。


参考资料

https://github.com/checkr/openmock


END


了解更多相关内容,欢迎扫描下方👇 关注 公众号,回复关键词 [实战群]  ,就有机会进群和我们进行交流~

支持多种服务mock的工具 OpenMock

分享、在看与点赞,至少我要拥有一个叭~

支持多种服务mock的工具 OpenMock
支持多种服务mock的工具 OpenMock

原文始发于微信公众号(GoCN):支持多种服务mock的工具 OpenMock

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年5月19日10:08:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  支持多种服务mock的工具 OpenMock http://cn-sec.com/archives/1018504.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: