jenkins+jmeter+maven接口自动化测试框架搭建【maven项目创建】

一、jmeter脚本录制或编写

       根据自己习惯录制或编写jmeter脚本,保证脚本可正确运行。

二、用eclipse创建maven项目

1.File->New->Project...打开new project窗口(如下图),

2.选择Maven下的Maven Project,点击【Next】.New Maven Project 窗口默认选项,点击【Next】.

3.选择maven-archetype-webapp,点击【Next】

4.自定义Group Id和Artifact Id,点击【Finish】

5.Maven项目创建成功

6.在工程中创建需要的文件夹

--Src/test/resources --存放报告模板文件

--src/test/jmeter --存放jmeter脚本文件跟一些接口调用的参数

7.编辑pom文件

<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/maven-v4_0_0.xsd" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<modelVersion>4.0.0</modelVersion>
	<groupId>autotest</groupId>
	<artifactId>scripts</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>scripts Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>  <!--JUnit是Java的单元测试框架-->
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
			
	</dependencies>
	
	<properties>  <!--results、store、zifu、html、html1、html2、html3这些目录都需要自己在svn创建-->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir>  <!--工作台下result目录,存放jmx脚本生成的jtl文件-->		
		<ReportName>TestReport</ReportName>
	</properties>

	<build>
		<plugins>
			<plugin>
				<groupId>com.lazerycode.jmeter</groupId>
				<artifactId>jmeter-maven-plugin</artifactId>  <!--A plugin to allow you to run JMeter tests with Maven.-->
				<version>2.2.0</version>
				<configuration>
					<resultsFileFormat>xml</resultsFileFormat>
					<ignoreResultFailures>true</ignoreResultFailures>
					<testResultsTimestamp>flase</testResultsTimestamp>
					<testFilesDirectory>src/test/jmeter/</testFilesDirectory>
					<testFilesIncluded>                 
						<jMeterTestFile>*.jmx</jMeterTestFile>
					</testFilesIncluded>  
					<propertiesJMeter>
						<CookieManager.save.cookies>true</CookieManager.save.cookies>
						<overrideRootLogLevel>debug</overrideRootLogLevel>
						<sampleresult.default.encoding>utf-8</sampleresult.default.encoding>
						<jmeter.save.saveservice.data_type>true</jmeter.save.saveservice.data_type>
						<jmeter.save.saveservice.label>true</jmeter.save.saveservice.label>
						<jmeter.save.saveservice.response_code>true</jmeter.save.saveservice.response_code>		
						<jmeter.save.saveservice.response_data>true</jmeter.save.saveservice.response_data>				
						<jmeter.save.saveservice.response_data.on_error>true</jmeter.save.saveservice.response_data.on_error>
						<jmeter.save.saveservice.response_message>true</jmeter.save.saveservice.response_message>
						<jmeter.save.saveservice.successful>true</jmeter.save.saveservice.successful>
						<jmeter.save.saveservice.thread_name>true</jmeter.save.saveservice.thread_name>
						<jmeter.save.saveservice.time>true</jmeter.save.saveservice.time>
						<jmeter.save.saveservice.subresults>true</jmeter.save.saveservice.subresults>
						<jmeter.save.saveservice.assertions>true</jmeter.save.saveservice.assertions>   <!--对jmeter.properties的属性值进行部分修改-->
						<jmeter.save.saveservice.latency>true</jmeter.save.saveservice.latency>
						<jmeter.save.saveservice.connect_time>true</jmeter.save.saveservice.connect_time>
						<jmeter.save.saveservice.samplerData>true</jmeter.save.saveservice.samplerData>
						<jmeter.save.saveservice.responseHeaders>true</jmeter.save.saveservice.responseHeaders>
						<jmeter.save.saveservice.requestHeaders>true</jmeter.save.saveservice.requestHeaders>
						<jmeter.save.saveservice.encoding>true</jmeter.save.saveservice.encoding>
						<jmeter.save.saveservice.bytes>true</jmeter.save.saveservice.bytes>
						<jmeter.save.saveservice.sent_bytes>true</jmeter.save.saveservice.sent_bytes>
						<jmeter.save.saveservice.url>true</jmeter.save.saveservice.url>
						<jmeter.save.saveservice.filename>true</jmeter.save.saveservice.filename>
						<jmeter.save.saveservice.hostname>true</jmeter.save.saveservice.hostname>
						<jmeter.save.saveservice.thread_counts>=true</jmeter.save.saveservice.thread_counts>
						<jmeter.save.saveservice.sample_count>true</jmeter.save.saveservice.sample_count>
						<jmeter.save.saveservice.idle_time>true</jmeter.save.saveservice.idle_time>
					</propertiesJMeter>
					<resultsDirectory>${jmeter.result.jtl.dir}</resultsDirectory>  <!--jmx脚本生成目录——之前定义过的工作台下results目录,用${}形式引用,生成文件格式是jtl-->
					<resultsFileFormat>xml</resultsFileFormat> 
				</configuration>
				<executions>
					<execution>
						<id>jmeter-tests</id>
						<phase>verify</phase>
						<goals>
							<goal>jmeter</goal>
						</goals>
						<configuration>
							<resultsFileFormat>jtl</resultsFileFormat>  <!--jmx脚本文件生成相应jtl文件-->
						</configuration>
					</execution>
					<execution>
						<id>jmeter-check-results</id>
						<goals>
							<goal>results</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		  </plugins>
		<defaultGoal>clean</defaultGoal>
	</build>
</project>

8.调试maven项目

选中pom文件,右键选择【run as】->【Maven build...】,goals填写【verify】,点击【run】

jmeter-maven-plugin插件会自动引入jmeter类库,target目录下会自动生成jmeter等文件

注:构建maven项目时会把src/test/jmeter下的测试脚本复制到target/jmeter/testFiles路径下,所以如果需要修改或删除src/test/jmeter下的脚本,应将target/jmeter/testFiles路径下原来的脚本删除。

猜你喜欢

转载自blog.csdn.net/fly_to_higher/article/details/81097459