web-dev-qa-db-fra.com

Je reçois Java.net.SocketException: exception de réinitialisation de connexion lors de l'exécution d'un test de charge à l'aide de Jmeter

Je lance un test de charge sur la page de connexion de mon application pour 100 utilisateurs sur 100 20 utilisateurs passent 80 utilisateurs restants je reçois l'exception ci-dessous, veuillez m'aider avec le correctif

Java.net.SocketException: Connection reset
    at Java.net.SocketInputStream.read(Unknown Source)
    at Java.net.SocketInputStream.read(Unknown Source)
    at org.Apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.Java:166)
    at org.Apache.http.impl.io.SocketInputBuffer.fillBuffer(SocketInputBuffer.Java:90)
    at org.Apache.http.impl.io.AbstractSessionInputBuffer.readLine(AbstractSessionInputBuffer.Java:281)
    at org.Apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.Java:92)
    at org.Apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.Java:61)
    at org.Apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.Java:254)
    at org.Apache.http.impl.AbstractHttpClientConnection.receiveResponseHeader(AbstractHttpClientConnection.Java:289)
    at org.Apache.http.impl.conn.DefaultClientConnection.receiveResponseHeader(DefaultClientConnection.Java:252)
    at org.Apache.http.impl.conn.ManagedClientConnectionImpl.receiveResponseHeader(ManagedClientConnectionImpl.Java:191)
    at org.Apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.Java:300)
    at org.Apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.Java:127)
    at org.Apache.http.impl.client.DefaultRequestDirector.tryExecute(DefaultRequestDirector.Java:715)
    at org.Apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.Java:520)
    at org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:906)
    at org.Apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.Java:805)
    at org.Apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.Java:505)
    at org.Apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.Java:328)
    at org.Apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.Java:74)
    at org.Apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.Java:1141)
    at org.Apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.Java:1130)
    at org.Apache.jmeter.threads.JMeterThread.process_sampler(JMeterThread.Java:431)
    at org.Apache.jmeter.threads.JMeterThread.run(JMeterThread.Java:258)
    at Java.lang.Thread.run(Unknown Source)
10
Shreesh Srivastava

Je crois que vous êtes confronté au problème décrit dans Réinitialisation de la connexion depuis JMeter 2.10? page wiki JMeter. Si vous êtes complètement sûr que le comportement de votre application en cours de test est correct et que rien n'a besoin d'être réglé ou modifié du côté backend, vous pouvez configurer JMeter pour réessayer les connexions refusées et vérifier les connexions périmées:

  1. Remplacez "Implémentation" de tous vos échantillonneurs de requêtes HTTP par HttpClient4. La façon la plus simple de le faire est d'utiliser l'élément de configuration HTTP Request Defaults .
  2. Ajoutez les propriétés suivantes dans le fichier user.properties qui se trouvait dans le dossier/bin de votre installation JMeter:

    httpclient4.retrycount=1
    hc.parameters.file=hc.parameters
    
  3. Ajoutez la ligne suivante au hc.parameters fichier (même emplacement, dossier/bin de JMeter)

    http.connection.stalecheck$Boolean=true
    
  4. Redémarrez JMeter.

Votre problème de "réinitialisation de la connexion" devrait disparaître.

14
Dmitri T