Github Actions¶

Github Actions is a tool to automatically build your software through continuous deployment. Github Actions is nothing else than an command-line runner built which runs your own scripts inside Docker containers.
OctoPerf seamlessly integrates with Github Actions thanks to our Maven Plugin. You can run OctoPerf load tests as part of your software builds like:
- Run an existing scenario,
- Import and run a JMeter JMX stored in your git repository,
- Or even stop the build automatically whenever a threshold or SLA exceeds a certain criticality (Example: WARNING).
Setup¶
Prerequisites¶
In order to setup gitlab builds to run OctoPerf load tests, first you need:
Introduction¶

First, you need to:
- Create a Github account,
- Then create a new repository named octoperf-github-actions.
Next, you will need an OctoPerf Account. Now, let's setup a dummy project:
- Create a new project named GitHubin yourDefaultworkspace,
- Import the sample JMX. This should create an httpbin.orgvirtual user,
- Create a Scenario named Scenarioand configure the load settings for thehttpbin.orguser.
Now, it's time to save your API key for further use:
- Click in the top-right corner in OctoPerf UI and choose Profilein the menu,
- Copy the API Key.
Let's setup the gitlab repository now.
Github Repository¶
Github Actions natively supports running Maven builds:
- First, clone the github repository on your local machine:
git clone git@gitlab.com:username/octoperf-github-actions.git
- Then, you should create the maven pom.xmlconfig file which contains:
<?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>
  <packaging>pom</packaging>
  <groupId>com.octoperf</groupId>
  <artifactId>octoperf-test</artifactId>
  <version>1.0.0-SNAPSHOT</version>
  <build>
    <plugins>
      <plugin>
        <groupId>com.octoperf</groupId>
        <artifactId>octoperf-maven-plugin</artifactId>
        <version>2.4.0</version>
        <configuration>
          <apiKey>YOUR_API_KEY</apiKey>
          <workspaceName>Default</workspaceName>
          <projectName>GitHub</projectName>
          <scenarioName>Scenario</scenarioName>
        </configuration>
      </plugin>
    </plugins>
  </build>
  <pluginRepositories>
    <pluginRepository>
      <id>octoperf-releases</id>
      <name>OctoPerf Releases</name>
      <url>https://github.com/octoperf/maven-repository/raw/master/releases</url>
    </pluginRepository>
    <pluginRepository>
      <id>octoperf-snapshots</id>
      <name>OctoPerf Snapshots</name>
      <url>https://github.com/octoperf/maven-repository/raw/master/snapshots</url>
    </pluginRepository>
  </pluginRepositories>
</project>
Make sure to replace YOUR_API_KEY by your account API Key.
- Then create a Github Action using maven to execute a scenario configured in your maven pom.xml:

Here is a sample github actions yml using maven to execute octoperf maven plugin:
# For more information on how to use our maven plugin, see:
# https://github.com/OctoPerf/octoperf-maven-plugin
name: OctoPerf Test using Github Actions
# Trigger an OctoPerf load test
on:
  push:
    branches: [ "master" ]
  pull_request:
    branches: [ "master" ]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Set up JDK 17
      uses: actions/setup-java@v4
      with:
        java-version: '17'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn octoperf:execute-scenario --file pom.xml
This will execute an existing scenario named Scenario, expected to be in your account GitHub project and Default workspace.
- Commit those changes to your repository:
git add -A && git commit && git push
Which will push the 2 files to your git repository:
[master (root-commit) 8d8794b] OctoPerf Load Test
 2 files changed, 51 insertions(+)
 create mode 100644 .github/workflows/maven.yml
 create mode 100644 pom.xml
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 894 bytes | 894.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To github.com:jloisel/octoperf-github-actions.git
 * [new branch]      master -> master
- The CI Job should now be visible on Github Actions,

Congratulations! You've just triggered a load test on OctoPerf using GitHub CI and OctoPerf Maven Plugin.

The analysis report is visible in OctoPerf too. For further information, see our OctoPerf Maven Plugin documentation.