• Jmeter+Maven+jenkins+eclipse搭建自动化测试平台


    【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】

    背景:

    首先用jmeter录制或者书写性能测试的脚本,用maven添加相关依赖,把性能测试的代码提交到github,在jenkins配置git下载性能测试的代码,配置运行脚本和测试报告,配置运行失败自动发邮件通知,这样一来性能测试的job配置完成。接着,把性能测试的job配置成开发job的下游job,一旦开发有了新的代码提交运行开发自己的job后,就会自动触发我们性能测试的job。这样我们就实现了接口性能测试的全自动化,我们只需要关注测试失败的邮件!

    1 环境搭建
    下载安装 jdk &eclipse。
    下载安装jenkins。
    下载maven 并进行解压。
    下载jmeter并解压。
    2 准备性能测试的脚本
    启动 jmeter (双击 jmeter解压目录下的bin\jmeter.bat)。
    用jmeter书写test cases,并导出(推荐)。 

    或者你可以用jmeter录制脚本,确保运行通过后,导出。
    当然你可以选择用badboy录制脚本,确保运行通过后,导出。(badboy支持ie浏览器的录制)
    也可以使用chrome插件(BlazeMeter)下载链接:https://www.chromefor.com/blazemeter-the-continuous-testing-platform_v3-2-0/        注意:如果导出不了脚本,是版本原因,下载最新的版文本即可
    3 为性能测试脚本创建maven project
    打开eclipse,并创建一个 maven project。
    在src/test/目录下创建jmeter文件夹把准备好的性能测试的脚本复制到这个文件夹下。

    在src/test/目录下创建resource文件夹,并把测试模板(E:\apache-jmeter-3.2\apache-jmeter-3.2\extras的如下文件)复制到这个resource文件下。

     

    并把如下文件从apache-jmeter-3.2\bin目录下复制到src/test/jmeter文件里。

     在maven脚本里(即pom.xml)添加jmeter-maven-plugin相关依赖如下

    1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    2. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    3. <modelVersion>4.0.0</modelVersion>
    4. <groupId>com.performance.test</groupId>
    5. <artifactId>PushNotificationPerformanceTest</artifactId>
    6. <version>0.0.1-SNAPSHOT</version>
    7. <packaging>jar</packaging>
    8. <name>PushNotificationPerformanceTest</name>
    9. <url>http://maven.apache.org</url>
    10. <properties>
    11. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    12. <jmeter.result.jtl.dir>${project.build.directory}\jmeter\results</jmeter.result.jtl.dir>
    13. <jmeter.result.html.dir>${project.build.directory}\jmeter\html</jmeter.result.html.dir>
    14. <jmeter.result.html.dir1>${project.build.directory}\jmeter\html1</jmeter.result.html.dir1>
    15. <ReportName>TestReport</ReportName>
    16. </properties>
    17. <dependencies>
    18. <dependency>
    19. <groupId>junit</groupId>
    20. <artifactId>junit</artifactId>
    21. <version>3.8.1</version>
    22. <scope>test</scope>
    23. </dependency>
    24. </dependencies>
    25. <build>
    26. <plugins>
    27. <plugin>
    28. <groupId>com.lazerycode.jmeter</groupId>
    29. <artifactId>jmeter-maven-plugin</artifactId>
    30. <version>2.3.0</version>
    31. <executions>
    32. <execution>
    33. <id>jmeter-tests</id>
    34. <goals>
    35. <goal>jmeter</goal>
    36. </goals>
    37. </execution>
    38. </executions>
    39. </plugin>
    40. <plugin>
    41. <groupId>org.codehaus.mojo</groupId>
    42. <artifactId>xml-maven-plugin</artifactId>
    43. <version>1.0-beta-3</version>
    44. <executions>
    45. <execution>
    46. <phase>verify</phase>
    47. <goals>
    48. <goal>transform</goal>
    49. </goals>
    50. </execution>
    51. </executions>
    52. <configuration>
    53. <transformationSets>
    54. <transformationSet>
    55. <dir>${jmeter.result.jtl.dir}</dir>
    56. <stylesheet>src\test\resources\jmeter-results-detail-report_21.xsl</stylesheet>
    57. <outputDir>${jmeter.result.html.dir}</outputDir>
    58. <fileMappers>
    59. <fileMapper
    60. implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
    61. <targetExtension>html</targetExtension>
    62. </fileMapper>
    63. </fileMappers>
    64. </transformationSet>
    65. <transformationSet>
    66. <dir>${jmeter.result.jtl.dir}</dir>
    67. <stylesheet>src\test\resources\jmeter-results-report_21.xsl</stylesheet>
    68. <outputDir>${jmeter.result.html.dir1}</outputDir>
    69. <fileMappers>
    70. <fileMapper
    71. implementation="org.codehaus.plexus.components.io.filemappers.FileExtensionMapper">
    72. <targetExtension>html</targetExtension>
    73. </fileMapper>
    74. </fileMappers>
    75. </transformationSet>
    76. </transformationSets>
    77. </configuration>
    78. <!-- using XSLT 2.0 -->
    79. <dependencies>
    80. <dependency>
    81. <groupId>net.sf.saxon</groupId>
    82. <artifactId>saxon</artifactId>
    83. <version>8.7</version>
    84. </dependency>
    85. </dependencies>
    86. </plugin>
    87. </plugins>
    88. </build>
    89. </project>

    4 在eclipse运行性能测试脚本

    选中性能测试的project 右击,然后在下拉框中选择run as -》maven build ,然后在弹出的对话框的Goals 写上verify,最hou点击run(如下图)。 

    运行后会有测试结果文件如下图

    5 在jenkins 运行性能测试脚本并配置测试结果
    在jenkins上安装如下插件:

      Maven Integration plugin Maven,用于jenkins可以创建maven job ;

      Git plugin ,用于从github下载性能测试的代码;

      Performance plugin ,用于显示测试报告;

      HTML Publisher plugin ,用于显示相关接口测试结果的报告。

    1、jenkins环境准备(全局工具配置)

      目录:系统管理-->全局工具配置

      1)配置jdk地址

     

    maven配置:

     

    2、配置maven工程

    1) 在jenkins创建maven job

     2)在jenkins上配置运行脚本

         首先在工程里点击配置选项

      3)在jenkins上配置测试结果报告

    5)配置完了,点击buid now,开始运行,结果如下:

     下面的报告是更换了报告的模板,具体实现百度

     

     ps:

      关于显示测试结果:

    1. 如在jenkins使用html publisher查看报告时,发现显示不美观,不全的现象,很多东西显示不了,

      解决这个问题可以在jenkins系统管理中输入以下脚本运行,就可以解决这个问题了

      System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

      更多解决方法:https://zhuanlan.zhihu.com/p/280809752.html结果好多为空,请把jmeter.property的相应的false改为true。

    1. #测试报告信息展示
    2. jmeter.save.saveservice.data_type=true
    3. jmeter.save.saveservice.label=true
    4. jmeter.save.saveservice.response_code=true
    5. # response_data is not currently supported for CSV output
    6. jmeter.save.saveservice.response_data=true
    7. # Save ResponseData for failed samples
    8. jmeter.save.saveservice.response_data.on_error=true
    9. jmeter.save.saveservice.response_message=true
    10. jmeter.save.saveservice.successful=true
    11. jmeter.save.saveservice.thread_name=true
    12. jmeter.save.saveservice.time=true
    13. jmeter.save.saveservice.subresults=true
    14. jmeter.save.saveservice.assertions=true
    15. jmeter.save.saveservice.latency=true
    16. jmeter.save.saveservice.connect_time=true
    17. jmeter.save.saveservice.samplerData=true
    18. jmeter.save.saveservice.responseHeaders=true
    19. jmeter.save.saveservice.requestHeaders=true
    20. jmeter.save.saveservice.encoding=false
    21. jmeter.save.saveservice.bytes=true
    22. # Only available with HttpClient4
    23. jmeter.save.saveservice.sent_bytes=true
    24. jmeter.save.saveservice.url=true
    25. jmeter.save.saveservice.filename=true
    26. jmeter.save.saveservice.hostname=true
    27. jmeter.save.saveservice.thread_counts=true
    28. jmeter.save.saveservice.sample_count=true
    29. jmeter.save.saveservice.idle_time=true

    最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

    文档获取方式:

    这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

    以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

  • 相关阅读:
    DFS - 常见算法题总结
    每日一题——寻找右区间(排序 + 二分查找)
    LeetCode热题100 【cpp】题解(一)哈希表和双指针
    [环境搭建]OpenHarmony开发环境搭建
    音视频学习(十三)——flv详解
    Docker 的常用命令
    从源码观测STL-std::vector
    华为方舟编译器开源项目编译第三弹——自带测试框架使用
    基于海鸥算法的无人机航迹规划-附代码
    hisicv500部署yolov5 v5.0完整记录
  • 原文地址:https://blog.csdn.net/2301_79535733/article/details/133086188