有没有人曾经针对f5连接创建了成功的Spock测试?
在我的f5规则中,如果情况满足 - 说一个坏的cookie,我放弃连接
if { [HTTP::cookie exists "badCookie"] } {
if { not ([HTTP::cookie "badCookie"] matches_regex {^([A-Z0-9_\s]+)$}) } {
drop
}
}
在浏览器中手动测试此操作会导致缓慢但最终超时,时间限制取决于浏览器。但是我不想对每个f5规则进行手动测试,而是将测试结合到我们的Spock功能测试库中。
使用Spock,@ Timeout()或@Timeout(value = 5)最终会在超时时间内做一个永无止境的增加,如:
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 0.50 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 1.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 2.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 4.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 8.00 seconds.
[spock.lang.Timeout] Method 'abc' has not yet returned - interrupting. Next try in 16.00 seconds.
在http://fbflex.wordpress.com/2010/08/25/geb-and-grails-tips-tricks-and-gotchas/或https://github.com/hexacta/weet/blob/master/weet/src/groovy/com/hexacta/weet/pages/AjaxPage.groovy中使用waitFor方法也不会使用5秒规范关闭方法。
使用这些方法(超时类,超时方法和waitFor)的代码示例位于https://gist.github.com/ledlogic/b152370b95e971b3992f
我的问题是,是否有人找到了成功运行Spock测试以验证f5规则是否正在丢弃连接的方法?
答案 0 :(得分:0)
对我来说,在{
"ArrayInfo": [
{
"name": "A",
"Id": "1"
},
{
"name": "B",
"Id": "2"
},
{
"name": "C",
"Id": "3"
},
{
"name": "D",
"Id": "4"
}
{
"name": "E",
"Id": "5"
}
]
}
注释旁边使用@ThreadInterrupt
注释是有效的:
@Timeout
您将在此处找到完整的文档:http://docs.groovy-lang.org/docs/next/html/documentation/#GroovyConsole-Interrupt
但是,这可能不足以中断脚本:单击 该按钮将中断执行线程,但是如果您的代码 不处理中断标志,脚本可能会保留 运行而无法有效停止它。为了避免这种情况, 您必须确保“脚本”>“允许中断”菜单项 被标记。这将自动将AST转换应用于 您的脚本将负责检查中断标志 (@ThreadInterrupt)。这样,您可以确保脚本可以 即使您没有明确处理中断,也会在 花费额外的执行时间。