在spock测试期间没有从f5下降中恢复

时间:2014-08-06 03:52:35

标签: httpclient spock f5

有没有人曾经针对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规则是否正在丢弃连接的方法?

1 个答案:

答案 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)。这样,您可以确保脚本可以   即使您没有明确处理中断,也会在   花费额外的执行时间。

相关问题