TestNG-java.net.SocketException

TestNG-java.net.SocketException,java,testng,testng-eclipse,Java,Testng,Testng Eclipse,我的设置: TestNG 6.9.10-Java1.8-EclipseMars.1发行版(4.5.1) 视窗10 每次运行TestNG测试套件时,我都会出现以下错误: java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOu

我的设置: TestNG 6.9.10-Java1.8-EclipseMars.1发行版(4.5.1) 视窗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)
测试正在运行,所以它不会干扰测试用例,但是我真的很想理解并删除这个异常


谢谢你的建议。

我想在WebDriver的某个地方使用java.net。您的localhost Web服务器正在关闭套接字或已提前关闭。不要使用测试前和测试后,而是尝试在一个测试方法中编写所有内容并进行调试。不幸的是,在堆栈跟踪中没有提到您的类来确定是哪个调用导致了问题

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


也许你们可以在主题中找到答案,这里有几个建议我试着按照你们的建议调试每一步:我删除了Before和After方法,并复制了方法中的3行。但是异常是在调用方法之前引发的,所以我真的不知道发生了什么。
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();
    }

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