【问题标题】:Jenkins selecting unselected rows from Datasource Step詹金斯从数据源步骤中选择未选择的行
【发布时间】:2018-03-15 14:19:28
【问题描述】:

我有带有许多值的 DataSource 步骤的测试用例。但我想只用 dataSource 中的几个值来执行测试。所以我选择了我将用来执行测试的那些。这在本地 Ready API 上运行良好。但是当从 Jenkins 执行相同的测试时,似乎测试是在所有行上执行的,包括未选择的行。

有什么我需要的解决方案或设置或任何建议。

谢谢,

【问题讨论】:

    标签: jenkins soapui


    【解决方案1】:

    您的问题不是特别清楚,但根据您所写的内容,我可以尝试提供帮助。

    当您配置数据源时,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 脚本只包含一条日志信息消息。

    【讨论】:

    • 谢谢克里斯,我会试试看的!
    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    相关资源
    最近更新 更多