Dsl 线程如何通过对场景中其他功能的内部调用进行操作?

Dsl 线程如何通过对场景中其他功能的内部调用进行操作?,dsl,karate,Dsl,Karate,我正在运行两个测试,在这些测试中,我会调用其他功能来进行验证,然后返回到场景并进一步执行 例如: Given url Admin And def name = '1-' + now() And json myReq = read('Swagger-AuthThrottling.json') And set myReq.swagger.info.title = title And def basepath = 'country' + now() And set myReq.swagger

我正在运行两个测试,在这些测试中,我会调用其他功能来进行验证,然后返回到场景并进一步执行

例如:

Given url Admin

And def name = '1-' + now()

And json myReq = read('Swagger-AuthThrottling.json')

And set myReq.swagger.info.title = title

And def basepath = 'country' + now()

And set myReq.swagger.basePath = basepath

And request myReq

When method post

Then status 200

And def APPIDFromPublisher = call read('classpath:examples/Services/GetAPIIDFromPublisher.feature') {'title': '#(title)'  }

And def APIIDPub = APPIDFromPublisher.APIIDPub

And def utils = Java.type('examples.Publisher.AddAdvancedThrottlingPolicy')
And def result = utils.main(title)


And def APPIDFromStore = call read('classpath:examples/Services/GetAPIIDFromStore.feature') {'title': '#(title)'  }

And def APIIDStr = APPIDFromStore.APIIDStr

And print 'APPIDFromStore for Qantas Gateway API: ' , APPIDFromStore.APIIDStr
我用5个线程运行了很多这种结构的测试

现在,我不确定运行这样的测试时线程是如何工作的

我的理解是,当我开始执行时,应该选取5个测试用例,单个线程在任何时候都不应该离开测试,直到它完成。因此,理想情况下,我应该看到5个测试并行运行,一旦这5个测试完成,接下来的5个测试应该被选取

<>但是真正发生的是,5个线程拾取了5个测试用例,但是显然中间的测试(怀疑它在测试中间调用另一个特征点)。并从下一个插槽中拾取另一个新测试,然后另一个线程或可能是同一个线程再次拾取完成了一半的测试以完成它

总之,在5个线程并行的情况下,我理想情况下希望只看到5个测试从一端到另一端开始和结束,并且只有在这之后,接下来的5个测试才应该开始。 但实际上,我看到在执行开始时有5个测试在运行,但随后它逐渐堆积了大量测试,然后随机完成所有测试的执行

虽然完全执行不会因为线程随机选取和离开测试而失败,但它会用大量API加载我的存储(我的测试主要是在存储中注册API),这会妨碍存储的性能


如果能更多地了解线程的功能并找到解决方案,那就太好了。

您正在使用吗?如果我不能理解这个问题,请按照这个过程,简单明了:

Yes parallel runner。我的理解是5个线程意味着一次从开始到结束执行5个测试用例,然后用5个线程移动到下一个5个测试用例,以此类推。但对我来说不是这样的。对于5个线程,我看到超过5个测试用例正在运行。“我不能理解那件事。”斯内哈舒克拉,我也不能理解你在说什么。请注意,如果有多个
场景
-s,它们都将被放入并行线程中,可能这就是您再次抱怨的问题(请参阅文档)-如果您想更改某些内容,请遵循流程-否则我们可以在这里连续评论几天:我猜我的问题仍然不清楚。别担心。我找不到更好的解释方法,因为这与代码无关,只是关于线程如何拾取场景。@SnehaShukla除非您提供代码,否则没有人会理解您所说的“测试用例”-“开始到结束”和“不以那种方式工作”,“线程拾取场景”是什么意思即使你不同意,也有很多方法可以解释以上所有内容。祝你一切顺利。