jmeter+maven+idea 環境搭建


本文參照地址:https://blog.csdn.net/lujinquan90/article/details/92988908

一、創建maven工程

1、電腦已安裝好idea 且已搭建號idea 運行環境。

2、打開idea 右鍵new一個maven工程

 

 

 3、設置maven項目 maven home路徑和工作倉庫地址信息。 

備注:在cmd下 ,輸入mvn -v ,可查看maven的home地址

 

 

 

 

二、修改maven項目目錄結構及其相關配置 (jmeter和maven項目關聯)

1、在src/test目錄下新建一個jmeter的目錄,用來存放jmeter腳本、配置文件、參數化文件。

1.1:將需要運行的jmeter生成的jmx文件放置在maven工程src/test/jmeter目錄下。

 

 

1.2:將jmeter bin目錄下的配置文件 拷貝至maven工程src/test/jmeter目錄下

 1.3 :修改jmeter.properties 文件中的屬性值修改地位比較多    (也可以修改,將這些內容配置在pom.xml,放在<configuration>節點下)

(1)jmeter.save.saveservice.output_format=xml     大概在配置文件414行處

(2)修改一下內容, 大概在配置文件423行處

jmeter.save.saveservice.data_type=true
jmeter.save.saveservice.label=true
jmeter.save.saveservice.response_code=true
# response_data is not currently supported for CSV output
jmeter.save.saveservice.response_data=true
# Save ResponseData for failed samples
jmeter.save.saveservice.response_data.on_error=false
jmeter.save.saveservice.response_message=true
jmeter.save.saveservice.successful=true
jmeter.save.saveservice.thread_name=true
jmeter.save.saveservice.time=true
jmeter.save.saveservice.subresults=true
jmeter.save.saveservice.assertions=true
jmeter.save.saveservice.latency=true
# Only available with HttpClient4
jmeter.save.saveservice.connect_time=true
jmeter.save.saveservice.samplerData=true
jmeter.save.saveservice.responseHeaders=true
jmeter.save.saveservice.requestHeaders=true
jmeter.save.saveservice.encoding=false
jmeter.save.saveservice.bytes=true
# Only available with HttpClient4
jmeter.save.saveservice.sent_bytes=true
jmeter.save.saveservice.url=true
jmeter.save.saveservice.filename=true
jmeter.save.saveservice.hostname=true
jmeter.save.saveservice.thread_counts=true
jmeter.save.saveservice.sample_count=true
jmeter.save.saveservice.idle_time=true

 

 

 

2、在src/test目錄下新建一個resources的目錄,並將它在項目屬性中設置為Test resource用來存放資源文件,比如XSL樣式表文件jmeter.results.shanhe.me.xsl、jmeter-results-detail-report.xsl、jmeter-results-detail-report_21.xsl、jmeter-results-report.xsl、jmeter-results-report_21.xsl。(備注設置Test resource可以在界面按Ctrl+Alt+shift+s)

 

 

 

 

 

 

 

 

 

 

 

三、修改pom.xml文件中的配置,該文件是maven的引入jar包、插件的重要配置文件。

<?xml version="1.0" encoding="UTF-8"?>
<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>jmeterScript</groupId>
    <artifactId>autotest</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!--設置報告生成的路徑-->
    <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>
    </properties>

    <build>
        <plugins>
            <plugin>
                <!-- 核心插件,用來執行jmx腳本,版本號對應的jmeter版本可在此地址查詢 https://github.com/jmeter-maven-plugin/jmeter-maven-plugin/blob/master/CHANGELOG.md-->
                <groupId>com.lazerycode.jmeter</groupId>
                <artifactId>jmeter-maven-plugin</artifactId>
                <version>2.2.0</version>
                <configuration>

                    <!-- 設置jmeter生成結果文件格式-->
                    <resultsFileFormat>xml</resultsFileFormat>
                    <!-- 設置忽略失敗是否停止運行-->
                    <ignoreResultFailures>true</ignoreResultFailures>
                    <!--設置結果是否有時間戳-->
                    <testResultsTimestamp>false</testResultsTimestamp>
                    <testFilesIncluded>
                        <!-- //指定運行的jmeter腳本 -->
                        <jMeterTestFile>hhbwg.jmx</jMeterTestFile>
                    </testFilesIncluded>
                    <!-- 指定jtl生成目錄 -->
                    <resultsDirectory>${jmeter.result.jtl.dir}</resultsDirectory>
                </configuration>
                <executions>
                    <execution>
                        <id>jmeter-tests</id>
                        <phase>verify</phase>
                        <!--腳本所在的文件夾 -->
                        <goals>
                            <goal>jmeter</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <!--根據xsl模版把jtl文件轉換成html-->
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>xml-maven-plugin</artifactId>
                <version>1.0-beta-3</version>
                <executions>
                    <execution>
                        <phase>verify</phase>
                        <goals>
                            <goal>transform</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <transformationSets>
                        <transformationSet>
                            <dir>${jmeter.result.jtl.dir}</dir>
                            <stylesheet>src\test\resources\jmeter-results-detail-report_21.xsl</stylesheet>
                            <outputDir>${jmeter.result.html.dir}</outputDir>
                            <!-- 把jtl格式轉傳承html -->
                            <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>

四、Run->Edit Configurations ,Goals里填入verify  (注意verify  在 Jenkins  Build中

Goals and options

需要使用

 

 五、啟動程序 (如出現以下信息則說明環境正常,運行結束后target目錄)

 

 截圖中存在一個Warning: Running an XSLT 1.0 stylesheet with an XSLT 2.0 processor 警告,因為和提供的XSL樣式表文件版本有關系

6、打開本地項目路徑,/autotest/target/jmeter/html/hhbwg.html   用瀏覽器打開html 文件。 

 

 此時html文件圖片未成功加載,解決圖片加載問題。

到jmeter安裝目錄的extras文件夾中,找到collapse.png、expand.png文件,復制到autotest\target\jmeter\html1的文件夾中,然后刷新html報表。

 

 

 

 此時已完成搭建好,如果你需要刪除不必要的腳本,因為maven項目時會把src/test/jmeter下的測試腳本復制到target/jmeter/testFiles路徑下,這2個路徑下的腳本都要刪除

 

備注:如果需要直接在pom.xml中配置jmeter的屬性,可以使用一下xml內容,將內容放置在放在<configuration>節點下。

<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>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM