如何从当前 post 请求项目中的不同项目 运行 我的 GET 请求测试步骤 |肥皂-UI
How to RUN my GET request teststep from different project from my current post Request Project | SOAP-UI
我遇到一个问题,如果我将我的第一个请求更改为 POST/GET,那么所有其他请求都将按相同顺序进行。
所以我为所有 GET 请求创建了一个新项目。
现在可以使用 groovy,我可以 运行 任何测试用例或测试步骤吗?
我正在测试休息 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: Cannot get property 'testSteps' on
null object error at line: 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)
我在一个groove文件名中添加了上面的代码:- Getrequest(请参考图片)
然后我在另一个GET请求中的值如下:-
https://mywebsite/api/api_jobs/get_response?request_id=${#TestSuite#REQUEST_ID}
我的项目结构如下图:-
您可以使用
TestStep.run(TestCaseRunner testRunner, TestCaseRunContext testRunContext)
到 运行 SoapUI 中任意位置的测试步骤
我已经找到解决上述问题的方法
对于 Get Request 创建一个新项目,然后创建一个 GET 请求。现在右键单击 request -> Clone TestStep 然后 select 您需要的项目并单击 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);
我遇到一个问题,如果我将我的第一个请求更改为 POST/GET,那么所有其他请求都将按相同顺序进行。
所以我为所有 GET 请求创建了一个新项目。
现在可以使用 groovy,我可以 运行 任何测试用例或测试步骤吗?
我正在测试休息 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: Cannot get property 'testSteps' on null object error at line: 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)
我在一个groove文件名中添加了上面的代码:- Getrequest(请参考图片)
然后我在另一个GET请求中的值如下:-
https://mywebsite/api/api_jobs/get_response?request_id=${#TestSuite#REQUEST_ID}
我的项目结构如下图:-
您可以使用
TestStep.run(TestCaseRunner testRunner, TestCaseRunContext testRunContext)
到 运行 SoapUI 中任意位置的测试步骤
我已经找到解决上述问题的方法
对于 Get Request 创建一个新项目,然后创建一个 GET 请求。现在右键单击 request -> Clone TestStep 然后 select 您需要的项目并单击 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);