系统测试利器之挡板实战(二)

mb概述

安装好mb以后,直接通过mb命令启动服务,默认端口是2525,浏览器输入(http://localhost:2525) 访问试试看!

在RHEL7和Centos7下可以设定后台服务自动启动,配置的方法可以在这里配置方法获得,在这里不多扩展。
本人喜欢写段shell脚本来启动、停止mb服务,详情见后面。

  • mb命令启动常用参数
选项 描述 默认
--command start,stop,restart, replay(删除代理,转化为代理捕获的响应值,后面代理详解) start
--port 2525 指定mb运行的端口好,默认是2525 2525
--configfile imposters.ejs mountebank将加载指定的模板文件,为了方便管理会把配置存储在EJS模板中。后面详细说明。 N/A
--logfile mb.log mountebank用于存储日志的文件 mb.log
--loglevel debug 日志级别 debug, info, warn, error info
--allowInjection 是否允许脚本注入,mb支持针对谓词, 存根响应,行为装饰, 等待行为函数和 tcp请求解析的 JavaScript注入,但默认情况下禁用它们。 false
--localOnly 请求隔离,仅接受来自localhost的请求 false
--ipWhitelist 白名单环境隔离 所有IP地址
--pidfile 为stop命令存储pid的文件 mb.pid
  • 常用术语

    1. 冒名顶替者(imposter)

    从社会角度来说他就是一个诈骗团伙,里面会有很多的骗子。
    从技术角度来说imposter就是一个服务或系统骗子,他有端口、协议提供测试的服务,可以根据测试需要创建多个imposter。

    1. 存根(stub)

    用于为imposter生成响应的一组配置。一个imposter可以具有0个或多个stub。

    从社会角度来说就是骗子公司的一个部门或产品线。

    从技术角度来说stub就是提供一个服务的响应,一个请求的地址。

    1. 谓词(predicate)

    配置响应stub的条件。每个stub可以有0个或更多predicate。

    从社会角度来说就是要找相应的人做相应的事。

    从技术角度来说predicate就是根据条件做相应的功能,返回对应的数据。

    1. 响应(response)

    产生响应数据。每个stub可以有0个或更多响应。

    1. 响应类型(response type)
      每个stub响应由定义响应行为的特定响应类型定义。目前支持的响应类型是:is,proxy,inject。

    is是默认的类型,就是一般的应答输出。

    proxy是代理响应类型,它允许记录重放行为。

    inject允许您注入JavaScript函数以创建响应对象。

    1. 存根行为(stub behavior)

    向响应添加其他的自定义处理,如可以后面通过shell脚本执行nodejs来获取动态的数据。

    如果对上面的概念还不明白,没有关系,后面就让代码给你解释。

  • 代码说明一切

前面对于他的结构说明了一番,不懂得没有关系,我们go on!
下面就是一个imposter,其实他就是一个json格式的文件,为了方便说明我在json里面加了注释(懂技术的人都会明白,这样会死的很惨!)。

{
  "port": 8081,<!-- 端口号 -->
  "protocol": "http",<!-- 通讯协议 -->
  "stubs": [
    {
      "predicates": [
        {
          "equals": {
            "method": "POST",<!-- 提交方式 -->
            "path": "/customers/123"<!-- 访问地址 -->
          }
        }
      ],
      "responses": [<!-- 响应数据 -->
       {
        "is": {
            "statusCode": 200,
            "headers": {
                "Server": "Apache-Coyote/1.1",
                "Access-Control-Allow-Origin": "*",
                "Content-Type": "text/json;charset=UTF-8",
                "Content-Length": 298,
                "Date": "Tue, 05 Sep 2017 06:49:14 GMT",
                "Connection": "close"
            },
            "body": {
       
                "head": {
                    "rspcode": "100",
                    "respMsg": "成功",
                    "serialNo": "d7af14e5-a99e-4881-9b1b-695b7a760a64"
                },
                "body": {
                    "code": "S4393493",
                    "startDate": "2019-04-09",
                    "level": "3",
                    "endDate": "2020-04-08"
                }
       
            }
        },
        "_behaviors": {
            "shellTransform": ["node ./dcs/test.js"]<!-- 这里可以通过shell脚本执行nodejs来修改body的数据 -->
        }
       }
      ]
    },
    {
      "responses": [
        {
          "is": { "statusCode": 404 }<!-- 地址不匹配情况 -->
        }
      ]
    }
  ]
}

正常访问的情况下返回结果为:

{
    "head": {
        "rspcode": "100",
        "respMsg": "成功",
        "serialNo": "d7af14e5-a99e-4881-9b1b-695b7a760a64"
    },
    "body": {
        "code": "S4393493",
        "startDate": "2019-04-09",
        "level": "3",
        "endDate": "2020-04-08"
    }
}

是不是很简单?

系统测试利器之挡板实战(一)
系统测试利器之挡板实战(三)
系统测试利器之挡板实战(四)
系统测试利器之挡板实战(五)
系统测试利器之挡板实战(六)
系统测试利器之挡板实战终结(七)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,179评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,229评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,032评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,533评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,531评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,539评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,916评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,813评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,568评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,654评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,354评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,937评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,918评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,152评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,852评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,378评论 2 342

推荐阅读更多精彩内容