我的测试用例包含许多值的DataSource步骤。但是我想用dataSource中的少量值来执行测试。所以我选择了我将执行测试的那些。这在本地Ready API上运行得非常好。但是当从Jenkins执行相同的测试时,似乎所有行都执行了测试,包括未选择的行。
我需要任何解决方案或设置或任何建议。
谢谢,
答案 0 :(得分:0)
你的问题不是特别清楚,但根据你所写的内容,我可以尝试帮助。
配置数据源时,SoapUI将为每一行运行测试,因此我不确定您是如何选择子集的。如果您使用Excel作为源,则可以创建包含子集的另一个工作表,但是您需要更新数据源以指向另一个工作表。
如果Jenkins没有按照您的期望运行,我会考虑确保您已准备好让Jenkins接受更改。
在我的每个数据驱动测试中,我使用行的第一列作为值来决定是否运行。我用,真,假和停止。在我的测试中,我在数据源步骤之后立即执行了一个常规步骤。这个groovy脚本读取行的第一个col,然后根据该值决定要做什么。
def runTest = context.expand( '${DataSource#runTest}' );
def testNumber = context.expand( '${SiteDataSource#testNumber}' );
if (runTest.toUpperCase().equals("FALSE")) {
log.info("Test Number ${testNumber} has been disabled. Jumping to next test..");
testRunner.gotoStepByName( "Scenario End - Groovy Script");
} else if (runTest.toUpperCase().equals("TRUE")) {
log.info("Running this scenario....");
} else if (runTest.toUpperCase().equals("STOP")) {
log.info("Stopping testing at this row ${testNumber}.....");
testRunner.gotoStepByName( "Test Ends - Groovy Script");
}
所以,如果是真的,我什么都不做,因为下一步是我测试中的第一步。
如果为false,我会在数据源循环之前立即跳到测试步骤的末尾,因为我希望测试循环回来并查看下一个是否需要运行。
如果停止,那么我跳到测试的最后一步,这是在数据源循环步骤之后。
'Scenario End'和'Test Ends'groovy脚本除了包含日志信息之外什么都没有。