2017-09-19 4 views
1

Récemment, je travaille sur un script de performance qui testera le service tiers.jmeter java.net.SocketException: réinitialisation de la connexion (après modification des paramètres)

Test est très simple, chaque thread doit poster une demande. Nombre de sujets - 100, Ramp Up - 680 s

Lors de l'exécution nombre maximum de threads actifs est 12. `m en utilisant Jmeter version 3.2, mais aussi essayé sur 2.1.

Malheureusement, je suis obtenir java.net.SocketException: Erreur de réinitialisation de connexion pour les demandes de 20-30%. Erreur complète à la fin de la publication.

déjà passe modifier les propriétés mentionnées dans de nombreux sujets similaires ici (par exemple: I m getting java.net.SocketException: Connection reset exception while running a load test using Jmeter).

J'ai ajouté:

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

dans les propriétés utilisateur

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 

J'ai également changé les valeurs par défaut HTTP Request Sampler dans l'onglet Avancé pour: HTTPClient4 et les délais d'attente fixés à 120000.

Note: si grand délais d'attente de test sont liés au temps que certains de la demande peut prendre du côté de service (même 10 minutes).

Malheureusement, après tous ces changements, je m `encore obtenir cette erreur et les responsables du service, après analyse a répondu qu'il n'y a rien de leur côté.

erreur complète:

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

avec 10 threads aucune erreur ne se produit? – user7294900

+0

N'a pas testé avec 10 threads, mais en regardant l'exécution en direct (les rapports partiels sur la console (mode non-GUI) sont apparus même quand moins de 10 threads étaient actifs) –

+0

Des commentaires sur la réponse? Si tout va bien, il devrait être accepté et upvoted afin qu'il soit utile aux autres. merci –

Répondre

0

Première utilisation JMeter version 3.2.

Ensuite, essayez d'abord manuellement le site Web, cela fonctionne-t-il correctement?

Si oui, exécutez JMeter avec 1 fil et vérifier, en cas de réinitialisation de connexion se produit, alors vous plus ne se reproduisent pas probablement identique quel navigateur fait. Dans ce cas, enregistrez et réessayez.

Si cela se produit uniquement avec de nombreux utilisateurs, votre serveur rejette la connexion soit en raison d'un problème ou une mauvaise configuration.

+0

Thx pour répondre. C'est seulement webservice, mais le vérifier via un facteur par exemple fonctionne bien. Envoyer des demandes une par une ne montre pas de telles erreurs. Un problème se produit lorsque plus d'un thread est actif. Ce que je peux observer est quand la connexion est réinitialisée, tous les threads actuellement actifs obtiennent cette erreur immédiatement. Dans les détails de la demande/réponse, je peux voir que la propriété "Taille en octets" est 0 pour les cas c'est pourquoi je ne suis pas sûr si ce n'est pas un problème de mon côté. –

+0

donc il ressemble plus à un problème de serveur –