1

我正在使用Jmeter 3.0進行負載測試API。我使用Maven-Jmeter插件來運行我的負載測試。目前使用com.lazerycode.jmeter插件版本2.0.3。 Test在我的本地機器上運行良好,但是當我通過Jenkins運行它時,我得到「非HTTP響應代碼:javax.net.ssl.SSLHandshakeException」。我已經搜索了幾乎所有在各種論壇上提出的建議,但錯誤並沒有解決。我錯過了什麼?任何幫助表示讚賞。在Jenkins上使用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問題,請將您的maven命令放在jenkins作業中的「Execute Shell」區域而不是「目標」區域。我還將命令更改爲「mvn -B -f ./pom.xml verify -s settings.xml」。

但是,在做了#1之後,我發現我的性能測試運行了兩次。所以我遵循瞭解決方案#2。

2)我在jenkins而不是maven項目中使用了自由式項目。我把這個命令放在「Execute shell」區域。我正在'cmd失敗'錯誤。這是由於老版本的maven被用在slave上。我指定了我想在奴隸上使用的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版本,看看它是否有幫助。

相關問題