Skip to content

Commit 4361031

Browse files
Merge pull request #750 from atlassian/release/6.0.0
Release 6.0.0
2 parents c972679 + 7ecaac8 commit 4361031

File tree

73 files changed

+4566
-181
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

73 files changed

+4566
-181
lines changed

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
# bzt run: docker run --shm-size=4g -v "$PWD:/dc-app-performance-toolkit" atlassian/dcapt jira.yml
55
# interactive run: docker run -it --entrypoint="/bin/bash" -v "$PWD:/dc-app-performance-toolkit" atlassian/dcapt
66

7-
FROM blazemeter/taurus
7+
FROM blazemeter/taurus:1.16.0
88

99
ENV APT_INSTALL="apt-get -y install --no-install-recommends"
1010

1111
RUN apt-get -y update \
12-
&& $APT_INSTALL vim git openssh-server python3.8-dev python3-pip wget \
13-
&& update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 \
12+
&& $APT_INSTALL vim git openssh-server python3.9-dev python3-pip wget \
13+
&& update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 \
1414
&& python -m pip install --upgrade pip \
1515
&& python -m pip install --upgrade setuptools \
1616
&& apt-get clean

README.md

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,18 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat
1717
* Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `7.6.10`, `7.17.1`
1818

1919
* Supported Crowd versions:
20-
* Crowd [Long Term Support release](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `4.4.0`
20+
* Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `4.4.0`
21+
22+
* Supported Bamboo versions:
23+
* Bamboo [release notes](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `8.1.0`
2124

2225
## Support
2326
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.
2427

2528
## Installation and set up
2629

2730
#### Dependencies
28-
* Python 3.7-3.8 and pip
31+
* Python 3.7, 3.8 or 3.9 and pip
2932
* JDK 8
3033
* Google Chrome web browser
3134
* Git client (only for Bitbucket DC)
@@ -63,7 +66,7 @@ pip install virtualenv
6366
```
6467
2. Create new virtual env with python3:
6568
```
66-
virtualenv venv -p python3
69+
virtualenv venv -p full_path_to_python # e.g. use `which python3.9` to find the path
6770
```
6871
3. Activate virtual env:
6972
```
@@ -78,8 +81,8 @@ pip install -r requirements.txt
7881
Make sure that you have:
7982
* [Python](https://www.python.org/downloads/) (see [dependencies](#dependencies) section for supported versions)
8083
* pip
81-
* [JDK 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) installed
82-
* Python developer package (e.g. `python3.8-dev` package for Python3.8)
84+
* [JDK 11](https://www.oracle.com/java/technologies/downloads/#java11) installed
85+
* Python developer package (e.g. `python3.9-dev` package for Python3.9)
8386
* Google Chrome web browser
8487
```
8588
python3 --version
@@ -92,11 +95,11 @@ git --version
9295
```
9396
We recommend using [virtualenv](https://virtualenv.pypa.io/en/latest/) for Taurus. See example setup below.
9497

95-
## Example setup for clean Ubuntu 18.04
98+
## Example setup for clean Ubuntu 20.04
9699
JDK setup (if missing):
97100
```
98101
sudo apt-get update
99-
sudo apt-get install -y openjdk-8-jre-headless
102+
sudo apt-get install -y openjdk-11-jre-headless
100103
```
101104
Chrome setup (if missing):
102105
```
@@ -107,9 +110,9 @@ sudo apt-get install -y ./google-chrome-stable_current_amd64.deb
107110
Python and virtualenv setup:
108111
```
109112
sudo apt-get update
110-
sudo apt-get -y install python3.8-dev python3-pip virtualenv
111-
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
112-
virtualenv venv -p python
113+
sudo apt-get -y install python3.9-dev python3-pip virtualenv
114+
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
115+
virtualenv venv -p /usr/bin/python
113116
source venv/bin/activate
114117
pip install -r requirements.txt
115118
```
@@ -146,7 +149,7 @@ pip install virtualenv
146149
```
147150
2. Create new virtual env with python3:
148151
```
149-
virtualenv venv -p python
152+
virtualenv venv -p full_path_to_python # e.g. use `where python3.9` to find the path
150153
```
151154
3. Activate virtual env:
152155
```

app/bamboo.yml

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
---
2+
settings:
3+
artifacts-dir: results/bamboo/%Y-%m-%d_%H-%M-%S
4+
aggregator: consolidator
5+
verbose: false
6+
env:
7+
application_hostname: test-bamboo.atlassian.com # Bamboo DC hostname without protocol and port e.g. test-bamboo.atlassian.com or localhost
8+
application_protocol: http # http or https
9+
application_port: 8085 # 80, 443, 8085, etc
10+
secure: True # Set False to allow insecure connections, e.g. when using self-signed SSL certificate
11+
application_postfix: # e.g. /bamboo in case of url like http://localhost/bamboo
12+
admin_login: admin
13+
admin_password: admin
14+
load_executor: jmeter
15+
concurrency: 200 # number of Bamboo users for Selenium actions
16+
test_duration: 45m
17+
ramp-up: 3m # time to spin all concurrent threads
18+
total_actions_per_hour: 2000 # number of total JMeter actions per hour
19+
WEBDRIVER_VISIBLE: False
20+
JMETER_VERSION: 5.2.1
21+
LANGUAGE: en_US.utf8
22+
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.
23+
view_all_builds: 15
24+
view_build_result: 15
25+
view_build_configuration: 10
26+
view_job_configuration: 10
27+
view_build_summary: 10
28+
view_projects_list: 10
29+
standalone_extension: 0 # By default disabled
30+
31+
number_of_agents: 50 # number of available remote agents
32+
parallel_plans_count: 40 # number of parallel plans execution
33+
start_plan_timeout: 60 # maximum timeout of plan to start
34+
default_dataset_plan_duration: 60 # expected plan execution duration
35+
services:
36+
- module: shellexec
37+
prepare:
38+
- python util/pre_run/environment_checker.py
39+
- python util/data_preparation/bamboo_prepare_data.py
40+
shutdown:
41+
- python util/post_run/jmeter_post_check.py
42+
- python util/jtl_convertor/jtls-to-csv.py kpi.jtl kpi-1.jtl selenium.jtl
43+
post-process:
44+
- python util/analytics/analytics.py bamboo
45+
- python util/post_run/cleanup_results_dir.py
46+
execution:
47+
- scenario: jmeter
48+
executor: jmeter
49+
concurrency: ${concurrency}
50+
hold-for: ${test_duration}
51+
ramp-up: ${ramp-up}
52+
- scenario: locust
53+
executor: locust
54+
concurrency: ${parallel_plans_count}
55+
hold-for: ${test_duration}
56+
ramp-up: ${default_dataset_plan_duration}
57+
- scenario: selenium
58+
executor: selenium
59+
runner: pytest
60+
hold-for: ${test_duration}
61+
scenarios:
62+
selenium:
63+
script: selenium_ui/bamboo_ui.py
64+
locust:
65+
script: locustio/bamboo/locustfile.py
66+
jmeter:
67+
script: jmeter/bamboo.jmx
68+
properties:
69+
application_hostname: ${application_hostname}
70+
application_protocol: ${application_protocol}
71+
application_port: ${application_port}
72+
application_postfix: ${application_postfix}
73+
# Workload model
74+
total_actions_per_hr: ${total_actions_per_hour}
75+
perc_view_all_builds: ${view_all_builds}
76+
perc_view_build_result: ${view_build_result}
77+
perc_view_build_configuration: ${view_build_configuration}
78+
perc_view_job_configuration: ${view_job_configuration}
79+
perc_view_build_summary: ${view_build_summary}
80+
perc_view_projects_list: ${view_projects_list}
81+
perc_standalone_extension: ${standalone_extension}
82+
modules:
83+
consolidator:
84+
rtimes-len: 0 # CONFSRVDEV-7631 reduce sampling
85+
percentiles: [] # CONFSRVDEV-7631 disable all percentiles due to Taurus's excessive memory usage
86+
jmeter:
87+
version: ${JMETER_VERSION}
88+
detect-plugins: true
89+
memory-xmx: 8G # allow JMeter to use up to 8G of memory
90+
plugins:
91+
- bzm-parallel=0.4
92+
- bzm-random-csv=0.6
93+
- jpgc-casutg=2.5
94+
- jpgc-dummy=0.2
95+
- jpgc-ffw=2.0
96+
- jpgc-fifo=0.2
97+
- jpgc-functions=2.1
98+
- jpgc-json=2.6
99+
- jpgc-perfmon=2.1
100+
- jpgc-prmctl=0.4
101+
- jpgc-tst=2.4
102+
- jpgc-wsc=0.3
103+
- tilln-sshmon=1.0
104+
- jpgc-synthesis=2.2
105+
system-properties:
106+
server.rmi.ssl.disable: true
107+
java.rmi.server.hostname: localhost
108+
httpsampler.ignore_failed_embedded_resources: "true"
109+
selenium:
110+
chromedriver:
111+
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
112+
reporting:
113+
- data-source: sample-labels
114+
module: junit-xml

app/bitbucket.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ modules:
8686
httpsampler.ignore_failed_embedded_resources: "true"
8787
selenium:
8888
chromedriver:
89-
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
89+
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
9090
reporting:
9191
- data-source: sample-labels
9292
module: junit-xml

app/confluence.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ modules:
110110
httpsampler.ignore_failed_embedded_resources: "true"
111111
selenium:
112112
chromedriver:
113-
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
113+
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
114114
reporting:
115115
- data-source: sample-labels
116116
module: junit-xml

app/extension/bamboo/__init__.py

Whitespace-only changes.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import random
2+
3+
from selenium.webdriver.common.by import By
4+
5+
from selenium_ui.base_page import BasePage
6+
from selenium_ui.conftest import print_timing
7+
from selenium_ui.bamboo.pages.pages import Login
8+
from util.conf import BAMBOO_SETTINGS
9+
10+
11+
def app_specific_action(webdriver, datasets):
12+
page = BasePage(webdriver)
13+
rnd_plan = random.choice(datasets["build_plans"])
14+
15+
build_plan_id = rnd_plan[1]
16+
17+
# To run action as specific user uncomment code bellow.
18+
# NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
19+
# just before test_2_selenium_z_log_out action
20+
#
21+
# @print_timing("selenium_app_specific_user_login")
22+
# def measure():
23+
# def app_specific_user_login(username='admin', password='admin'):
24+
# login_page = Login(webdriver)
25+
# login_page.delete_all_cookies()
26+
# login_page.go_to()
27+
# login_page.set_credentials(username=username, password=password)
28+
# login_page.click_login_button()
29+
# app_specific_user_login(username='admin', password='admin')
30+
# measure()
31+
32+
@print_timing("selenium_app_custom_action")
33+
def measure():
34+
@print_timing("selenium_app_custom_action:view_plan_summary_page")
35+
def sub_measure():
36+
page.go_to_url(f"{BAMBOO_SETTINGS.server_url}/browse/{build_plan_id}")
37+
page.wait_until_visible((By.ID, "buildResultsTable")) # Wait for summary field visible
38+
# Wait for you app-specific UI element by ID selector
39+
page.wait_until_visible((By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))
40+
sub_measure()
41+
measure()

app/jira.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ modules:
114114
httpsampler.ignore_failed_embedded_resources: "true"
115115
selenium:
116116
chromedriver:
117-
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
117+
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
118118
reporting:
119119
- data-source: sample-labels
120120
module: junit-xml

0 commit comments

Comments
 (0)