Karate 1.3.0版本并行测试执行效率异常求助
Karate 1.3.0版本单Feature文件并行测试性能下降问题
问题描述
升级到Karate 1.3.0后,单Feature文件的并行测试出现性能异常。该Feature包含10个简单API场景,并行执行时,其中2个场景加入10秒sleep后:
- Karate 1.1.0/1.2.0版本总耗时仅约17秒
- Karate 1.3.0版本总耗时长达27秒,并行机制仿佛未生效
sleep逻辑采用文档推荐方式:通过Background中的callSingle调用SleepGenerator实现。
执行结果对比
Karate 1.1.0执行结果
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 1.3.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 ======================================================
测试代码
Runner代码
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示例代码
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
内容的提问来源于stack exchange,提问作者Xop
相关产品推荐
相关产品推荐

