1

Jmeter 3.0を負荷テストAPIに使用しています。私は私の負荷テストを実行するためにMaven-Jmeterプラグインを使用しています。現在、com.lazerycode.jmeterプラグインバージョン2.0.3を使用しています。テストは私のローカルマシンで正常に動作しますが、Jenkins経由で実行すると、「HTTPレスポンスコード以外:javax.net.ssl.SSLHandshakeException」が表示されます。私はグーグルで、さまざまなフォーラムで提案されているものすべてを試しましたが、エラーは起こりません。私は何が欠けていますか?どんな助けもありがとうございます。ジェンキンスのMaven-jmeterプラグインを使用した負荷テストでは、「HTTPレスポンスコード以外:javax.net.ssl.SSLHandshakeException」が返されます。

下記のエラースタックを参照してください。

httpSample t="1069" it="0" lt="0" ts="1485212600015" s="false" lb="ServiceProxy:TC#1: GET- Health Check For Proxy Service" **rc="Non HTTP response code: javax.net.ssl.SSLHandshakeException" rm="Non HTTP response message: Received fatal alert: handshake_failure"** tn="Service Proxy Regression Test Plan 1-1" dt="text" by="2566" ng="1" na="1"> 

****** received : [[[Non HTTP response code: javax.net.ssl.SSLHandshakeException]]] 

****** comparison: [[[200              ]]] 

class="java.lang.String">javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure 
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) 
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:154) 
    at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1979) 
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1086) 
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1359) 
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1343) 
    at org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:573) 
    at org.apache.http.conn.ssl.SSLSocketFactory.createLayeredSocket(SSLSocketFactory.java:447) 
    at org.apache.jmeter.protocol.http.sampler.LazySchemeSocketFactory.createLayeredSocket(LazySchemeSocketFactory.java:121) 
    at org.apache.http.impl.conn.DefaultClientConnectionOperator.updateSecureConnection(DefaultClientConnectionOperator.java:219) 
    at org.apache.http.impl.conn.ManagedClientConnectionImpl.layerProtocol(ManagedClientConnectionImpl.java:421) 
    at org.apache.jmeter.protocol.http.sampler.MeasuringConnectionManager$MeasuredConnection.layerProtocol(MeasuringConnectionManager.java:152) 
    at org.apache.http.impl.client.DefaultRequestDirector.establishRoute(DefaultRequestDirector.java:815) 
    at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:616) 
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:447) 
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:884) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.executeRequest(HTTPHC4Impl.java:619) 
    at org.apache.jmeter.protocol.http.sampler.HTTPHC4Impl.sample(HTTPHC4Impl.java:379) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy.sample(HTTPSamplerProxy.java:74) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1146) 
    at org.apache.jmeter.protocol.http.sampler.HTTPSamplerBase.sample(HTTPSamplerBase.java:1135) 
    at org.apache.jmeter.threads.JMeterThread.executeSamplePackage(JMeterThread.java:465) 
    at org.apache.jmeter.threads.JMeterThread.processSampler(JMeterThread.java:410) 
    at org.apache.jmeter.threads.JMeterThread.run(JMeterThread.java:241) 
    at java.lang.Thread.run(Thread.java:745) 

...

+0

どのようにあなたはジェンキンスを実行していますか? Windowsサービスとして?はいの場合、私は問題に直面していました。 'tomcat'などの任意のサーバーでJenkinsを実行することをお勧めします.http://stackoverflow.com/questions/41163291/how-to-run-selenium-tests-using-testng-framework-and-jenkins –

答えて

1

私はこの問題を解決できました。ここに解決策があります:

1)私はmaven-jmeterプラグインとmaven-jmeter解析プラグインを使用しています。簡単に言うと、mavenプロジェクトを介してjmeterを実行します。 SSLHandshakeExceptionの問題を解決するには、jenkinsジョブの "Goal"領域ではなく、 "Execute Shell"領域にmavenコマンドを置きます。また、コマンドを "mvn -B -f ./pom.xml verify -s settings.xml"に変更しました。

#1を実行した後、パフォーマンステストが2回実行されていました。だから私は解決策#2に従った。

2)私はmavenプロジェクトの代わりにjenkinsでフリースタイルプロジェクトを使用しました。私は "Execute shell"領域にコマンドを置きます。私は「cmd失敗」エラーを受けていました。これは古いバージョンのmavenがスレーブ上で使用されていたためです。私はスレーブで使用したいmavenの正確なバージョンを指定していて、うまくいきました。ここで

は、それがどのように見えるかです:

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 
export PATH=$JAVA_HOME/bin:$PATH 
export http_proxy=http://example.com:8080 
export HTTP_PROXY=http://example.com:8080 
export https_proxy=http://example.com:8080 
export HTTPS_PROXY=http://example.com:8080 


/usr/share/maven-3.3.9/bin/mvn -B -f ./pom.xml verify -s settings.xml -DSERVICE_P_NUM_OF_USERS=1 -DSERVICE_P_RAMP_UP_TIME=1 
0

私はこのエラーを見てきました。それから私は、エラーがJenkins-slaveのjavaバージョンに起因していることを理解しました。 Javaバージョンをアップグレードし、役立つかどうか確認してください。

関連する問題