说到接口我们都能想到jmeter这个工具,但是我们如何借助jenkins来做可持续集成自动化的测试呢?下面就是我对jenkins、maven、jmeter做的可持续化集成环境搭建的学习心得。
这一步就是录制Jmeter脚本,确保脚本能正确运行。
1,打开eclipse,点击File->New->Project->Maven Project
2,创建maven工程后,在工程目录下新建所需的文件夹
--Src/test/resources --存放报告模板文件
--src/main/
--src/test/jmeter --存放jmeter脚本文件跟一些接口调用的参数
--target/jmeter/bin --target存放结果的根目录
--target/jmeter/html
--target/jmeter/html1
--target/jmeter/lib
--target/jmeter/logs
--target/jmeter/results
--target/maven-archiver
--target/surefire
3,编辑pom.xml文件
4.0.0
interface.test
vet
0.0.1-SNAPSHOT
vet
http://maven.apache.org
junit
junit
3.8.1
test
javax.servlet
servlet-api
3.0-alpha-1
mysql
mysql-connector-java
5.1.13
${project.build.directory}\jmeter\results
${project.build.directory}\jmeter\html
${project.build.directory}\jmeter\html1
TestReport
Codehaus repository
http://repository.codehaus.org/
true
always
true
always
vet2
com.lazerycode.jmeter
jmeter-maven-plugin
2.1.0
xml
true
flase
test
verify
jmeter
maven-compiler-plugin
1.8
UTF-8
src\test\jmeter\lib
org.codehaus.mojo
xml-maven-plugin
1.0-beta-3
verify
transform
${jmeter.result.jtl.dir}
src\test\resources\jmeter-results-detail-report_21.xsl
${jmeter.result.html.dir}
html
${jmeter.result.jtl.dir}
src\test\resources\jmeter.results.shanhe.me.xsl
${jmeter.result.html.dir1}
html
org.apache.maven.plugins
maven-dependency-plugin
copy-dependencies
prepare-package
copy-dependencies
${project.build.directory}/jmeter/lib
false
false
true
org.apache.maven.plugins
maven-jar-plugin
true
lib/
theMainClass
maven-resources-plugin
copy-resources-html
compile
copy-resources
${project.build.directory}/jmeter/html
${basedir}/src/test/resources
true
maven-resources-plugin
copy-resources-lib
compile
copy-resources
${project.build.directory}/jmeter/lib/ext
${basedir}/src/test/lib
false
clean
4,调试工程,确保工程能正常运行
1,下载对应windows安装的jenkins
2,安装好jenkins后本地启动jenkins,进入插件管理界面,国内由于被墙了,所以需要配置一下。系统管理->管理插件->
高级->升级站点 中输入:http://updates.jenkins-ci.org/update-center.json 提交保存后,在地址栏输入
http://localhost:8080/restart重启,再次进入插件管理界面这时可选插件界面就会有内容了
3,需要安装的插件
Maven Integration plugin Maven插件
Performance plugin 性能报告插件
HTML Publisher plugin HTTP report插件
Git plugin GIT 插件
4,插件安装好后,就可以新建一个项目了,这里我们选择构建一个maven项目,名称为bluemoon
选择Git,输入Git服务器的URL地址,用户名跟密码
Build选项中输入pom.xml文件路径
添加构建后操作,增加一个Publish HTML reports,html directory to archive为转译后html文件的保存路径,
index pages 为转译后的文件名称,report title 为jenkins中显示的标题
构建后操作还可以添加邮件服务模块,就是构建成功后会发送邮件通知,这里就不举例了。
5,点击应用,保存。这时就可以点击立即构建来触发构建功能了
6,Console putput可以查看输入日志,方便构建时查看哪里出现的问题
7,构建成功后,我们就可以查看脚本运行后的结果,点击performace或function来查看
这里可以看到生成的html在jenkins使用html publisher查看报告时,发现显示不美观,不全的现象,很多东西显示不了
。
在查看官方文档后,这原来是安全问题所导致的。
Jenkins安全默认是将以下功能都关闭了
1、javascript 2、html上的内置插件 3、内置css或从其它站的css 4、从其它站的图处 5、AJAX
我的网页使用的是css,所以显示不全。
解决这个问题可以在jenkins系统管理中输入以下脚本运行,就可以解决这个问题了
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
四,最终效果
1、当我们jmeter脚本中要运用jdbc来连接数据库时,此时是需要jdbc驱动的,这里解决的办法就是在dependecy中增
加依赖,然后再把这个依赖包拷贝到target的lib库中,这样用于引用jdbc的jar包就放到了lib中,也就解决了找不到jdbc
驱动的问题
mysql
mysql-connector-java
5.1.13
org.apache.maven.plugins
maven-dependency-plugin
copy-dependencies
prepare-package
copy-dependencies
${project.build.directory}/jmeter/lib
false
false
true
org.apache.maven.plugins
maven-jar-plugin
true
lib/
theMainClass
2、如下图中,报告中有写图标是没有显示出来的,造成这个问题的原因是我们用jenkins持续集成时把把代码拷到target工程中没有把相应的图标拷贝过去,那么我们只
要把这个图标拷贝过去不就可以解决了吗?答案是肯定的。
把这两个图标文件一起放到工程中的src/test/resources目录下,再在pox中添加以下插件即可
这里我在pom文件中添加了一个插件,代码如下:
maven-resources-plugin
copy-resources
compile
copy-resources
${project.build.directory}/jmeter/html
${basedir}/src/test/resources
true
后面还遇到过其他坑,你如拷贝jar包后与原jar包md5不一致的问题,还有我们查看生成的html报告时不会出现没有Request跟Response内容的问题。具体的方法可以看我的另一篇文章,因为不想码字了所以直接放上连接:https://testerhome.com/topics/9010