本篇主要讲解URule规则快速测试、仿真测试方法、代码中调用URule方法和配置URule restful接口方法及调用示例。
URule提供了方便的测试方法和简明的调用API,在代码调用前一般先通过URule提供的测试方法进行测试,测试无误后再进行API调用。
在URule中不能直接调用规则文件,在测试和API调用前,我们需要先将定义好的规则文件放到知识包中,然后才可以对规则文件进行调用。创建知识包方法步骤如下。
1.点击项目列表树“知识包”节点打开知识包维护界面,点击上方“添加包”按钮,然后在对话框中输入包ID、包名称等字段后点击下方“保存”按钮
2.点击选中刚添加的知识包记录,然后点击右侧“添加文件”按钮
3.知识包审核
知识包支持“审核”功能,新添加的知识包默认审核状态为“未通过”,“未通过”的知识包是无法被调用的,若要允许被调用点击审核按钮修改审核状态即可,如图
5.1)快速测试
快速测试是URule提供的测试方法之一,通过快速测试可以快速确定编写规则过程中是否存在明显错误。
具体使用步骤为:
点击项目列表树中知识包节点->打开知识包维护页面->点击添加知识包按钮->点击添加文件按钮->点击审核通过按钮->点击快速测试按钮->输入客户必填业务字段->点击测试决策流->查看测试结果。
执行结果:
日志信息:
5.2)仿真测试
仿真测试是URule提供的一个强大测试工具,通过他可以对编写出的URule规则进行严格的完整的测试。仿真测试需要制定测试方案,并编写测试用例数据和定义预期结果。
具体使用步骤为:
点击仿真测试按钮打开仿真测试页面->定义测试方案->配置Excel测试模板->下载Excel模板->在Excel模板添加测试用例数据->上传修改后含测试数据模板文件->运行测试方案->查看测试报告
1. 定义测试方案方法
点击“添加新的测试方案”按钮,然后输入方案名称和描述
2.配置Excel测试模板
点击“Excel模板配置与下载”进入配置页面
3.保存并下载Excel模板
点击“展开”并选择输入数据字段和预期结果字段,然后点击“保存”按钮进行保存,再点击“Excel模板配置与下载”会重新打开配置页面,然后点击“下载Excel模板”下载一个模板文件
4.在Excel模板添加测试用例数据
5.上传修改后含测试方案数据模板文件
点击图中选择文件按钮,选择含测试方案数据模板文件,然后点击“确定”按钮进行上传
6.运行测试方案
先点击方案右侧“运行”图标,然后点击对话框中“运行”
7.查看测试报告
点击“运行完成,点击查看报告”,便可以查看到URule根据测试模板及数据生成的测试报告
5.3) 代码调用
1.Java代码中调用URule规则示例代码如下
2.实际业务当中,我们除了会做单条规则计算外,还有可能需要运行规则引擎来处理一大批数据,这些数据可能有几万条,几十万条,甚至更多。在这种情况下,如果我们还是采用普通的KnowledgeSession在一个线程里处理大批量数据的话,那么引擎还是只能在当前线程里运行,这样就会需要很长的时间才能可能将这几十万条甚至更多的数据处理完成,在这个时候,为了充分利用服务器较强的CPU性能,我们可以使用BatchSession利用多线程并行处理这些数据,批量调用示例如下
上面仅列出了单次调用和批量调用URule方法,更多更详细API介绍及使用方法请访问这篇文章介绍(http://www.bstek.com/resources/doc/13dai-ma-zhong-diao-yong.html)。
5.4)接口调用
从2.1.7版本开始,URule Pro中提供了统一的Restful服务调用接口,通过在知识包上进行简单的配置,即可实现将业务规则计算暴露成Restful接口,对于客户端来说,调用接口时,只需要符合要求的JSON格式数据即可实现业务规则计算,同时Restful接口也会返回统一的JSON格式数据作为计算结果输出。
使用方法如下
1.调用前先要配置Restful接口,配置方法为,打开知识包管理页面,选中某一具体的知识包项目,然后点击工具栏上的“服务调用配置”按钮,如下图所示:
2.配置好输入、输出数据以及调用时是否启用用户名密码验证,然后点击“确定”按钮,需要注意的是输入输出数据必须要都配置好后才能进行保存,不能只配置输入数据不配置输出数据,反过来也是一样。
3.再次选择目标知识包,点击工具栏上的“服务调用配置”按钮,在弹出的窗口中选择下方的“查看Restful描述”按钮,就可以看到当前知识包已配置好的Restful服务接口的描述数据,描述服务的格式为JSON,内容如下所示:
4.回到服务调用配置窗口,点击窗口下方的“Restful服务调用测试”按钮,就可以打开当前知识包的服务调用测试页面,然后可以使用URuel提供的测试功能进行接口测试,测试结果如下图,想要了解更多测试功能,请参考官方教程http://www.bstek.com/resources/doc/22fu-wu-bao-lu-yu-diao-yong.html。
5.配置并测试好接口之后,调用方就可以正常使用该接口了,下面为采用RestTemplate调用该接口的示例及返回结果
注意事项:实际应用当中,我们会在应用在外层加上业务系统的安全管理功能,比如使用系统需要先进行登录等,这时要保证URule Pro中内置的Restful服务可用,那么就需要让/urule/rest这个URL可匿名访问,这点非常重要。
源码工程:https://gitee.com/bsdn/urule-demo.git