Skip to content

Commit

Permalink
Merge pull request #7 from rbhadti94/feature/optional-arguments
Browse files Browse the repository at this point in the history
GH-2 Optional Arguments for JMeter Action and documentation
  • Loading branch information
rbhadti94 authored Apr 27, 2020
2 parents 14f0635 + 603165d commit cde6b38
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 42 deletions.
37 changes: 22 additions & 15 deletions .github/workflows/testjmeteraction.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
name: Test Action
---
name: Test JMeter Action

on:
push:
branches:
branches:
- master
- 'feature/adding-reports'
pull_request:
branches: [ master ]
branches: [master]

jobs:

Expand All @@ -15,15 +16,21 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: run jmeter action
uses: ./
with:
testFilePath: tests/sample_test.jmx
outputReportsFolder: reports/

- uses: actions/upload-artifact@v1
with:
name: jmeter-test-results
path: reports/
- uses: actions/checkout@v2

- uses: actions/checkout@v1

- name: Lint all YAML files in the directory
uses: ibiqlik/action-yamllint@master

- name: Run JMeter Action
uses: ./
with:
testFilePath: tests/sample_test.jmx
outputReportsFolder: reports/
args: "--loglevel INFO"

- uses: actions/upload-artifact@v1
with:
name: jmeter-test-results
path: reports/
6 changes: 5 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,8 @@ RUN apk --no-cache add curl ca-certificates openjdk9-jre && \
rm /tmp/apache-jmeter-${JMETER_VERSION}.tgz && \
rm -rf /var/cache/apk/*

ENTRYPOINT [ "jmeter" ]
COPY entrypoint.sh /entrypoint.sh

RUN chmod a+x /entrypoint.sh

ENTRYPOINT [ "/entrypoint.sh" ]
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,33 @@ This action runs a JMeter performance test using a given JMX test file. It will
### `outputReportsFolder`
**Not Required**: The folder in which the JMeter reports are produced.

### ```args``` - Optional Arguments
**Not Required**: Additional arguments to pass to JMeter. In the format

```bash
--flag <argument>
# OR
--flag <argument>=<value>
```

Please see https://jmeter.apache.org/usermanual/get-started.html for more information on the possible arguments

## Example usage
```yaml
# Use JMeter to run the JMX test case and produce reports in the "reports/"
# directory in the workspace.
- name: Run JMeter Tests
uses: rbhadti94/apache-jmeter-action@v0.1.1
uses: rbhadti94/apache-jmeter-action@v0.1.2
with:
testFilePath: tests/sample_test.jmx
outputReportsFolder: reports/

# Use JMeter to run the JMX test case.
# Modify the logging level and pass in some custom properties and config
- name: Run JMeter Tests with modified logging and custom properties
uses: rbhadti94/apache-jmeter-action@v0.1.2
with:
testFilePath: tests/sample_test.jmx
outputReportsFolder: reports/
args: "--loglevel INFO -JMyProperty=Value --jmeterlogconf=log.conf"
```
52 changes: 27 additions & 25 deletions action.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
---
name: Apache JMeter
description: Runs an Apache JMeter test case
author: Ravindra Bhadti <rbhadti@gmail.com>
Expand All @@ -16,33 +17,33 @@ inputs:
Optional arguments that are passed to the JMeter tool
Options:
-p, --propfile <argument> the jmeter property file to use
-q, --addprop <argument> additional JMeter property file(s)
-l, --logfile <argument> the file to log samples to
-i, --jmeterlogconf <argument> jmeter logging configuration file (log4j2.xml)
-j, --jmeterlogfile <argument> jmeter run log file (jmeter.log)
-s, --server run the JMeter server
-E, --proxyScheme <argument> Set a proxy scheme to use for the proxy server
-H, --proxyHost <argument> Set a proxy server for JMeter to use
-P, --proxyPort <argument> Set proxy server port for JMeter to use
-N, --nonProxyHosts <argument> Set nonproxy host list (e.g. *.apache.org|localhost)
-u, --username <argument> Set username for proxy server that JMeter is to use
-a, --password <argument> Set password for proxy server that JMeter is to use
-J, --jmeterproperty <argument>=<value> Define additional JMeter properties
-G, --globalproperty <argument>=<value> Define Global properties (sent to servers) e.g. -Gport=123 or -Gglobal.properties
-D, --systemproperty <argument>=<value> Define additional system properties
-S, --systemPropertyFile <argument> additional system property file(s)
-f, --forceDeleteResultFile force delete existing results files and web report folder if present before starting the test
-L, --loglevel <argument>=<value> [category=]level e.g. jorphan=INFO, jmeter.util=DEBUG or com.example.foo=WARN
-r, --runremote Start remote servers (as defined in remote_hosts)
-R, --remotestart <argument> Start these remote servers (overrides remote_hosts)
-d, --homedir <argument> the jmeter home directory to use
-X, --remoteexit Exit the remote servers at end of test (non-GUI)
-g, --reportonly <argument> generate report dashboard only, from a test results file
-p, --propfile <argument>
-q, --addprop <argument>
-i, --jmeterlogconf <argument>
-j, --jmeterlogfile <argument>
-s, --server
-E, --proxyScheme <argument>
-H, --proxyHost <argument>
-P, --proxyPort <argument>
-N, --nonProxyHosts<argument>
-u, --username <argument>
-a, --password <argument>
-J, --jmeterproperty <argument>=<value>
-G, --globalproperty <argument>=<value>
-D, --systemproperty <argument>=<value>
-S, --systemPropertyFile <argument>
-f, --forceDeleteResultFile
-L, --loglevel <argument>=<value>
-r, --runremote
-R, --remotestart <argument>