Automating jmx files in CircleCI

前端 未结 1 595
面向向阳花
面向向阳花 2021-01-28 05:57

I have couple of jmx files which I recorded and downloaded using blazemeter plugin.

I would like to know

  1. How Can I integrate to CircleCI?
  2. How can
相关标签:
1条回答
  • 2021-01-28 06:57
    1. When you add a CircleCI project you have a variety of languages to choose from:

      I would recommend going for Maven(Java) as JMeter Maven Plugin is the easiest option for setting up and using out of other JMeter non-GUI execution options.

    2. Organise your project structure as follows:

      • yourproject
        • .circleci
          • config.yml
        • src
          • test
            • jmeter
              • test.jmx
        • pom.xml
    3. Make sure that config.yml file looks as follows:

      # Java Maven CircleCI 2.0 configuration file
      #
      # Check https://circleci.com/docs/2.0/language-java/ for more details
      #
      version: 2
      jobs:
        build:
          docker:
            # specify the version you desire here
            - image: circleci/openjdk:8-jdk
      
            # Specify service dependencies here if necessary
            # CircleCI maintains a library of pre-built images
            # documented at https://circleci.com/docs/2.0/circleci-images/
            # - image: circleci/postgres:9.4
      
          working_directory: ~/repo
      
          environment:
            # Customize the JVM maximum heap limit
            MAVEN_OPTS: -Xmx3200m
      
          steps:
            - checkout
      
            # Download and cache dependencies
            - restore_cache:
                keys:
                - v1-dependencies-{{ checksum "pom.xml" }}
                # fallback to using the latest cache if no exact match is found
                - v1-dependencies-
      
            - run: mvn dependency:go-offline
      
            - save_cache:
                paths:
                  - ~/.m2
                key: v1-dependencies-{{ checksum "pom.xml" }}
      
            # run tests!
            - run: mvn verify
      
            - store_artifacts:
                path: target/jmeter/reports
      
    4. Make sure your pom.xml looks like:

      <?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>org.jmeter</groupId>
          <artifactId>maven</artifactId>
          <version>1.0-SNAPSHOT</version>
          <build>
              <plugins>
                  <plugin>
                      <groupId>com.lazerycode.jmeter</groupId>
                      <artifactId>jmeter-maven-plugin</artifactId>
                      <version>2.8.0</version>
                      <executions>
                          <!-- Run JMeter tests -->
                          <execution>
                              <id>jmeter-tests</id>
                              <goals>
                                  <goal>jmeter</goal>
                              </goals>
                          </execution>
                          <!-- Fail build on errors in test -->
                          <execution>
                              <id>jmeter-check-results</id>
                              <goals>
                                  <goal>results</goal>
                              </goals>
                              <configuration>
                                  <generateReports>true</generateReports>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </project>
      
      1. That's it, now your build will be triggered on each commit:

    5. You will be able to see HTML Reporting Dashboard in build artifacts

    6. Scheduling your builds is also possible via cron-like expressions

    0 讨论(0)
提交回复
热议问题