testNG 및 java http 클라이언트를 사용하여 API에 대한 빠른로드 테스트를 작성하고 있습니다. 내 스레드가 예상보다 차단되는 것 같아서 http 클라이언트가 내가 생각하는대로하고 있는지 확인하고 싶다. 내 기본적인 의사 코드 Java HTTP 클라이언트 및 스레드
class 1
@test method{
some junk
myHttpWrapper my = new myHttpWrapper()
}
class 2
public myHttpWrapper{
HttpClient client = new DefaultHttpClient();
bunch of packaging up a post params
HttpResponse response = client.execute(post);
}
그래서 내가 120 개 스레드 내 @Test 5000 번 실행 TestNG의 말씀입니다. 자바 콘솔에서 많은 블로킹 스레드를 볼 수 있습니다. 이것은 내 코드가 아니라 본질적으로 내가하는 일의 흐름입니다. 각 스레드 testNG 내 테스트에 대한 또한 별도의 HTTP 클라이언트를 생성하는 spawn 예상합니다. 그렇다면 모든 스레드가 차단됩니다. 여기
는 jconsole의에서와 같이 블록에서 전형적인 스레드 스택입니다 :
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:149)
org.apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.java:110)
org.apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.java:264)
org.apache.http.impl.conn.LoggingSessionInputBuffer.readLine(LoggingSessionInputBuffer.java:115)
org.apache.http.impl.conn.DefaultResponseParser.parseHead(DefaultResponseParser.java:98)
org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:252)
org.apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.java:281)
org.apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.java:247)
org.apache.http.impl.conn.AbstractClientConnAdapter.receiveResponseHeader(AbstractClientConnAdapter.java:219)
org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:298)
org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
org.apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.java:645)
org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:464)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:820)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:754)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:732)
ss.qa.test_files.HTTP_Methods.sendPost(HTTP_Methods.java:91)
ss.qa.test_files.apiHelper.ActivateCoupon(apiHelper.java:376)
ss.qa.test_scripts.myPerfTest.ActivateCoupon(BACPerfTest.java:85)
대부분 Mac에서 실행됩니다. 사용 된 연결을 모니터하는 방법이 있습니까? 만약 내가 한도 내 버그/문제가 내 코드 – ducati1212
@ ducati1212만큼 컴퓨터 한도 치고있어 괜찮아요 OS X은 훨씬 더 그런 것들에 대해 관대 같습니다. 연결의 수를 제한하는 내장 된 방화벽에 문제가있는 것처럼 보이지만이를 확인하는 방법이나 구성 할 수 있는지 여부는 알 수 없습니다. 내 생각에 네가 교수에게이 특별한 요인에 대해 물어볼지도 모른다. –