首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程的频谱延迟

线程的频谱延迟
EN

Stack Overflow用户
提问于 2017-01-12 13:45:01
回答 2查看 619关注 0票数 0

我有一个用c#编写的测试,我使用的是SpecRun版本1.5.2。

我的Default.srprofile的一部分看起来如下:

代码语言:javascript
复制
<Execution stopAfterFailures="20" testThreadCount="5" testSchedulingMode="Sequential" retryFor="Failing" retryCount="3" />

有一组测试正在使用来自db的一些数据,所以测试首先创建该数据。不幸的是,当5个线程并行运行时,我偶尔会得到一个sql deadlock error,这很好,因为这些线程试图同时写入数据。

是否有机会增加线程执行的延迟?比线程更需要说的东西应该在5秒间隔内开始,还是类似的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-13 09:30:48

推迟启动是没有选择的,我也不会同意这个想法。这只是一个快速的解决办法。当随后的测试同时执行时,您将再次得到此错误。

我想到了解决你的问题的两个选择:

  • 捕获死锁异常并再次添加数据。
  • 对每个线程使用不同的数据库。可以使用ConfigTransformation部署步骤更改连接字符串,以访问每个线程的单独数据库。http://specflow.org/plus/documentation/SpecFlowPlus-Runner-Profiles/#DeploymentTransformation有不同值的占位符:http://specflow.org/plus/documentation/SpecFlowPlus-Runner-Profiles/#Placeholders

全面披露:我是SpecFlow和SpecFlow+的开发人员之一。

票数 2
EN

Stack Overflow用户

发布于 2021-02-18 09:51:04

除了前面的答案,如果您继续捕获死锁和重试,我还会在尝试之间添加一些随机的时间间隔,这样您就不会在每次重试迭代中出现相同的死锁。对于API/DB并发请求,我们这样做是很好的,因为多个数据库/环境需要更多的资源和金钱。

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

https://stackoverflow.com/questions/41614797

复制
相关文章

相似问题

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