Как мне получить readyapi (ранее soapui), чтобы уважать значения, указанные в pom.xml?
Мой pom.xml выглядит как
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.cvent</groupId>
<artifactId>soa-readyapi</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>OnSite Solutions ReadyAPI Tests</name>
<properties>
<soapui.environment/>
<soapui.test-suite/>
<soapui.test-case/>
</properties>
<build>
<plugins>
<plugin>
<groupId>com.smartbear</groupId>
<artifactId>ready-api-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>test</goal>
</goals>
<configuration>
<projectFile>${soapui.projectFile}</projectFile>
<iface>IOrderService</iface>
<tool>wsi,axis1,axis2</tool>
<settingsFile>soapui-settings.xml</settingsFile>
<!-- <environment>${soapui.environment}</environment> -->
<outputFolder>output</outputFolder>
<junitReport>true</junitReport>
<printReport>true</printReport>
<projectProperties>
<value>one_api="https://someurl:4000"</value>
<value>two_api="https://someurl:4001"</value>
<!-- <value>environment=${soapui.environment}</value> -->
</projectProperties>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Когда я пытаюсь запустить этот проект со следующей командой -
mvn clean test -Dsoapui.projectFile=smokeTest
Тесты, по-видимому, выполняются с тем, что было установлено для последней активной среды в ReadyAPI. Он игнорирует
<value>one_api="https://someurl:4000"</value>
<value>two_api="https://someurl:4001"</value>
Я знаю, что могу использовать функцию среды для этого, но это не помогает мне в моем текущем случае использования. Я хотел бы установить его во время выполнения, пока я жестко кодирую pom.xml, чтобы убедиться, что это сработает, но это не так.
Любые идеи относительно того, почему readyAPI игнорирует значения, которые я устанавливаю в pom.xml?
Спасибо
Ответы
Ответ 1
Я делаю следующий тест, чтобы проверить, работает ли это или нет.
Сначала я создаю testStep Groovy и использую следующий код, чтобы развернуть свойства проекта, чтобы проверить, правильно ли они загружены с pom.xml
:
log.info context.expand('${#Project#one_api}')
log.info context.expand('${#Project#two_api}')
Затем я также добавляю REST testStep, и я устанавливаю ${#Project#one_api}
в качестве конечной точки:
![введите описание изображения здесь]()
Наконец, я беру ваш pom.xml
(поскольку @SiKing предлагает отбросить кавычки из значения, как one_api=https://someurl:4000
вместо one_api="https://someurl:4000"
), а затем выполнить mvn clean test -Dsoapui.projectFile=./soaptestprj.xml
.
Трассировка mvn
показывает следующее:
15:16:37,406 INFO [SoapUIProTestCaseRunner] running step [Groovy Script INIT]
15:16:37,653 INFO [log] https://someurl:4000
15:16:37,653 INFO [log] https://someurl:4001
15:16:37,655 INFO [SoapUIProTestCaseRunner] running step [initProcess]
15:16:40,491 ERROR [WsdlSubmit] Exception in request: java.net.UnknownHostException: someurl
Несмотря на то, что, по-видимому, он не может решить someurl
, кажется, что плагин правильно передает <projectProperties>
.
Возможно, проблема заключается в том, что вы неправильно ссылаетесь на свойство project
, убедитесь, что вы правильно указываете это как ${#Project#YourProperty}
.
Надеюсь, что это поможет,