如何测试Mule应用程序流?

时间:2016-06-14 15:19:32

标签: mule mule-el

我已被分配了关于当前正在生产的Mule流程应用程序的以下任务:

  • 存储使用webservice的客户端IP
  • 实现一个控制,将每个IP可能要求的次数限制为十次 每日到网站

我对Java核心和SQL有所了解,但是对Mule有空背景。我能问的所有人都处于同样的境地。

一旦我启动并运行了应用程序包(当前正在生产的应用程序包),我已将其停止并将以下元素添加到流程中:

  1. 在带有一些初始任务的子流中,我添加了数据库元素来存储使用webservice的计算机的IP(user_request是表I刚刚在DB中创建了存储IP和连接日期的数据。):
  2. insert into user_request values (#[MULE_REMOTE_CLIENT_ADDRESS], #[function:datestamp:dd-MM-yy])

    1. 要询问网站,数据库元素会执行选择查询,以便为某些输入提供选择。根据这些输入的值,请求是否在网站上完成:
    2. 数据库(选择) - >选择 - >根据选择的输出

      询问或不询问网站

      所以,我已经添加到数据库元素执行select和附加输出,这是当前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] 
      
      1. 选择中,我已将此条件添加到最终询问网站的路径中:
      2. #[payload.get(0).TRIES < 10]

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

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

        提前致谢!!!

1 个答案:

答案 0 :(得分:3)

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