如何让readyapi(以前称为soapui)尊重我在pom.xml中指定的值?

时间:2016-05-09 10:00:23

标签: maven soapui ready-api

我的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 个答案:

答案 0 :(得分:0)

我进行了以下测试以检查这是否有效。

首先,我创建一个 Groovy testStep并使用以下代码展开项目属性,以检查是否从pom.xml正确加载:

log.info context.expand('${#Project#one_api}')
log.info context.expand('${#Project#two_api}')

然后我还添加 REST testStep并将${#Project#one_api}设置为端点:

enter image description here

最后我带了你的pom.xml(因为@SiKing建议删除值中的引号,one_api=https://someurl:4000而不是one_api="https://someurl:4000"),然后执行{ {1}}。

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

希望它有所帮助,