51Testing软件测试论坛

标题: Jenkins+maven+jmeter 接口可持续集成自动化测试 [打印本页]

作者: 八戒你干嘛    时间: 2017-6-22 14:03
标题: Jenkins+maven+jmeter 接口可持续集成自动化测试
说到接口我们都能想到jmeter这个工具,但是我们如何借助jenkins来做可持续集成自动化的测试呢?下面就是我对jenkins、maven、jmeter做的可持续化集成环境搭建的学习心得。
一,jmeter脚本录制
这一步就是录制Jmeter脚本,确保脚本能正确运行。
二,建立一个maven工程
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,调试工程,确保工程能正常运行
三,安装jenkins跟一些必要的插件
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
驱动的问题
   
  1.     <dependency>
  2.         <groupId>mysql</groupId>
  3.         <artifactId>mysql-connector-java</artifactId>
  4.         <version>5.1.13</version>
  5.    </dependency>
  6. <plugin>
  7.             <groupId>org.apache.maven.plugins</groupId>
  8.             <artifactId>maven-dependency-plugin</artifactId>
  9.             <executions>
  10.                 <execution>
  11.                     <id>copy-dependencies</id>
  12.                     <phase>prepare-package</phase>
  13.                     <goals>
  14.                         <goal>copy-dependencies</goal>
  15.                     </goals>
  16.                     <configuration>
  17.                         <outputDirectory>${project.build.directory}/jmeter/lib</outputDirectory>
  18.                         <overWriteReleases>false</overWriteReleases>
  19.                         <overWriteSnapshots>false</overWriteSnapshots>
  20.                         <overWriteIfNewer>true</overWriteIfNewer>
  21.                     </configuration>
  22.                 </execution>
  23.             </executions>
  24.         </plugin>
  25.         <plugin>
  26.             <groupId>org.apache.maven.plugins</groupId>
  27.             <artifactId>maven-jar-plugin</artifactId>
  28.             <configuration>
  29.                 <archive>
  30.                     <manifest>
  31.                         <addClasspath>true</addClasspath>
  32.                         <classpathPrefix>lib/</classpathPrefix>
  33.                         <mainClass>theMainClass</mainClass>
  34.                     </manifest>
  35.                 </archive>
  36.             </configuration>
  37.         </plugin>

复制代码
2、如下图中,报告中有写图标是没有显示出来的,造成这个问题的原因是我们用jenkins持续集成时把把代码拷到target工程中没有把相应的图标拷贝过去,那么我们只
要把这个图标拷贝过去不就可以解决了吗?答案是肯定的。



这里我在pom文件中添加了一个插件,代码如下:     
  1.           <plugin>
  2.     <artifactId>maven-resources-plugin</artifactId>
  3.     <executions>
  4.         <execution>
  5.             <id>copy-resources</id>
  6.             <phase>compile</phase>
  7.             <goals>
  8.                 <goal>copy-resources</goal>
  9.             </goals>
  10.             <configuration>
  11.                 <!-- test可以在环境变量中定义,也可以将下面写成绝对地址 -->
  12.                 <outputDirectory>${project.build.directory}/jmeter/html</outputDirectory>
  13.                 <resources>
  14.                     <resource>
  15.                         <!-- basedir标识所有工程 -->
  16.                         <directory>${basedir}/src/test/resources</directory>
  17.                         <filtering>true</filtering>
  18.                     </resource>
  19.                 </resources>
  20.             </configuration>
  21.         </execution>
  22.     </executions>
  23. </plugin>
复制代码


作者: 悠悠小仙仙    时间: 2017-6-22 14:13
很详细!赞!
作者: 八戒你干嘛    时间: 2017-6-22 14:14
悠悠小仙仙 发表于 2017-6-22 14:13
很详细!赞!

谢谢支持
作者: kernel218    时间: 2017-6-24 15:30
谢谢分享。。。。。很赞




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2