linux下jmeter测试tomcat,用jmeter测试https应用   (zhuan)

tomcat上已经配置好了axis,通过http访问soap消息是没有问题了。但是还没有配置https,所以按着官方文档开始干活了。首先用keytool生成服务器段的keystore:

keytool

-genkey -alias tomcat -keystore ktomcat.keystore

注意,alias的密码要与keystore的密码一致,tomcat文档上是这么说的。接着是修改了server.xml:

port="8443"

protocol="HTTP/1.1" minSpareThreads="5" maxSpareThreads="75"

enableLookups="true"

disableUploadTimeout="true"

acceptCount="100" maxThreads="200"

scheme="https"

secure="true" SSLEnabled="true"

keystoreFile="ktomcat.keystore"

keystorePass="changeit"

clientAuth="false"

sslProtocol="TLS"/>

重启tomcat之后,输入https://localhost:8443进行验证(注意是8443哦,我一开始居然傻乎乎的输入8080^_^)

接着设置客户端的trustStore,jmeter需要它来信任tomcat服务器段的证书

keytool

-export -alias tomcat -keystore ktomcat.keystore -file

tomcat.crt

keytool -import -alias tomcat -file tomcat.crt -keystore

tclient.keystore

tomcat上的https配置成功之后,就开始jmeter的配置了,默认情况下用jmeter是不可以访问我们配置的https应用的,不过却可以访问像google等网站上的https应用,原因很简单,我们自己生成的证书是不被信任的。jmeter的官方网站有一个很大的陷阱,上面说只要修改jmeter.properties参数,将SSL

Configuration部分内的注释去掉就可以了,如下

#---------------------------------------------------------------------------

# SSL configuration

#---------------------------------------------------------------------------

#Classname

of the ssl provider to be used (to enable testing of https

urls)

#And the package name where Stream Handlers can be found

#These provided defaults can be uncommented, and they will work if

you are using

#Sun's JSSE implementation.

ssl.provider=com.sun.net.ssl.internal.ssl.Provider

ssl.pkgs=com.sun.net.ssl.internal.www.protocol

#The

location of the truststore (trusted certificates) and keystore ( if

other than the default.

#you can uncomment this and change the path to the correct

location.

javax.net.ssl.trustStore=/home/flyerhzm/software/jakarta-jmeter-2.2/tclient.keystore

javax.net.ssl.keyStore=/home/flyerhzm/software/jakarta-jmeter-2.2/kclient.keystore

#The

password to your keystore

javax.net.ssl.keyStorePassword=changeit

不过结果还是失败,尝试了好多次,总是报SSLHandshakeException。如果是通过浏览器访问的话,浏览器都会提醒你对方的证书不合法,是否要信任它,但是java是不会询问你,而是直接抛出异常。但是如果设置了trustStore的话,就会信任对方的证书啦,太奇怪了。

google了一下有关SSLHandshakeException,网上有说可以用-D方式添加应用参数,于是打开了jmter启动文件,修改最后一句话为:

java $JVM_ARGS $ARGS -jar `dirname $0`/ApacheJMeter.jar-Djavax.net.ssl.trustStore=/home/flyerhzm/software/jakarta-jmeter-2.2/tclient.keystore

-Djavx.net.ssl.trustStorePassword=changeit"$@"

居然成功了,呵呵。可恶,配置文件jmeter.properties居然不起作用,害我辛苦到现在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值