我遇到一个问题,如果我将第一个请求更改为POST / GET,那么所有其他请求都是相同的。
所以我为我的所有GET请求创建了一个新项目。
现在可以使用groovy,我可以运行任何测试用例或测试步骤吗?
我正在测试Rest API
我正在使用下面的代码,然后得到如下错误: -
def tCase = testRunner.testCase.testSuite.testCases["Request_for_Product_Import"]
def tStep = tCase.testSteps["Api - Chekcing_Request_Product_Import"]
TestStep.run( tCase, tStep)
java.lang.NullPointerException:无法获取属性“testSteps” 第3行的空对象错误
我的请求 - > “Api - Chekcing_Request_Product_Import”出现在不同的项目
上还有一个依赖我的第一个groovy脚本从第一个请求获取数据,我需要将该值传递给另一个项目上的第二个脚本: - Api - Chekcing_Request_Product_Import
为此我使用下面的代码: -
def valueFromPreviousResponse = <replace your value here>
context.testCase.testSuite.setPropertyValue('REQUEST_ID', valueFromPreviousResponse)
我在凹槽文件名中添加了以上代码: - Getrequest(请参阅图片)
然后我是另一个GET请求中的值,如下所示: -
https://mywebsite/api/api_jobs/get_response?request_id=${#TestSuite#REQUEST_ID}
我的项目结构如下图所示: -
答案 0 :(得分:1)
我找到了实现上述问题的方法
对于Get Request,创建一个新项目,然后创建一个GET请求。现在右键点击请求 - &gt;克隆TestStep然后选择您需要的项目并单击Ok。
现在另一件事是如何发送来自第一个请求的值。 为此,您可以将该值设置为SOAP-UI的全局属性,然后可以使用groovy脚本
检索该值要将值设置为全局属性,请使用以下代码: -
def valueFromPreviousResponse = slurperresponse.products.request_id
com.eviware.soapui.SoapUI.globalProperties.setPropertyValue( "Request_Dynamic_ID", valueFromPreviousResponse )
要从全局属性中读取值,请使用以下代码: -
def Globalrequest = com.eviware.soapui.SoapUI.globalProperties.getPropertyValue( "Request_Dynamic_ID" )
log.info(Globalrequest)
使用下面的代码
运行SOAP-UI中任何项目的测试用例//get test case from other project or from the same one
project = testRunner.getTestCase().getTestSuite().getProject().getWorkspace().getProjectByName("REST Project 2")
testSuite = project.getTestSuiteByName("PIM2_TestSuite");
testCase = testSuite.getTestCaseByName("Request_for_Product_Import");
//set properties if you need
//testRunner.testCase.setPropertyValue(property_name, property_value);
//testRunner.testCase.setPropertyValue(another_property_name, another_property_value);
// run test case
runner = testCase.run(new com.eviware.soapui.support.types.StringToObjectMap(), false);
答案 1 :(得分:0)
您可以使用
TestStep.run(TestCaseRunner testRunner, TestCaseRunContext testRunContext)
从SoapUI的任何地方运行测试步骤