willis7 / soapui-gradle-plugin Goto Github PK
View Code? Open in Web Editor NEWSoapUI Gradle Plugin
License: MIT License
SoapUI Gradle Plugin
License: MIT License
When the 'soapui' plugin is applied to the project, tasks should only be available once the project.xml is provided. This will avoid the need to throw an exception later on.
If I create a SoapUI test task of type TestTask
, I expect that the conventions get applied to those tasks too. Currently that does not happen, thus I have to redeclare everything I already set by default in the soapui.test
extension. Because the method that takes care of what I need is private in the plugin code, I cannot even reuse it.
Please also initialize extension properties designed to hold arrays with empty arrays so that we can just add values without having to remember whether the property is still null or not.
Can I use this for SOAPUI Pro project
> Could not set unknown property 'soapuiProperties' for object of type io.byteshifter.plugins.soapui.extensions.SoapUILoadConvention.
Compare that to SoapUIMockConvention
and SoapUITestConvention
which do have those properties.
This might apply also to SoapUISecurityConvention
.
In addition to that, the documentation (README.md
) does not mention soapuiProperties
at all for any convention.
PS.: Consider a common class for reused properties?
This issue is in response to the note left on issue #1 :
Hi , I want to drive the build.gradle to multiple project files with for each project file has a list of properties, I tried my self hard , like applying the below code could you please assist me how to achieve that .
original soapui test extension object
soapui{ test { projectFile = 'src/ABC.xml' testSuite = [ 'INTEGRATION_SUITE'] printReport = true junitReport = true outputFolder = 'out' globalProperties = 'ServiceEndpoint=localhost:7201' endpoint = 'http://localhost:7201' testFailIgnore =true } }
i tried the following. drive through the below map , map contains projectFilename as key and list of test suites as value
def map = [ 'project1':['assertProject.xml',['A','B','C']],'project2':['assertProject.xml',['A','B','C']],'project3':['assertProject.xml',['A','B','C']] ] soapui { map.count{ mit-> test {myit-> projectFile = 'src/${myit.key}' testSuite = ${myit.value} printReport = true junitReport = true outputFolder = 'out' globalProperties = 'ServiceEndpoint=localhost:7201' endpoint = 'http://localhost:7201' testFailIgnore =true } } }
My builds can't seem to resolve com.lv.plugins:soapui-gradle-plugin:0.1 from jcenter. How can I get this to work?
When using SoapUI, its possible to use postgresql driver in path=>SmartBear/SoapUI-5.4.0/bin/ext
But how and where to define the postrgresql driver for soapui-gradle-plugin?
Should it be done in soapui tests or should it be added to build.gradle as a dependency?
gradle clean test
FAILURE: Build failed with an exception.
* What went wrong:
A problem occurred configuring root project 'soap-ui-templates'.
> Could not resolve all dependencies for configuration ':classpath'.
> Could not find com.smartbear.soapui:soapui:5.0.1.
Searched in the following locations:
https://plugins.gradle.org/m2/com/smartbear/soapui/soapui/5.0.1/soapui-5.0.1.pom
https://plugins.gradle.org/m2/com/smartbear/soapui/soapui/5.0.1/soapui-5.0.1.jar
Required by:
:soap-ui-templates:unspecified > gradle.plugin.io.byteshifter:soapui-gradle-plugin:0.2
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
plugins {
id "io.byteshifter.soapui" version "0.2"
}
repositories { mavenCentral() }
version = "0.0.1"
description = "Tests"
apply plugin: 'io.byteshifter.soapui'
soapui {
test {
projectFile = 'AT-test-soapui-project.xml'
testSuite = 'alphaTracker'
printReport = true
junitReport = true
}
}
Hi,
I used this plugin to run my soap ui tests. I got the following error:
[com.lv.plugins.soapui.tasks.MySoapUITestCaseRunner] PropertyTransfer failed, exporting to ...
I could run my tests successfully in Ready! API 1.4.0.
Could you please provide your input on this?
Below is my build.gradle:
// Apply the java plugin to add support for Java
apply plugin: 'java'
apply plugin: 'com.lv.soapui'
task wrapper(type: Wrapper) {
gradleVersion = '2.3'
}
// In this section you declare where to find the dependencies of your build script
buildscript {
repositories {
mavenLocal()
//This repository contains the missing dependencies
maven {
url "http://repo1.maven.org/maven2/"
}
maven {
url "http://www.soapui.org/repository/maven2/"
}
}
dependencies {
classpath 'com.lv.plugins:soapui-gradle-plugin:0.1'
}
}
repositories {
mavenCentral()
mavenLocal()
}
dependencies {
}
soapui {
test {
projectFile = 'Project-name-soapui-project.xml'
printReport = true
junitReport = true
testSuite = 'TestSuite 1'
}
}
Thanks!
Hi, I'am trying to configure SSL Client Certificate Based Authentication. When using SoapUI I can do this like described in this link: https://blogs.sap.com/2011/01/06/soap-ui-tool-soap-https-client-authentication/
And that works also for me.
Unfortunately, when I'm trying to configure this via gradle it doesn't work. Specifically, it does not send the client certificate to server.
My configuration, which I tryed till now, looks like this:
soapUITest.projectProperties = ["clientAuthentication=true", "sslKeystore=${projectDir}/src/test/resources/mobileV2-test-certificates/mobileTest/mobileTest.p12", "sslKeystorePassword=********"]
Did someone try to set a client certificate for soap requests with this plugin? Is my configuration wrong?
Ragards,
Giacomo
Hi,
I use the Gradle daemon, and I start a mock service like this:
soapmock {
noBlock = true
}
How can I stop it once the SoapUI tests are finished?
Hint: There should be a Gradle task that has a way to access the runner...
Edit: I just realized these services seem to stop themselves somehow before restarting them, so there are no port conflicts... Or correct, me if I'm wrong...
When the integration tests are run I can see Java processes are left hanging using ps -fe | grep java
. These processes need to be cleaned after execution.
Hi,
I'm trying to run existing tests using Gradle and your plugin. We have a custom namespace and a bunch of tests that run regularly and pass. When I try to run them through the plugin, the test is able to authenticate with the service and retrieve a valid response but the assertions fail. The assertions pass using SoapUI 4.5.2 and 5.3.0. The plugin uses 5.0.1. I haven't been able to test whether that's a factor.
Here's an extract from the response
<sample xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="<custom ns>">
<id>2</id>
<material_alias>Cold-Cold</material_alias>
<material_id>23</material_id>
<name>CT-000000023-0</name>
<original_experiment_id>1</original_experiment_id>
<priority>3</priority>
<hazards>
...
and here are two of the assertions
<con:assertion type="XPath Match" name="Sample exists">
<con:configuration>
<path>declare namespace ns1='<custom ns>';
exists(/ns1:sample)</path>
<content>true</content>
<allowWildcards>false</allowWildcards>
<ignoreNamspaceDifferences>false</ignoreNamspaceDifferences>
<ignoreComments>false</ignoreComments>
</con:configuration>
</con:assertion>
<con:assertion type="XPath Match" name="Assert id">
<con:configuration>
<path>declare namespace ns1='<custom ns>;
/ns1:sample/ns1:id</path>
<content>2</content>
<allowWildcards>false</allowWildcards>
<ignoreNamspaceDifferences>false</ignoreNamspaceDifferences>
<ignoreComments>false</ignoreComments>
</con:configuration>
</con:assertion>
and here are the results
----------------- Messages ------------------------------
[Sample exists] XPathContains assertion failed for path [declare namespace ns1='<custom ns>';
exists(/ns1:sample)] : RuntimeException: Trying XBeans path engine... Trying XQRL..
. Trying XDK... Trying delegated path engine... FAILED on declare namespace ns1='<custom ns>';
exists(/ns1:sample)
[Assert id] XPathContains assertion failed for path [declare namespace ns1='<custom ns>';
/ns1:sample/ns1:id] : RuntimeException: Trying XBeans path engine... Trying XQRL...
Trying XDK... Trying delegated path engine... FAILED on declare namespace ns1='<custom ns>';
/ns1:sample/ns1:id
Everything I've read says that the first slash before ns1
should be doubled. I've tried that both in Gradle and SoapUI and it hasn't changed things. I've also tried all sorts of variations, playing with namespaces, adding new assertions, etc. I can add new ones that pass in the app. I've been unable to add a single assertion that works in Gradle. I haven't been able to find where the plugin stores it's soapui jar to see if updating it would help.
I can't see any reason why these assertions should fail and, given that they pass in two versions of SoapUI, it does look like there's a bug somewhere. This is a blocking issue for me so any help will be appreciated.
Thanks.
Hello! I'd like to ask if the plugin allows users to specify specific properties to use for different test steps. Say, for example, We have test step A and test step B.
I want the plugin to run both A and B in succession, but use a header value X for test step A and a header value Y for test step B.
If this feature isn't yet supported, I am wondering if there will be any plans to add the support.
Thank you!
Hello,
There is a typo in the soapui-gradle-plugin. In src/main/groovy/io/byteshifter/plugins/soapui/tasks/TestTask.groovy, line 219, projectProperties() should be getProjectProperties().
This causes the setting of the projectProperties key in the soapui -> test closure to throw a NullPointerException.
The fork at [https://github.com/creising/soapui-gradle-plugin] is also affected.
Hi,
Thanks for your pro plugin.I used it in my local machine first time I got error like "Missing folder for external libraries" and "Missing scripts folder",then I tried one more time Its ran successfully.
But when I run my app in jenkins I got above error continuously.
Thanks
I need to run several mock servers, i am using your plugin, It's not a problem to run 1 "soapmock" task,
Is it possible to run several with different ports or hosts
To encourage a convention its better to place the outputs directly in the build folder of the project.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.