【发布时间】:2023-02-07 18:34:43
【问题描述】:
早上好,
我刚刚安装了 Karate 版本,并且在并行执行测试时出现意外行为。
我有一个并行执行的功能文件。在 10 个简单的 API 场景中。 如果我在两个场景中添加 10 秒的睡眠,那么执行将花费 27 秒。 在 1.1.0 或 1.2.0 中需要 17 秒。好像没有并行化的地方。
我使用文档中建议的睡眠方法。我的睡眠方法在我的后台文件中的 CallSingle 中调用(如下例所示)
结果 :
Karate version: 1.1.0
======================================================
elapsed: 16,70 | threads: 25 | thread time: 87,05
features: 1 | skipped: 0 | efficiency: 0,21
scenarios: 34 | passed: 34 | failed: 0
======================================================
Karate version: 1.3.0
======================================================
elapsed: 25,51 | threads: 25 | thread time: 126,30
features: 1 | skipped: 0 | efficiency: 0,20
scenarios: 34 | passed: 34 | failed: 0
======================================================
我的跑步者:
Results results = Runner.path(
"classpath:Tenant/TenantAPI/gestionTenantAPI.feature"
).tags("\~@ignore").reportDir("target/surefire-reports-myrunner).outputCucumberJson(true).outputJunitXml(true)
.parallel(25);
karateReportCucumber.generateReport(results.getReportDir(), runner);
assertEquals(0, results.getFailCount(), results.getErrorMessages());
功能示例:
Feature : Test Sleep
Background:
* def SleepGenerator = karate.call('classpath:Common/Utils/generators.feature@sleepGenerator').SleepGenerator
Scenario: Number 01
* def pause = SleepGenerator(10000)
Given url url_api + '/v1/myapp/code/karate'
And header Content-Type = 'application/json'
And header Authorization = "Bearer " + token_bearer
When method GET
Then status 200
Scenario:Number 01
* def pause = SleepGenerator(10000)
Given url url_api + '/v1/myapp/code/MAGICSTRING'
And header Content-Type = 'application/json'
And header Authorization = "Bearer " + token_bearer
When method GET
Then status 200
【问题讨论】:
标签: karate