Skip to content

Commit

Permalink
Merge pull request #157 from atlassian/release/1.3.0-beta
Browse files Browse the repository at this point in the history
Release 1.3.0 beta
  • Loading branch information
ometelytsia committed Mar 5, 2020
2 parents 6970354 + 2090c91 commit 8583203
Show file tree
Hide file tree
Showing 37 changed files with 3,066 additions and 1,259 deletions.
18 changes: 16 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ The Data Center App Performance Toolkit extends [Taurus](https://gettaurus.org/)

This repository contains Taurus scripts for performance testing of Atlassian Data Center products: Jira, Confluence, and Bitbucket.

At the moment, Jira DC and Confluence DC support is in beta. Bitbucket DC support is coming soon.
At the moment, Jira DC, Confluence DC and Bitbucket DC support is in beta.

## Supported versions
* Supported Jira versions:
Expand All @@ -14,13 +14,19 @@ At the moment, Jira DC and Confluence DC support is in beta. Bitbucket DC suppor
* The latest Confluence [Enterprise Release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.13.8
* The latest Confluence Platform Release: 7.0.4

* Supported Bitbucket Server versions:
* The latest Bitbucket Server [Enterprise Release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): 6.10.0

## Support
In case of technical questions, issues or problems with DC Apps Performance Toolkit, contact us for support in the [community Slack](http://bit.ly/dcapt_slack) **#data-center-app-performance-toolkit** channel.

## Installation and set up

#### Dependencies
* Python 3.6+ and pip
* JDK 8
* Google Chrome web browser.
* Google Chrome web browser
* Git client (only for Bitbucket Server)

Please make sure you have a version of Chrome browser that is compatible with [ChromeDriver](http://chromedriver.chromium.org/downloads) version set in app/$product.yml file (modules->selenium->chromedriver->version).

Expand All @@ -33,6 +39,10 @@ python3 --version
pip --version
java -version
```
For Bitbucket Server check that [Git](https://git-scm.com/downloads) is installed:
```
git --version
```

We recommend using virtualenv for Taurus.

Expand Down Expand Up @@ -62,6 +72,10 @@ pip --version
java -version
Microsoft Visual C++ 14
```
For Bitbucket Server check that [Git](https://git-scm.com/downloads) is installed:
```
git --version
```

Make sure you have Visual Studio build tool v14.22 installed.
Otherwise, download it from [Microsoft Visual C++ Build Tools:](https://visualstudio.microsoft.com/downloads) and do the following:
Expand Down
84 changes: 84 additions & 0 deletions app/bitbucket.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
settings:
artifacts-dir: results/bitbucket/%Y-%m-%d_%H-%M-%S
aggregator: consolidator
verbose: false
env:
application_hostname: test_bitbucket_instance.atlassian.com # Bitbucket DC hostname without protocol and port e.g. test-bitbucket.atlassian.com or localhost
application_protocol: http # http or https
application_port: 80 # 80, 443, 8080, 2990, etc
application_postfix: # e.g. /bitbucket in case of url like http://localhost:2990/bitbucket
admin_login: admin
admin_password: admin
concurrency: 20
test_duration: 50m
WEBDRIVER_VISIBLE: False
JMETER_VERSION: 5.2.1
allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README.
services:
- module: shellexec
prepare:
- python util/environment_checker.py
- python util/data_preparation/bitbucket/prepare-data.py
shutdown:
- python util/jtl_convertor/jtls-to-csv.py kpi.jtl selenium.jtl
post-process:
- python util/analytics.py bitbucket
execution:
- scenario: jmeter
concurrency: ${concurrency}
hold-for: ${test_duration}
ramp-up: 10m
- scenario: selenium
executor: selenium
runner: pytest
hold-for: ${test_duration}
scenarios:
selenium:
script: selenium_ui/bitbucket_ui.py
jmeter:
script: jmeter/bitbucket.jmx
properties:
admin_login: ${admin_login}
admin_password: ${admin_password}
application_hostname: ${application_hostname}
application_protocol: ${application_protocol}
application_port: ${application_port}
application_postfix: ${application_postfix}
total_actions_per_hr: 32700
tmp_dir: /tmp
ssh_key_url: https://centaurus-datasets.s3.us-east-2.amazonaws.com/bitbucket/ssh/id_rsa
modules:
consolidator:
rtimes-len: 0 # CONFSRVDEV-7631 reduce sampling
percentiles: [] # CONFSRVDEV-7631 disable all percentiles due to Taurus's excessive memory usage
jmeter:
version: ${JMETER_VERSION}
detect-plugins: true
memory-xmx: 8G # allow JMeter to use up to 8G of memory
plugins:
- bzm-parallel=0.4
- bzm-random-csv=0.6
- jpgc-casutg=2.5
- jpgc-dummy=0.2
- jpgc-ffw=2.0
- jpgc-fifo=0.2
- jpgc-functions=2.1
- jpgc-json=2.6
- jpgc-perfmon=2.1
- jpgc-prmctl=0.4
- jpgc-tst=2.4
- jpgc-wsc=0.3
- tilln-sshmon=1.0
- jpgc-cmd=2.2
- jpgc-synthesis=2.2
system-properties:
server.rmi.ssl.disable: true
java.rmi.server.hostname: localhost
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "80.0.3987.16" # Supports Chrome version 80. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
4 changes: 2 additions & 2 deletions app/confluence.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ settings:
concurrency: 200
test_duration: 45m
WEBDRIVER_VISIBLE: False
JMETER_VERSION: 5.1
JMETER_VERSION: 5.2.1
allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README.
services:
- module: shellexec
Expand Down Expand Up @@ -86,7 +86,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "79.0.3945.36" # Supports Chrome version 79. You can refer to http://chromedriver.chromium.org/downloads
version: "80.0.3987.16" # Supports Chrome version 80. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
1 change: 1 addition & 0 deletions app/datasets/bitbucket/examples/projects.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PRJ-1,5
1 change: 1 addition & 0 deletions app/datasets/bitbucket/examples/pull_requests.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
prj-1000-repo-1,PRJ-1000,perf-branch-56,master,perf-branch-55,master
1 change: 1 addition & 0 deletions app/datasets/bitbucket/examples/repos.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
prj-1000-repo-1,PRJ-1000
1 change: 1 addition & 0 deletions app/datasets/bitbucket/examples/users.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3,user-1,user-1
Empty file.
29 changes: 29 additions & 0 deletions app/extension/bitbucket/extension_ui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec

from selenium_ui.confluence.modules import _wait_until
from selenium_ui.conftest import print_timing
from util.conf import BITBUCKET_SETTINGS

APPLICATION_URL = BITBUCKET_SETTINGS.server_url
timeout = 20


def custom_action(webdriver, datasets):
@print_timing
def measure(webdriver, interaction):
@print_timing
def measure(webdriver, interaction):
webdriver.get(f'{APPLICATION_URL}/plugins/servlet/some-app/reporter')
_wait_until(webdriver, ec.visibility_of_element_located((By.ID, "plugin-element")), interaction)

measure(webdriver, 'selenium_app_custom_action:view_report')

@print_timing
def measure(webdriver, interaction):
webdriver.get(f'{APPLICATION_URL}/plugins/servlet/some-app/administration')
_wait_until(webdriver, ec.visibility_of_element_located((By.ID, "plugin-element")), interaction)

measure(webdriver, 'selenium_app_custom_action:view_dashboard')

measure(webdriver, 'selenium_app_custom_action')
4 changes: 2 additions & 2 deletions app/jira.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ settings:
concurrency: 200
test_duration: 45m
WEBDRIVER_VISIBLE: False
JMETER_VERSION: 5.1
JMETER_VERSION: 5.2.1
allow_analytics: Yes # Allow sending basic run analytics to Atlassian. These analytics help us to understand how the tool is being used and help us to continue to invest in this tooling. For more details please see our README.
services:
- module: shellexec
Expand Down Expand Up @@ -88,7 +88,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "79.0.3945.36" # Supports Chrome version 79. You can refer to http://chromedriver.chromium.org/downloads
version: "80.0.3987.16" # Supports Chrome version 80. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
Loading

0 comments on commit 8583203

Please sign in to comment.