Как мне получить 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}.

Надеюсь, что это поможет,