2017-09-19 48 views
1

최근에 타사 서비스를 테스트 할 성능 스크립트를 작성하고 있습니다.Jmeter java.net.SocketException : 연결 재설정 (매개 변수 변경 후)

테스트는 매우 간단하며 각 스레드는 하나의 요청을 POST해야합니다. 스레드의 수 - 100, 램프 업 - (680)의

활성 스레드의 최대 수를 실행하면 JMeter를 3.2 버전을 사용하여 12 난`이지만, 또한 2.1에 시도하는 동안.

불행히도 java.net.SocketException : 20-30 % 요청에 대한 연결 재설정 오류가 발생합니다. 게시물 마지막에 전체 오류가 발생했습니다.

이미 비슷한 주제 (예 : I m getting java.net.SocketException: Connection reset exception while running a load test using Jmeter)에서 언급 된 속성이 변경되었습니다.

는 내가 추가 한 : HTTPClient4 모두 시간 제한이 120000로 설정 :

httpclient4.retrycount=1 
hc.parameters.file=hc.parameters 

나는 또한에 고급 탭에서 HTTP 요청 샘플러 기본값을 변경 한

http.socket.timeout$Integer=120000 (such big value is set just for test reasons ;)) 
http.connection.stalecheck$Boolean=true in hc.parameters 

httpclient.timeout=1200000 
httpclient4.idletimeout=1200000 (same as previous) in jmeter.properties 

사용자 속성에.

참고 : 너무 큰 테스트 시간 초과는 일부 요청이 서비스 측 (심지어 10 분)에 걸릴 수있는 시간과 관련이 있습니다.

불행히도 이러한 모든 변화가 있은 후에도 분석에 대한 답변이 없기 때문에 나는이 오류와 서비스 책임자를 얻고 있습니다.

전체 오류 :

java.net.SocketException: Connection reset; 
    at java.net.SocketInputStream.read(Unknown Source); 
    at java.net.SocketInputStream.read(Unknown Source); 
    at sun.security.ssl.InputRecord.readFully(Unknown Source); 
    at sun.security.ssl.InputRecord.read(Unknown Source); 
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source); 
    at sun.security.ssl.SSLSocketImpl.readDataRecord(Unknown Source); 
    at sun.security.ssl.AppInputStream.read(Unknown Source); 
    at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:158); 
    at org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:82; 
    at org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:271); 
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138); 
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56); 
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259); 
    at org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281); 
    at org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:257); 
    at org.apache.jmeter.protocol.http.sampler.hc.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.java:199); 
    at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.receiveResponseHeader(MeasuringConnectionManager.java:212); 
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273); 
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125); 
    at org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:684); 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:486); 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:835); 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83); 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:654); 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:413); 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74); 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1189); 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1178); 
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:491); 
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:425); 
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:254); 
    at java.lang.Thread.run(Unknown Source); 
+0

10 개의 스레드가있는 오류가 발생하지 않으십니까? – user7294900

+0

10 개의 스레드로 테스트하지 않았지만 실행중인 라이브를보고있는 동안 (10 개 미만의 스레드가 활성화되어 있어도 콘솔 (비 GUI 모드) 오류에 대한 부분 보고서가 나타남) –

+0

답변에 대한 의견이 있으십니까? 괜찮 으면 받아 들여 져야하고 다른 사람에게 도움이되도록 upvoted해야합니다. 감사합니다 –

답변

0

먼저 사용 JMeter를 3.2 버전.

그런 다음 수동으로 웹 사이트를 수동으로 시도하십시오. 올바르게 작동합니까?

그렇다면 1 스레드로 JMeter를 실행하고 연결 재설정이 발생하면 브라우저가 어떤 작업을 수행하는지 확인하십시오. 이 경우 기록하고 다시 시도하십시오.

많은 사용자에게만 발생하는 경우 서버가 문제 또는 잘못된 구성으로 인해 연결을 거부합니다.

+0

답장은 Thx입니다. 그것은 단지 webservice지만, 예를 들어 우편 배달부를 통해 확인 작동합니다. 요청을 하나씩 보내면 이러한 오류가 표시되지 않습니다. 두 개 이상의 스레드가 활성화되어 있으면 문제가 발생합니다. 내가 관찰 할 수있는 것은 연결이 리셋되었을 때 현재 모든 활성 스레드가 즉시이 오류를 얻는 것입니다. 요청/응답 세부 사항에서 "바이트 크기"속성이 0 인 경우를 볼 수 있습니다. 그 이유는 내 측면에서 문제가 아닌지 확실하지 않은 이유입니다. –

+0

그래서 서버 문제가 더 많이 보입니다. –