首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pysys -在比较事件和引用时,如何只对某些参数进行验证?

Pysys -在比较事件和引用时,如何只对某些参数进行验证?
EN

Stack Overflow用户
提问于 2015-09-23 13:06:09
回答 1查看 217关注 0票数 2

许多示例与Apama安装一起存在,但是我无法识别您是否只能比较事件中的某些参数,而不是整个事件。

例如,如果捕获以下内容:

代码语言:javascript
复制
com.eventA("abc",1234,true)

期待

代码语言:javascript
复制
com.eventA("abc",*,true)

那么,我只想比较参数1和参数3,这在apama/pysys框架中是可行的吗?

此外,在与日志文件比较时,是否可以使用相同的特性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-09-23 14:33:05

您可能最好使用assertOrderedGrep来完成此操作。此验证例程允许您构建一组有序的正则表达式,这些正则表达式将在输出文件中搜索,并且必须以指定的顺序出现。例如,以下捕获的输出的断言(让我们称之为output.log);

代码语言:javascript
复制
com.eventA("abc",1234,true)
com.eventA("def",1234,false)
com.eventA("abc",1234,false)

可以使用表单的验证来执行;

代码语言:javascript
复制
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的。对于您的例子,您可以有一个表单的参考文件;

代码语言:javascript
复制
com.eventA("abc",1234,true)
com.eventA("def",4567,false)
com.eventA("abc",1234,false)

然后用一个空字符串替换所有的",.*“,这样它就正确地不同了。然后对表格进行验证;

代码语言:javascript
复制
    replace=((',.*,',''),)
    self.assertDiff(file1='output.log', file2='reference.log', replace=replace)

有关assertDiff方法的更多细节,请参见pydoc。主要要注意的是,在基于事件的apama扩展中没有解析器;您需要使用regex来验证任何输出日志。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32740432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档