Forum Discussion
Hi,
Ok, sorry, I did wonder if that was what you meant i.e. generate the whole project etc from a command line.
Its definately an interesting question, but unfortunately apart from feeling that it is very doable with Groovy (as I have done / seen bits od scripts like this before), I don't have the script yet and it might take me a while - maybe someone else can jump in if they have such a script?
I did see this post where on page 2 the guy has a Groovy script to create the TestSteps dynamically (but not the project):
I must admit I am quite curious to know why you need to generate the whole thing? As I have always been able to simply create the project / TestSuite / TestCase / Steps manually, parameterise all the aspects that need to be dynamic as property expansions and then pass the poperty vales when running from the command like script - do you need to generate everything on the fly as part of some kind of CI process?
Sorry not to have a quick answer,
Cheers,
Rup
It’s ok Rup. Yes I need to generate the whole project from command line and execute as part of the CI process. If you can get me the code it will be very useful…
- rupert_anderson9 years agoValued Contributor
Ok, no problem.
I will put this on my list of things to do. I did wonder about it some time back, but didn't know how useful it would be. When I crack it I'll share the script with you so you can test it, I might even do a quick blog on it.
Let me know if you crack it first please.
Cheers,
Rup
- BalamuruganRavi9 years agoOccasional Contributor
Sure Rup. Thank you so much
- rupert_anderson9 years agoValued Contributor
Hi,
I managed to get a chance to work a little on what we discussed... here is my first quick shot and results, please let me know what you think:
Create a Groovy script with the following content (note if you do this in Eclipse, you'll need to reference all the SoapUI libs):
import com.eviware.soapui.impl.actions.RestServiceBuilder
import com.eviware.soapui.impl.rest.RestRequest
import com.eviware.soapui.impl.wsdl.WsdlProject
import com.eviware.soapui.impl.wsdl.WsdlSubmitContext
import com.eviware.soapui.model.iface.Response
import com.eviware.soapui.model.iface.Submit
def uri = "http://jsonplaceholder.typicode.com/posts/1"
WsdlProject project = new WsdlProject()
RestServiceBuilder serviceBuilder = new RestServiceBuilder()
serviceBuilder.createRestService(project, uri)
println "service name: "+project.getInterfaceList()[0].name
println "Resource: "+project.getInterfaceList()[0].getOperationList()[0]
RestRequest request = project.getInterfaceList()[0].getOperationList()[0].getRequestList()[0]
Submit submit = (Submit) request.submit( new WsdlSubmitContext(), false );
Response response = submit.getResponse();
String responseContent = response.getContentAsString();
println( responseContent );
Running this gives:
2015-05-15 14:01:13,769 [main] WARN com.eviware.soapui.SoapUI - Could not find jfxrt.jar. Internal browser will be disabled.
14:01:14,606 WARN [SoapUI] Missing folder [/Users/bearsoftware/Documents/workspace-sts-soapui-testarea/TestSoapUIScripts/ext] for external libraries
14:01:15,565 INFO [DefaultSoapUICore] initialized soapui-settings from [/Users/bearsoftware/soapui-settings.xml]
14:01:15,755 INFO [HttpClientSupport$Helper] Initializing KeyStore
service name: http://jsonplaceholder.typicode.com
Resource: RestResource: /posts/1
14:01:19,242 DEBUG [HttpClientSupport$SoapUIHttpClient] Attempt 1 to execute request
14:01:19,242 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Sending request: GET /posts/1 HTTP/1.1
14:01:19,635 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Receiving response: HTTP/1.1 200 OK
14:01:19,640 DEBUG [HttpClientSupport$SoapUIHttpClient] Connection can be kept alive indefinitely
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et **bleep**\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
}
14:01:51,851 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Connection closed
The script:
- Creates a new REST Project based on the highlighted URI (a public test REST API)
- A GET request to the resource /posts/1 is automatically created.
- The request is dispatched and the response JSON content printed out.
When creating the project on-the-fly like this there is no need to persist anything or use a TestRunner script - is this allong the lines you need?
Cheers,
Rup
Related Content
- 11 months agolalit_singh
- 2 years agoTestQA1
- 3 years agoCata
Recent Discussions
- 9 hours agocodehausss