2016-06-14 88 views
0

我被分配在生产目前关于骡子流应用以下任务:如何测试Mule应用程序流?

  • 到商店客户端IP它是使用Web服务
  • 为了实现限制到十次,每次IP控制可以每天向网站询问

我对Java核心和SQL有一定的了解,但是对于Mule来说是空的背景。我可以问的所有人都处于相同的情况。

一旦我得到了应用程序包(一个是目前在生产中)运行起来,我已经停止,并添加以下内容到流量:一些初步

  1. 子流任务,我添加了一个数据库元素来存储正在使用web服务的计算机的IP(user_request是我刚刚在存储IP和连接日期的DB中创建的表):

insert into user_request values (#[MULE_REMOTE_CLIENT_ADDRESS], #[function:datestamp:dd-MM-yy])

  • 问网站,数据库元件执行一个选择查询,以提供一个选择一些输入。根据请求做是为了网站或不是那些投入的价值:
  • 数据库(选择) - >选择 - >问问要不要网站取决于选择输出

    所以,在那里,我已经加入到执行选择和额外的输出是当前IP和当天user_request表的计数,因此它可以提供选择与原来的输入像往常一样也是这个额外的数据库元素一个(我只复制我添加的suquery):

    SELECT COUNT(*) as TRIES FROM USER_REQUEST 
    WHERE IP_ADDRESS=#[MULE_REMOTE_CLIENT_ADDRESS] 
    AND REQUEST_DATE=#[function:datestamp:dd-MM-yy] 
    
  • 选择,我已经加入该条件的路径最后问的网站:
  • #[payload.get(0).TRIES < 10]

    达到此点,应用程序运行并没有发生错误,但我不知道如何测试它。流量从哪里开始?我如何测试它,因为我是用户?

    此外,如果您在上面使用的语法中看到任何错误,如果您告诉我,我将不胜感激。

    在此先感谢!

    回答

    3

    munit将要求您首先了解该过程的基本知识,但它是mule的主要测试工具。有了它,您将创建一个测试套件来执行各种流程,并验证在给定知道输入时正确的处理以可重复的方式进行。在测试中,您可以模拟关键调用,例如写入数据库,以便实际调用但未实际完成,以便不修改您的数据库表。同样,在读取数据库时,您可以实际进行调用以获取已知数据,也可以返回模拟测试数据以执行流程中的所有路径。

    +0

    好主意!!我将尝试学习munit的基础知识来设置项目的测试套件(我有一些关于junit的背景知识,也许它可以帮助我)...事情是,该项目还没有任何测试¬¬..所以我想也许我会为项目开发munit测试电池,然后将其更改添加到核心,然后再进行一些额外的测试以测试整个修改的项目....谢谢! – Arcones