环境准备
名称 | 作用 |
---|---|
Git 2.2 | 代码同步,用于其他人协同编写代码 |
TortoiseGit-2.8.0.0-64bit | 管理Git 的图形化小工具 |
Java1.8 | JVM 运行环境,不介绍 |
Eclipse-jee-2019-06-R-win32-x86_64 | Java编辑器,不介绍 |
Maven3.2.5 | jar包版本控制,Jmeter执行流程 |
JMeter5 | Jmeter 不用介绍了吧! |
Jenkins2.2 | 用于自动化各种任务,包括构建、测试和部署软件 |
Windows 10 | 我用的操作系统是 win10,需要可连接外网 |
PS:所有软件包已将上传至百度云,你们要是没有,可以用我的,还有我的测试代码也在一起呢!
链接:https://pan.baidu.com/s/111xQSFXJULRcfJ7IEWEaXA
提取码:uwlu
准备环境:
名称 | 版本 |
---|---|
JMeter | 5.0+ |
Java | 1.8+ |
Maven | 3.2+ |
Eclipse | jee版 |
软件安装包,我的百度盘里面都有,第一次配置的情况下建议还是和我使用一致的版本,不然很有可能出现未知错误,影响学习体验。
step_1 准备 JMeter
就是使用 JMeter 去编写一个JMX 的脚本,配置文件,参数化什么的都可以参照:Jmeter 搭建一个web测试环境
写完了,拿着JMeter生成的JMX文件、还有参数文件,保存备用。
step_2 创建 maven 工程
File → New → Other (我这里有 Maven Project 可以直接点,但我我担心其他的没有这个选项。)
Wizards输入:Maven → 选择Maven Project → Next
选择 Use default Work space location (使用默认工作空间地址) → Next
选择 maven-archetype-webapp(一个模板,随意选了,无所谓) → Next
Group Id:随意→Artifact id :Jmeter_test_demo → Finish
PS: 新建工程后,Main 文件夹下面有一个 JSP文件报错,不用管它,直接删除就行了
step_3 创建 JMeter 运行环境
- 新建src/test/jmeter 文件夹
- 存放 jmx 文件和JMeter 的配置文件
- 新建src/test/resources 文件夹
- 存放 模板文件 在 JMeter 的extras文件夹里面有有两个,百度上还有很多我不管了,用哪个你们随意。
关键很简单的,难度最大的是 test.jmx 文件,下面才是这个项目的关键,pom.xml maven 的配置文件
step_3 创建 JMeter 运行环境
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mavenjmeter</groupId>
<artifactId>maven3jmeter</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>maven3jmeter</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jmeter.result.jtl.dir>
${project.build.directory}\jmeter\results
</jmeter.result.jtl.dir>
<jmeter.result.html.dir>
${project.build.directory}\jmeter\html
</jmeter.result.html.dir>
<jmeter.result.html.dir1>
${project.build.directory}\jmeter\html1
</jmeter.result.html.dir1>
<ReportName>TestReport</ReportName>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.lazerycode.jmeter</groupId>
<artifactId>jmeter-maven-plugin</artifactId>
<version>2.9.0</version>
<configuration>
<!-- 设置 jmeter 生成结果文件格式
注意:JMeter只支持在结果文件格式为CSV的情况下生成报表。
因此,启用<generateReports>true</generateReports>将导致您的结果文件格式自动更改为CSV格式,
所以 <resultsFileFormat>jtl</resultsFileFormat> 无效。
即使您已经显式地将其设置为XMLFormat!
如果想要 resultsFileFormat 结果是 jtl 文件 就不能 生成测试报告
配置网址:https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/wiki/Advanced-Configuration
-->
<resultsFileFormat>jtl</resultsFileFormat>
<!-- 指定 jmeter 是否生成 测试报告 -->
<generateReports>false</generateReports>
<!-- 设置忽略失败是否停止运行 -->
<ignoreResultFailures>false</ignoreResultFailures>
<!-- 设置结果是否有时间戳 -->
<testResultsTimestamp>false</testResultsTimestamp>
<testFilesIncluded>
<!-- // 指定运行的 jmeter 脚本 -->
<jMeterTestFile>test.jmx</jMeterTestFile>
<!-- 指定 jtl 生成目录 -->
<resultsDirectory>${jmeter.result.jtl.dir}</resultsDirectory>
</testFilesIncluded>
</configuration>
<executions>
<execution>
<id>jmeter-tests</id>
<phase>verify</phase>
<goals>
<goal>jmeter</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!-- 根据 xsl 模版把 jtl 文件转换成 html ,官网地址: http://www.mojohaus.org/xml-maven-plugin/examples/transform-saxon.html -->
<groupId>org.codehaus.mojo</groupId>
<artifactId>xml-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>transform</goal>
</goals>
</execution>
</executions>
<configuration>
<transformationSets>
<transformationSet>
<!-- jtl 文件生成的路径 -->
<dir>${jmeter.result.jtl.dir}</dir>
<!-- 指定模板的位置,用这个文件,生成什么样的报告模板 -->
<stylesheet>src\test\resources\jmeter-results-detail-report_21.xsl</stylesheet>
<!-- 报告生成后输出的位置 -->
<outputDir>${jmeter.result.html.dir}</outputDir>
<fileMappers>
<fileMapper
implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
<targetExtension>html</targetExtension>
</fileMapper>
</fileMappers>
</transformationSet>
<transformationSet>
<dir>${jmeter.result.jtl.dir}</dir>
<stylesheet>src\test\resources\jmeter-results-detail-report_30.xsl</stylesheet>
<outputDir>${jmeter.result.html.dir1}</outputDir>
<fileMappers>
<fileMapper
implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
<targetExtension>html</targetExtension>
</fileMapper>
</fileMappers>
</transformationSet>
</transformationSets>
</configuration>
<!-- using XSLT 2.0 -->
<dependencies>
<dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>saxon</artifactId>
<version>8.7</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
</project>
一定要看清楚注释的,否则出问题了,都不知道怎么出的。
还有这个异常,是因为target 下面没有jmeter\results 路径
step_4 测试运行环境
右键项目 → Run As → Maven Build… (后面有三个点)
在 Gorify 输入:verify → Run
出现我红框圈这的就代表成功了,两个HTML 文件夹 要多等一会才会出来。
好啦,做到这里就基本完成,Jenkins 其实就很简单了,就是点点点操作。