在groovy中动态创建REST测试步骤

时间:2016-12-01 09:58:30

标签: json rest groovy soapui

我有一些我想用作输入的JSON文件,让我们考虑一下我有这个文件夹

mainFolder --> Folder 1 : 10 JSON file (req)
           --> Folder 2 : 10 JSON file (req)

我想从这些文件夹创建: - 每个目录都是一个testCase - 每个文件都是一个testStep

这是我的代码:

import com.eviware.soapui.impl.wsdl.teststeps.registry.GroovyScriptStepFactory
import com.eviware.soapui.support.UISupport;
import com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory
import com.eviware.soapui.config.TestStepConfig
import com.eviware.soapui.impl.rest.*;

def myTestCase = context.testCase
log.info myTestCase


def projectPath = Path
def endPoint = "anEndPoint";


def addTestStep(operation, requestFile, testCase, projectPath, endpoint){

    def usageId = requestFile.name.replace("_request.json","")
    def projectPathTest = projectPath+"SPecificPath";
    def testStepName=usageId;

    def iface = testCase.testSuite.project.getInterfaceList()[0];
    def operationName= operation;
    def op = iface.operations[operationName];
    def config = com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory.createConfig( op, testStepName);

    def newTestStep = testCase.addTestStep( config );
    newTestStep.getTestRequest().setRequestContent(requestFile.text)
    newTestStep.httpRequest.endpoint = endpoint
}

if ( com.eviware.soapui.support.UISupport.confirm("Reconstruct ?","Confirm") ){

    testSuite.getTestCaseList().each{testCase->testSuite.removeTestCase(testCase)}

    new File(projectPathTest).eachDir{dir->  
        operation = dir.name
        def RestTestCase = testSuite.addNewTestCase(operation)
        RestTestCase.setFailOnError(false)
        dir.eachFileMatch(~/.*_request\.json/){file->
        addTestStep(operation, file, RestTestCase, projectPath, endPoint)       
        }
    }
}

我验证了很多次,很多页面,很多论坛,似乎我有正确的形式和算法来获得我想要的东西,相反,我成功创建了带有文件夹名称的testCase,我成功获得了请求JSON文件,但我没有创建测试步骤,我很确定它是配置或接口/操作使它失败:

def config = com.eviware.soapui.impl.wsdl.teststeps.registry.RestRequestStepFactory.createConfig( op, testStepName);

请帮忙吗?

0 个答案:

没有答案