【问题标题】:Error running SoapUI test in docker container with "ddavison/soapui" docker image使用“ddavison/soapui”docker 镜像在 docker 容器中运行 SoapUI 测试时出错
【发布时间】:2019-05-14 16:59:13
【问题描述】:

我在 CentOS 虚拟机上下载了 SoapUI,并在其中创建了一个可以正常运行的 SoapUI 项目。现在,我在另一个没有 SoapUI 的 CentOS VM 中下载了 'ddavison/soapui' docker 映像。我启动容器并转到“localhost:3000/”并查看将项目卷曲到 localhost:3000 的说明。我已经尝试过我制作的项目和下载附带的示例soapUI 项目。两者都不起作用,并且它们都得到相同的错误。 我运行命令:

curl --form "project=@/home/Documents/Sample-REST-Project-soapui-project.xml" http://localhost:3000/

我得到以下输出:

 ================================
    =
    = SOAPUI_HOME = /opt/SoapUI
    =
    ================================
    2018-12-13 12:49:06,639 [main] WARN  com.eviware.soapui.SoapUI - Could not find jfxrt.jar. Internal browser will be disabled.
SoapUI 5.4.0 TestCase Runner
    12:49:06,878 INFO  [DefaultSoapUICore] Creating new settings at [/root/soapui-settings.xml]
    12:49:07,792 INFO  [PluginManager] 0 plugins loaded in 2 ms
    12:49:07,792 INFO  [DefaultSoapUICore] All plugins loaded
    12:49:08,652 INFO  [WsdlProject] Loaded project from [file:/tmp/soapui-project.xml]
    12:49:08,657 INFO  [SoapUITestCaseRunner] Running SoapUI tests in project [Sample REST Project]
    12:49:08,658 INFO  [SoapUITestCaseRunner] Running Project [Sample REST Project], runType = SEQUENTIAL
    12:49:08,669 INFO  [SoapUITestCaseRunner] Running SoapUI testcase [accountcreation TestCase]
    12:49:08,675 INFO  [SoapUITestCaseRunner] running step [View Form]
    12:49:08,749 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Connection closed
    12:49:08,749 DEBUG [SoapUIMultiThreadedHttpConnectionManager$SoapUIDefaultClientConnection] Connection shut down
    12:49:08,752 ERROR [WsdlSubmit] Exception in request: org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused
    12:49:08,764 ERROR [SoapUI] An error occurred [Connection to http://localhost:8080 refused], see error log for details
    12:49:08,770 ERROR [SoapUITestCaseRunner] View Form failed, exporting to [/opt/bin/Test_account_creation-accountcreation_TestCase-View_Form-0-FAILED.txt]
    12:49:08,772 INFO  [SoapUITestCaseRunner] Finished running SoapUI testcase [accountcreation TestCase], time taken: 0ms, status: FAILED
    12:49:08,773 INFO  [SoapUITestCaseRunner] Project [Sample REST Project] finished with status [FAILED] in 110ms
    12:49:08,773 ERROR [SoapUITestCaseRunner] java.lang.Exception: TestCase [accountcreation TestCase] failed without assertions

    12:49:08,773 ERROR [SoapUI] An error occurred [TestCase [accountcreation TestCase] failed without assertions
], see error log for details
org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused
    at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:290)
    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:149)
    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:121)
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:561)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:415)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
    at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport$Helper.execute(HttpClientSupport.java:233)
    at com.eviware.soapui.impl.wsdl.support.http.HttpClientSupport.execute(HttpClientSupport.java:323)
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.submitRequest(HttpClientRequestTransport.java:297)
    at com.eviware.soapui.impl.wsdl.submit.transports.http.HttpClientRequestTransport.sendRequest(HttpClientRequestTransport.java:227)
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.run(WsdlSubmit.java:119)
    at com.eviware.soapui.impl.wsdl.WsdlSubmit.submitRequest(WsdlSubmit.java:79)
    at com.eviware.soapui.impl.rest.RestRequest.submit(RestRequest.java:192)
    at com.eviware.soapui.impl.wsdl.teststeps.RestTestRequestStep.run(RestTestRequestStep.java:794)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:211)
    at com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:47)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:138)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:46)
    at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:128)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:363)
    at java.net.Socket.connect(Socket.java:589)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:123)
    at com.eviware.soapui.impl.wsdl.support.http.SoapUIMultiThreadedHttpConnectionManager$SoapUIClientConnectionOperator.openConnection(SoapUIMultiThreadedHttpConnectionManager.java:273)
    ... 24 more
java.lang.Exception: TestCase [accountcreation TestCase] failed without assertions

    at com.eviware.soapui.tools.SoapUITestCaseRunner.throwFailureException(SoapUITestCaseRunner.java:519)
    at com.eviware.soapui.tools.SoapUITestCaseRunner.runRunner(SoapUITestCaseRunner.java:435)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:202)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.run(AbstractSoapUIRunner.java:137)
    at com.eviware.soapui.tools.AbstractSoapUIRunner.runFromCommandLine(AbstractSoapUIRunner.java:112)
    at com.eviware.soapui.tools.SoapUITestCaseRunner.main(SoapUITestCaseRunner.java:122)

我是否需要将 SoapUI 下载到我试图从中运行 docker 容器的 VM 中的某个位置?另外,我在运行容器的虚拟机中没有 /opt/SoapUI 文件夹,这是我应该添加的吗?

【问题讨论】:

  • 你能检查一下soapui的这个docker镜像吗 - hub.docker.com/r/nmrao/soapui
  • 当我通过运行它检查图像时,我最终得到了与上面提到的相同的错误,即使在使用给我作者本人的相同 xml 项目之后也是如此。 github.com/ddavison/docker-soapui 这是 dockerfile 和项目的 github 链接。此外,[file:/tmp/soapui-project.xml] 是容器内复制项目的位置。

标签: docker centos virtual-machine soapui


【解决方案1】:

我不熟悉这种运行 SoapUI 项目的方式,但我认为您运行的似乎不是您认为正在运行的...

您的参数指向“Sample-REST-Project-soapui-project.xml”项目,但在输出中,它指出:

12:49:08,652 INFO  [WsdlProject] Loaded project from [file:/tmp/soapui-project.xml]

您还提供了参数http://localhost:3000/,我认为它是端点...?但是在输出中,您会收到错误消息

org.apache.http.conn.HttpHostConnectException: Connection to http://localhost:8080 refused

我认为它们应该是相同的?

【讨论】:

  • 我不确定为什么它说“从 [file:/tmp/soapui-project.xml] 加载项目”,但它确实抓住了我想要测试的正确项目,因为 SoapUITestCaseRunner 指向正确的项目。至于端点,我认为它正在尝试连接到localhost:8080,因为这是项目中给出的 URI 的一部分。所以,我认为它应该连接到 localhost:8080 来运行soapui测试
  • 我也遇到了同样的问题。你找到解决办法了吗?
猜你喜欢
  • 1970-01-01
  • 2020-04-22
  • 2020-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多