我正在使用Cucumber结合Serenity框架编写一些BDD自动化测试。在我的BDD测试中,我需要一些超时机制,这样如果cucumber场景或Serenity中的一个步骤花费的时间太长,它就会超时,测试就会失败。
我在下面的链接中发现了一些信息:https://groups.google.com/forum/#!topic/cukes/QaPvVMnqDvE
因此,对于Cucumber,步骤定义中的以下设置似乎可以完成这项工作:
@When(value="^I request web authentication$", timeout=1000)
public myfunc(){
}
对于Serenity,我没有找到任何超时设置,但我想这只是我还没有找到它。
但是,当我尝试使用timeout=xxx for Cucumber时,它似乎不起作用。即使myfunc()在我的测试中挂起了很长时间,测试也没有停止,只是挂起了。
有人知道这个timeout=xxx是否有额外的设置来工作吗?
此外,Serenity是否有自己的类似超时机制可供使用?
最后,我正在使用maven clean install来驱动测试,也许我错过了一些maven设置来工作?
任何提示都将不胜感激。
或者,如果您在每一步后都需要延迟,您可以使用该属性:
serenity.step.delay={time in ms}
不要直接只使用Maven install来驱动测试,而是使用Junit或TestNG来完成。如果您使用Junit,超时可以按如下方式完成:
@Test(timeout = 20)
public void try() {
while(true);
}
TestNG也以几乎相同的方式工作:
@Test(timeOut = 10000)
public void try() {
while(true);
}
Cucumber具有与JUnit和TestNG兼容的可用依赖项。
您尝试的Cucumber超时仅在以下情况下有效:
正如@aslakhellesoy在这里提到的
如果线程是不可中断的,超时将停止线程…
如果一个线程没有响应interrupt(),我们将在两次指定的超时后尝试停止它()。
这使用了不推荐使用的Thread.stop()方法,但是对于Cucumber这样的测试工具来说,应该没问题。
参考编号343。
因此,您必须将超时时间减少一半。
Serenity的超时可由以下属性处理:
webdriver.timeouts。隐式等待
webdriver.wait.for。超时
serenity.timeout
您还可以在
http://thucydides.info/docs/serenity-staging/#_working_with_timeouts https://github.com/serenity-bdd/serenity-documentation/blob/master/src/asciidoc/system-props.adoc
整体设计 图例说明: 图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口,位于中轴线上的为双方都用到的接口。 图中从下至上分为十层,各层均为单向依赖,右边的黑色箭头代表层之间的依赖关系,每一层都可以剥离上层被复用,其中,Service 和 Config 层为 API,其它各层均为 SPI。 图中绿色小块的为扩展接口,蓝色小块为实现类,图中只显示用于关联各层的实现类。
当微服务处理业务逻辑时间过长,网关会报超时错误,默认等待时间是5秒。 可在网关指定spring.cloud.gateway.httpclient.response-timeout参数设置超时时间,单位毫秒 # 设置响应超时10秒 spring.cloud.gateway.httpclient.response-timeout=10000 更多配置参见:org.springframework.cl
<?php $http = HttpRequest::newSession(); $response = $http->timeout(3000, 1000) // 总时间不得超过3秒,连接时间不得超过1秒 ->get('https://www.baidu.com/'); $content = $response->body(); // 网页源码
实现概要 koa2 搭建服务 MySQL作为数据库 mysql 5.7 版本 储存普通数据 存储session登录态数据 渲染 服务端渲染:ejs作为服务端渲染的模板引擎 前端渲染:用webpack2环境编译react.js动态渲染页面,使用ant-design框架 文件目录设计 demo源码 https://github.com/ChenShenhai/koa2-note/blob/master
问题内容: Tkinter窗口的大小可以通过以下方法控制: 是否有等效的方法来控制Tkinter或ttk帧的大小? @Bryan:我将您的frame1.pack代码更改为以下代码: 我添加了此事件处理程序: 上面的事件处理程序检测到帧的宽度太大,但是无法防止大小增加。这是Tkinter的限制,还是我误解了您的解释? 问题答案: 没有单个魔术功能可以将帧强制为最小或固定大小。但是,您可以通过为框架指
问题内容: 有时功能运作良好,有时却无法。 如何为此ajax请求设置超时?例如,如果时间为3秒,则显示错误。 问题是,ajax请求将冻结该块直到完成。如果服务器关闭了一段时间,它将永远不会结束。 问题答案: 请阅读 文档,这是一个涵盖的主题。 您可以通过访问选项的textStatus参数来查看抛出了哪种类型的错误。选项为“超时”,“错误”,“中止”和“ parsererror”。