| | 1 | 计划在开发bbs7的时候,能够把性能测试也集成到持续集成环境hudson里面来,在hudson构建完成项目后,自动地性能测试一把.[[BR]] |
| | 2 | |
| | 3 | 在网上查找了一些资料后,发现有一个开源的java项目——jmeter。比较适合我们的项目来做性能测试。[[BR]] |
| | 4 | |
| | 5 | 于是鼓捣了两天,过程很曲折,但也总算把环境搭建起来了。下面简单总结一下,搭建的过程. |
| | 6 | |
| | 7 | 首先,去jmeter官方网站:http://jmeter.apache.org/download_jmeter.cgi |
| | 8 | |
| | 9 | 下载jmeter.虽然公司服务器是linux,但还是建议把 |
| | 10 | windows和linux版都下载下来. |
| | 11 | |
| | 12 | 网上有较多的关于jmeter的入门级教程,可以先搜下,了解下,jmeter的一些概念。如,测试计划,线程组,监听器等等。 |
| | 13 | 我就不婆妈了,此处略去1万字... |
| | 14 | |
| | 15 | 然后,怎么搞这个环境呢?大致分为以下几个步聚:[[BR]] |
| | 16 | |
| | 17 | 1,应该要有一台可以跑bbs7项目的机器,然后把本地的bbs7打包后上传上去,在机器上布署bbs7,布署完后,检查下项目能否正常启动。[[BR]] |
| | 18 | |
| | 19 | 2,接下来在hudson上,将bbs7集成进来。[[BR]] |
| | 20 | |
| | 21 | 3,在hudson上添加构建命令驱动jmeter压力测试.[[BR]] |
| | 22 | |
| | 23 | |
| | 24 | 公司两台开发机.dev11(192.168.75.11)和dev12(192.168.75.12),我查看了一下,dev11这台机己经布署了一些日常开发的应用,[[BR]] |
| | 25 | |
| | 26 | 但没有bbs7,dev12布署了hudson。为了压力测试时不互相干扰,把bbs7,安装在dev11机器上.把jmeter安装在dev12上。 |
| | 27 | |
| | 28 | 按照步骤,先在dev11上布署了本地打包的bbs7包,配置resin,启动脚本之类,云云。。。此处省略一万字。最后启动,OK,没问题.[[BR]] |
| | 29 | |
| | 30 | 接着,第二步.发现我的同事秦鸿源己经把bbs7 maven项目添加到了hudson上了,只是在maven构建完后,不能自动将代码更新到dev11这台机上.[[BR]] |
| | 31 | |
| | 32 | 可以在dev12这台机上ssh一个dev11机器上的脚本,这个脚本的作用是从dev12这台机串上获取最新的代码,像这样:[[BR]] |
| | 33 | |
| | 34 | ssh root@192.168.75.11 /data/hudson_script/bbs7.sh [[BR]] |
| | 35 | |
| | 36 | 在dev11机器编写脚本 /data/hudson_script/bbs7.sh,代码如下: |
| | 37 | {{{ |
| | 38 | #!/bin/bash |
| | 39 | |
| | 40 | JAVA_HOME=/usr/java/jdk1.6.0_18/bin |
| | 41 | WARPLACE=/data/.hudson/jobs/bbs7/workspace/target |
| | 42 | WAR=$WARPLACE/webapp.war |
| | 43 | STATICZIP=$WARPLACE/webapp-statics.zip |
| | 44 | |
| | 45 | /etc/init.d/resind_bbs7 stop |
| | 46 | rm -rf /data/web/bbs7/* |
| | 47 | expect -c " |
| | 48 | spawn scp -p root@192.168.75.12:$WAR /data/web/bbs7.war |
| | 49 | expect { |
| | 50 | \"*assword\" {set timeout 300; send \"pconline\r\";} |
| | 51 | \"yes/no\" {send \"yes\r\"; exp_continue;} |
| | 52 | } |
| | 53 | spawn scp -p root@192.168.75.12:$STATICZIP /data/web/bbs7 |
| | 54 | expect { |
| | 55 | \"*assword\" {set timeout 300; send \"pconline\r\";} |
| | 56 | \"yes/no\" {send \"yes\r\"; exp_continue;} |
| | 57 | } |
| | 58 | expect eof" |
| | 59 | |
| | 60 | cd /data/web |
| | 61 | unzip -o bbs7.war -d /data/web/bbs7 |
| | 62 | cd /data |
| | 63 | cd /data/web/bbs7 |
| | 64 | sed -i 's/localhost\.pconline\.com\.cn/dev11\.pconline\.com\.cn:9099/g' /data/web/bbs7/WEB-INF/view/*.jsp |
| | 65 | |
| | 66 | unzip -o /data/web/bbs7/webapp-statics.zip -d /data/PRG/resin-3.1.8_bbs7/conf |
| | 67 | /etc/init.d/memcached_bbs7 restart |
| | 68 | /etc/init.d/resind_bbs7 start |
| | 69 | }}} |
| | 70 | |
| | 71 | 保存后,再回到dev12进入hudson,地址:http://192.168.75.12:8080/hudson-2.1.2/ |