许多示例与Apama安装一起存在,但是我无法识别您是否只能比较事件中的某些参数,而不是整个事件。
例如,如果捕获以下内容:
com.eventA("abc",1234,true)期待
com.eventA("abc",*,true)那么,我只想比较参数1和参数3,这在apama/pysys框架中是可行的吗?
此外,在与日志文件比较时,是否可以使用相同的特性?
发布于 2015-09-23 14:33:05
您可能最好使用assertOrderedGrep来完成此操作。此验证例程允许您构建一组有序的正则表达式,这些正则表达式将在输出文件中搜索,并且必须以指定的顺序出现。例如,以下捕获的输出的断言(让我们称之为output.log);
com.eventA("abc",1234,true)
com.eventA("def",1234,false)
com.eventA("abc",1234,false)可以使用表单的验证来执行;
def validate(self):
exprList=[]
exprList.append('com.eventA\("abc",.*,true\)')
exprList.append('com.eventA\("abc",.*,false\)')
self.assertOrderedGrep('output.log', exprList=exprList)exprList中使用的字符串是标准正则表达式,因此需要转义特殊字符,如括号。
如果要使用引用文件使用assertDiff,可以在正在验证的输出文件和引用文件中替换令牌,但这还是基于regex的。对于您的例子,您可以有一个表单的参考文件;
com.eventA("abc",1234,true)
com.eventA("def",4567,false)
com.eventA("abc",1234,false)然后用一个空字符串替换所有的",.*“,这样它就正确地不同了。然后对表格进行验证;
replace=((',.*,',''),)
self.assertDiff(file1='output.log', file2='reference.log', replace=replace)有关assertDiff方法的更多细节,请参见pydoc。主要要注意的是,在基于事件的apama扩展中没有解析器;您需要使用regex来验证任何输出日志。
https://stackoverflow.com/questions/32740432
复制相似问题