Board logo

标题: Moco 框架以及其在 Web 集成测试的应用(2) [打印本页]

作者: look_w    时间: 2018-10-22 17:21     标题: Moco 框架以及其在 Web 集成测试的应用(2)

Moco 是什么作者是这样描述 Moco 的:
是一个简单搭建模拟服务器的程序库/工具,这个基于 Java    开发的开源项目已经在 Github 上获得了不少的关注。该项目的简介是这样描述自己的:Moco 是一个简单搭建 stub 的框架,主要用于测试和集成。这个框架的开发灵感来自    Mock 框架,如   和  。
为什么要开发这个框架?
集成,尤其是基于 HTTP 协议的集成——web service、REST 等,在我们的项目开发中被广泛应用。以前,我们每次都要往 Jetty 或 Tomcat 等应用服务器上部署一个新的 WAR。大家都知道,开发部署一个 WAR 的过程是很枯燥的,即使在嵌入式服务器上也是如此。而且,每次我们做一点改动,整个 WAR 都要重新组装。
Moco 的出现,正是为了解决这些问题。开发团队只要根据自己的需要进行相应的配置,就会很方便得到一个模拟服务器。而且,由于 Moco 本身的灵活性,其用途已经不再局限于最初的集成测试,比如,Moco 可以用于移动开发,模拟尚未开发的服务;Moco 还可以用于前端开发,模拟一个完整的 Web 服务器,等等。
在 2013 年 上,Moco 框架被提名为最具创新力的 Java 项目之一,在 Twitter 上得到了 Martin Fowler 的关注,详见《企业系统集成点测试策略》一文在 InfoQ 英文站
Moco 下的 Hello World首先,您需要:
接下来,按照下面的步骤安装 Moco
Moco 的复杂实例实例一, 带参数的 HTTP 请求
有些时候我们希望能够在请求的同时,传递相应的参数。这时我们需要用到"queries"关键字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
{
  "request" :
    {
      "uri" : "/foo",
      "queries" :
        {
          "param" : "blah"
        }
    },
  "response" :
    {
      "text" : "bar"
    }
}




1
http://localhost:12306/foo?parm=blash




实例二,基于正则表达的 URL 匹配
在很多对 URL 请求的测试中,我们希望对于多个相似的 URL,都返回相同的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
{
  "request":
    {
      "uri":
        {
          "match": "/\\w*/foo"
        }
    },
  "response":
    {
      "text": "bar"
    }
}




在地址栏输入多个地址(/foo 前带有任意字符, 比如 http://localhost:12306/xxx/foo)
实例三:跳转
页面的自动跳转也是经常在 Web 开发中遇到的问题之一
1
2
3
4
5
6
7
{
  "request" :
    {
      "uri" : "/redirect"
    },
  "redirectTo" : "http://www.github.com"
}




页面将会被自动导向到 http://www.github.com
实例三: 返回 JSON 对象
在 Web 开发中,对于 JSON 的操作是最典型的应用
1
2
3
4
5
6
7
8
9
10
{
    "request": {
        "uri": "/json"
    },
    "response": {
        "json": {
            "foo" : "bar"
        }
    }
}




页面上会显示输出的 JSON 对象




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0