1

我的设置:TestNG 6.9.10 - Java 1.8 - Eclipse Mars.1 Release (4.5.1) Windows 10

每次我运行 TestNG 测试套件时,都会出现以下错误:

java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
    at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source)
    at java.io.ObjectOutputStream.<init>(Unknown Source)
    at org.testng.remote.strprotocol.SerializedMessageSender.sendMessage(SerializedMessageSender.java:24)
    at org.testng.remote.strprotocol.MessageHub.sendMessage(MessageHub.java:43)
    at org.testng.remote.RemoteTestNG$RemoteSuiteListener.onStart(RemoteTestNG.java:257)
    at org.testng.SuiteRunner.invokeListeners(SuiteRunner.java:208)
    at org.testng.SuiteRunner.run(SuiteRunner.java:266)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1244)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1169)
    at org.testng.TestNG.run(TestNG.java:1064)
    at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:113)
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:177)

即使我的测试类是空的:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;

public class sample {

    public WebDriver driver;


    @Test
    public void f() {
    }

    @BeforeTest
    public void beforeTest() {
        driver = new FirefoxDriver();
        driver.get("http://localhost:8081/login.html?profile=desktop");
    }

    @AfterTest
    public void afterTest() {
        driver.close();
    }

}

测试正在运行,所以它不会干扰测试用例,但我真的很想了解并删除这个异常。

谢谢你的任何想法。

4

1 回答 1

-1

我在想在 WebDriver 的某个地方,使用了 java.net。您的本地主机网络服务器正在关闭套接字或它过早关闭。不要使用之前和之后的测试,而是尝试将其全部写入一个测试方法并进行调试。不幸的是,堆栈跟踪中没有提到您的类,以查明导致问题的调用。

逐步执行以下操作,查看引发异常的位置。如果它在 driver.get 调用中,那么您的 http 服务器可能会拒绝连接。如果它在 close() 处被抛出,则连接已经被丢弃(可能被服务器拒绝)。

@Test
public void test() {
    driver = new FirefoxDriver();
    driver.get("http://localhost:8081/login.html?profile=desktop");
    driver.close();
}
于 2015-12-16T08:20:28.327 回答