Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
109 commits
Select commit Hold shift + click to select a range
0d6f2a6
added prepare data
SergeyMoroz0703 Aug 20, 2021
1afc45a
fix prepare-data
SergeyMoroz0703 Aug 20, 2021
3f098c2
fix comments
SergeyMoroz0703 Aug 20, 2021
d0013c0
fix bamboo prepare data
SergeyMoroz0703 Aug 26, 2021
b4c25e4
Merge pull request #664 from atlassian/DCA-1261-create-prepare-data-b…
SergeyMoroz0703 Aug 26, 2021
ed52fe6
Bamboo: preparate toolkit for the selenium tests
opopovss Aug 30, 2021
32cb854
Changes regarding to comments
opopovss Aug 30, 2021
9a78312
changes after bot comment
opopovss Aug 30, 2021
c71a95c
changes after bot comment
opopovss Aug 30, 2021
19e48fb
DCA-1263 agents setup (#666)
ometelytsia Aug 30, 2021
583e73a
Changes regarding to comments
opopovss Aug 30, 2021
e94e431
Bot comment fix
opopovss Aug 30, 2021
85145fe
bamboo.yml fixes
opopovss Aug 31, 2021
062b0f0
bamboo.yml fixes
opopovss Aug 31, 2021
92573e0
Merge pull request #667 from atlassian/DCA-1244-Bamboo-prepare-toolki…
opopovss Sep 1, 2021
6342ae2
Merge branch 'dev' into bamboo
opopovss Sep 1, 2021
776e8f0
Bamboo: Selenium test
opopovss Sep 8, 2021
77671c5
Update Bamboo prepare data
SergeyMoroz0703 Sep 9, 2021
d91504a
remove lines
SergeyMoroz0703 Sep 9, 2021
0bec90e
remove lines
SergeyMoroz0703 Sep 9, 2021
44a69bb
Bamboo-added-JMeter-script
SergeyMoroz0703 Sep 11, 2021
ba87713
added methods to the bamboo rest client
SergeyMoroz0703 Sep 15, 2021
523d49f
Merge branch 'dev' into bamboo
SergeyMoroz0703 Sep 21, 2021
7fe5036
Changes regarding comments
opopovss Sep 22, 2021
395ac32
Merge pull request #683 from atlassian/bamboo-added-plan-methods-to-b…
SergeyMoroz0703 Sep 23, 2021
90c655e
Merge pull request #678 from atlassian/DCA-1288-JMeter-script-for-bamboo
SergeyMoroz0703 Sep 23, 2021
d74cea5
Merge pull request #676 from atlassian/Bamboo-update-prepare-data-script
SergeyMoroz0703 Sep 23, 2021
45b22f1
Merge branch 'bamboo' of github.com:atlassian/dc-app-performance-tool…
SergeyMoroz0703 Sep 23, 2021
37b410f
Changes regarding comments
opopovss Sep 23, 2021
72f145f
Code modification
opopovss Sep 30, 2021
322c69d
Changes regarding to comments
opopovss Oct 1, 2021
b871da8
DCA-1266 memory check and accesibility (#693)
ometelytsia Oct 1, 2021
9a9179d
locust base action
SergeyMoroz0703 Oct 4, 2021
117d764
fix timeout for plan to be started
SergeyMoroz0703 Oct 4, 2021
ceb4e05
Merge pull request #674 from atlassian/Bamboo-Selenium-tests
opopovss Oct 4, 2021
aec883d
added tracker
SergeyMoroz0703 Oct 4, 2021
66fdc38
Merge branch 'bamboo' of github.com:atlassian/dc-app-performance-tool…
SergeyMoroz0703 Oct 4, 2021
47e05b2
Merge branch 'bamboo' into DCA-1285-locust-script-for-bamboo
SergeyMoroz0703 Oct 4, 2021
5e55116
DCA1325:Bamboo: selenium app specific and bump chromedriver 94
opopovss Oct 4, 2021
2ca469b
Merge pull request #697 from atlassian/DCA-1325-Bamboo-selenium-app-s…
opopovss Oct 19, 2021
15cde01
locust update
SergeyMoroz0703 Oct 22, 2021
f12566d
added dataset generator
SergeyMoroz0703 Oct 22, 2021
b74da92
Merge branch 'bamboo' of github.com:atlassian/dc-app-performance-tool…
SergeyMoroz0703 Oct 22, 2021
00d3136
temp changes
SergeyMoroz0703 Oct 26, 2021
071e9c2
fix bamboo yml
SergeyMoroz0703 Oct 27, 2021
2461fb7
fix bamboo yml
SergeyMoroz0703 Oct 27, 2021
74ecfb9
added utils
SergeyMoroz0703 Oct 27, 2021
fccaa4e
Merge branch 'bamboo' into DCA-1285-locust-script-for-bamboo
SergeyMoroz0703 Oct 27, 2021
c694235
fix comments
SergeyMoroz0703 Oct 28, 2021
b26f721
fix flake8
SergeyMoroz0703 Oct 28, 2021
62ccd98
flake8
SergeyMoroz0703 Oct 28, 2021
dd6bba1
fix bambooyml
SergeyMoroz0703 Oct 28, 2021
4b0964f
fix additional comments
SergeyMoroz0703 Oct 28, 2021
35782cc
DCA-1262-move-common-prepare-data (#706)
ometelytsia Oct 29, 2021
d874768
DCA-1330: Bamboo: java-spec refactoring (#703)
astashys Oct 29, 2021
a1a3156
fix dot
SergeyMoroz0703 Oct 29, 2021
944782e
Merge pull request #705 from atlassian/DCA-1285-locust-script-for-bamboo
SergeyMoroz0703 Oct 29, 2021
f5b88e9
Bamboo: Selenium actions naming
opopovss Nov 1, 2021
81bb204
Bump chromedriver version up to 95.0.4638.54
opopovss Nov 1, 2021
8982d85
Merge pull request #710 from atlassian/bamboo_selenium_tests_naming
opopovss Nov 1, 2021
1f4972b
DCA-1378 refactor busy sh (#712)
ometelytsia Nov 4, 2021
6af2094
added analytics
SergeyMoroz0703 Nov 10, 2021
e944eca
DCA-1379 use globa repo for bamboo java spec (#715)
ometelytsia Nov 10, 2021
435b7ba
DCA-1388: Bamboo specs generator improvements - determined plan keys …
astashys Nov 11, 2021
9f04dea
added post run analytics
SergeyMoroz0703 Nov 11, 2021
163b87e
DCA-1388: Bamboo specs generator improvements - check for plan keys (…
astashys Nov 15, 2021
3f07a3c
added debugger
SergeyMoroz0703 Nov 16, 2021
5e45d54
Bupm toolkit version up to 6.0.0 (#730)
ometelytsia Nov 17, 2021
063cda4
Merge branch 'dev' into DCA-1364-bamboo-post-run-assertion
SergeyMoroz0703 Nov 18, 2021
58bbf34
Locust: fix request hooks signature (#731)
ometelytsia Nov 18, 2021
263208c
Bump chromedriver up to 96.0.4664.45 (#733)
ometelytsia Nov 22, 2021
d76e7b2
Change version check message from FAIL to WARNING (#732)
ometelytsia Nov 23, 2021
e6f4825
PERFT-27 custom version deploy (#734)
ometelytsia Nov 23, 2021
1bc687b
added post run bamboo analytics v1
SergeyMoroz0703 Nov 24, 2021
867a6fe
fix for bamboo.yml
SergeyMoroz0703 Nov 24, 2021
1c1a5d8
fix pep8 for analytics
SergeyMoroz0703 Nov 24, 2021
a485c4d
DCA-1409 charts generation for bamboo (#735)
ometelytsia Nov 24, 2021
85fe62f
added unexpected duration plan
SergeyMoroz0703 Nov 24, 2021
7ab09d1
Merge remote-tracking branch 'origin/dev' into bamboo
SergeyMoroz0703 Nov 24, 2021
ba279eb
Merge branch 'bamboo' into DCA-1364-bamboo-post-run-assertion
SergeyMoroz0703 Nov 24, 2021
b940f39
fix comments
SergeyMoroz0703 Nov 24, 2021
13f864d
fix comments
SergeyMoroz0703 Nov 24, 2021
4fbd972
Added jmeter standalone extension
SergeyMoroz0703 Nov 26, 2021
944cb4d
revoke jb1 to variable
SergeyMoroz0703 Nov 26, 2021
66e3a23
Merge pull request #736 from atlassian/DCA-1364-bamboo-post-run-asser…
SergeyMoroz0703 Nov 26, 2021
22e1ce3
fix view result trr
SergeyMoroz0703 Nov 26, 2021
220c882
Merge branch 'bamboo' into DCA-1289-jmeter-standalone-extension-for-b…
SergeyMoroz0703 Nov 26, 2021
e12273b
fix username
SergeyMoroz0703 Nov 26, 2021
b00e9e7
Merge pull request #737 from atlassian/DCA-1289-jmeter-standalone-ext…
SergeyMoroz0703 Nov 26, 2021
38c7587
selector for selenium action plan_history - changed
opopovss Nov 29, 2021
3977514
Fix git url
SergeyMoroz0703 Nov 29, 2021
b56ca15
Merge pull request #739 from atlassian/hotfix-bamboo-git-dataset-url
SergeyMoroz0703 Nov 29, 2021
abe43c5
Merge pull request #738 from atlassian/bamboo-fix-of-selenium-action-…
SergeyMoroz0703 Nov 29, 2021
af5b1c0
Bamboo hotfix app specific dataset (#741)
SergeyMoroz0703 Dec 1, 2021
3b6ac09
Dca 1383 add python 3.9 (#740)
ometelytsia Dec 2, 2021
2762ea5
Merge branch 'dev' into bamboo
SergeyMoroz0703 Dec 2, 2021
22cd0d3
Merge pull request #742 from atlassian/bamboo
SergeyMoroz0703 Dec 2, 2021
8cb0d09
DCA-1331 bamboo docs (#743)
ometelytsia Dec 3, 2021
f20208a
Fix docs wording
ometelytsia Dec 6, 2021
599fd10
Docs: fix path
ometelytsia Dec 7, 2021
e9b7dc0
Reduce parallel_plans_count for Bamboo to 40
SergeyMoroz0703 Dec 8, 2021
9893df8
fixed analytics compliant message for bamboo
SergeyMoroz0703 Dec 8, 2021
7c9be03
Merge pull request #744 from atlassian/bamboo-hotfix-analytics-compli…
SergeyMoroz0703 Dec 8, 2021
9a44963
Bamboo docs polishing (#745)
ometelytsia Dec 9, 2021
2565f27
Fix link (#746)
ometelytsia Dec 9, 2021
92d7514
Pin taurus docker tag (#747)
ometelytsia Dec 10, 2021
bf51b21
Docs updates for bamboo generator (#749)
ometelytsia Dec 10, 2021
3755264
Release 6.0.0
ometelytsia Dec 10, 2021
7ecaac8
Merge branch 'master' into release/6.0.0
SergeyMoroz0703 Dec 14, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
# bzt run: docker run --shm-size=4g -v "$PWD:/dc-app-performance-toolkit" atlassian/dcapt jira.yml
# interactive run: docker run -it --entrypoint="/bin/bash" -v "$PWD:/dc-app-performance-toolkit" atlassian/dcapt

FROM blazemeter/taurus
FROM blazemeter/taurus:1.16.0

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

RUN apt-get -y update \
&& $APT_INSTALL vim git openssh-server python3.8-dev python3-pip wget \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 \
&& $APT_INSTALL vim git openssh-server python3.9-dev python3-pip wget \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 \
&& python -m pip install --upgrade pip \
&& python -m pip install --upgrade setuptools \
&& apt-get clean
Expand Down
25 changes: 14 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,18 @@ This repository contains Taurus scripts for performance testing of Atlassian Dat
* Bitbucket Server [Long Term Support release](https://confluence.atlassian.com/enterprise/atlassian-enterprise-releases-948227420.html): `7.6.10`, `7.17.1`

* Supported Crowd versions:
* Crowd [Long Term Support release](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `4.4.0`
* Crowd [release notes](https://confluence.atlassian.com/crowd/crowd-release-notes-199094.html): `4.4.0`

* Supported Bamboo versions:
* Bamboo [release notes](https://confluence.atlassian.com/bamboo/bamboo-release-notes-671089224.html): `8.1.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.7-3.8 and pip
* Python 3.7, 3.8 or 3.9 and pip
* JDK 8
* Google Chrome web browser
* Git client (only for Bitbucket DC)
Expand Down Expand Up @@ -63,7 +66,7 @@ pip install virtualenv
```
2. Create new virtual env with python3:
```
virtualenv venv -p python3
virtualenv venv -p full_path_to_python # e.g. use `which python3.9` to find the path
```
3. Activate virtual env:
```
Expand All @@ -78,8 +81,8 @@ pip install -r requirements.txt
Make sure that you have:
* [Python](https://www.python.org/downloads/) (see [dependencies](#dependencies) section for supported versions)
* pip
* [JDK 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html) installed
* Python developer package (e.g. `python3.8-dev` package for Python3.8)
* [JDK 11](https://www.oracle.com/java/technologies/downloads/#java11) installed
* Python developer package (e.g. `python3.9-dev` package for Python3.9)
* Google Chrome web browser
```
python3 --version
Expand All @@ -92,11 +95,11 @@ git --version
```
We recommend using [virtualenv](https://virtualenv.pypa.io/en/latest/) for Taurus. See example setup below.

## Example setup for clean Ubuntu 18.04
## Example setup for clean Ubuntu 20.04
JDK setup (if missing):
```
sudo apt-get update
sudo apt-get install -y openjdk-8-jre-headless
sudo apt-get install -y openjdk-11-jre-headless
```
Chrome setup (if missing):
```
Expand All @@ -107,9 +110,9 @@ sudo apt-get install -y ./google-chrome-stable_current_amd64.deb
Python and virtualenv setup:
```
sudo apt-get update
sudo apt-get -y install python3.8-dev python3-pip virtualenv
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
virtualenv venv -p python
sudo apt-get -y install python3.9-dev python3-pip virtualenv
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1
virtualenv venv -p /usr/bin/python
source venv/bin/activate
pip install -r requirements.txt
```
Expand Down Expand Up @@ -146,7 +149,7 @@ pip install virtualenv
```
2. Create new virtual env with python3:
```
virtualenv venv -p python
virtualenv venv -p full_path_to_python # e.g. use `where python3.9` to find the path
```
3. Activate virtual env:
```
Expand Down
114 changes: 114 additions & 0 deletions app/bamboo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
---
settings:
artifacts-dir: results/bamboo/%Y-%m-%d_%H-%M-%S
aggregator: consolidator
verbose: false
env:
application_hostname: test-bamboo.atlassian.com # Bamboo DC hostname without protocol and port e.g. test-bamboo.atlassian.com or localhost
application_protocol: http # http or https
application_port: 8085 # 80, 443, 8085, etc
secure: True # Set False to allow insecure connections, e.g. when using self-signed SSL certificate
application_postfix: # e.g. /bamboo in case of url like http://localhost/bamboo
admin_login: admin
admin_password: admin
load_executor: jmeter
concurrency: 200 # number of Bamboo users for Selenium actions
test_duration: 45m
ramp-up: 3m # time to spin all concurrent threads
total_actions_per_hour: 2000 # number of total JMeter actions per hour
WEBDRIVER_VISIBLE: False
JMETER_VERSION: 5.2.1
LANGUAGE: en_US.utf8
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.
view_all_builds: 15
view_build_result: 15
view_build_configuration: 10
view_job_configuration: 10
view_build_summary: 10
view_projects_list: 10
standalone_extension: 0 # By default disabled

number_of_agents: 50 # number of available remote agents
parallel_plans_count: 40 # number of parallel plans execution
start_plan_timeout: 60 # maximum timeout of plan to start
default_dataset_plan_duration: 60 # expected plan execution duration
services:
- module: shellexec
prepare:
- python util/pre_run/environment_checker.py
- python util/data_preparation/bamboo_prepare_data.py
shutdown:
- python util/post_run/jmeter_post_check.py
- python util/jtl_convertor/jtls-to-csv.py kpi.jtl kpi-1.jtl selenium.jtl
post-process:
- python util/analytics/analytics.py bamboo
- python util/post_run/cleanup_results_dir.py
execution:
- scenario: jmeter
executor: jmeter
concurrency: ${concurrency}
hold-for: ${test_duration}
ramp-up: ${ramp-up}
- scenario: locust
executor: locust
concurrency: ${parallel_plans_count}
hold-for: ${test_duration}
ramp-up: ${default_dataset_plan_duration}
- scenario: selenium
executor: selenium
runner: pytest
hold-for: ${test_duration}
scenarios:
selenium:
script: selenium_ui/bamboo_ui.py
locust:
script: locustio/bamboo/locustfile.py
jmeter:
script: jmeter/bamboo.jmx
properties:
application_hostname: ${application_hostname}
application_protocol: ${application_protocol}
application_port: ${application_port}
application_postfix: ${application_postfix}
# Workload model
total_actions_per_hr: ${total_actions_per_hour}
perc_view_all_builds: ${view_all_builds}
perc_view_build_result: ${view_build_result}
perc_view_build_configuration: ${view_build_configuration}
perc_view_job_configuration: ${view_job_configuration}
perc_view_build_summary: ${view_build_summary}
perc_view_projects_list: ${view_projects_list}
perc_standalone_extension: ${standalone_extension}
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-synthesis=2.2
system-properties:
server.rmi.ssl.disable: true
java.rmi.server.hostname: localhost
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
2 changes: 1 addition & 1 deletion app/bitbucket.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
2 changes: 1 addition & 1 deletion app/confluence.yml
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
Empty file.
41 changes: 41 additions & 0 deletions app/extension/bamboo/extension_ui.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import random

from selenium.webdriver.common.by import By

from selenium_ui.base_page import BasePage
from selenium_ui.conftest import print_timing
from selenium_ui.bamboo.pages.pages import Login
from util.conf import BAMBOO_SETTINGS


def app_specific_action(webdriver, datasets):
page = BasePage(webdriver)
rnd_plan = random.choice(datasets["build_plans"])

build_plan_id = rnd_plan[1]

# To run action as specific user uncomment code bellow.
# NOTE: If app_specific_action is running as specific user, make sure that app_specific_action is running
# just before test_2_selenium_z_log_out action
#
# @print_timing("selenium_app_specific_user_login")
# def measure():
# def app_specific_user_login(username='admin', password='admin'):
# login_page = Login(webdriver)
# login_page.delete_all_cookies()
# login_page.go_to()
# login_page.set_credentials(username=username, password=password)
# login_page.click_login_button()
# app_specific_user_login(username='admin', password='admin')
# measure()

@print_timing("selenium_app_custom_action")
def measure():
@print_timing("selenium_app_custom_action:view_plan_summary_page")
def sub_measure():
page.go_to_url(f"{BAMBOO_SETTINGS.server_url}/browse/{build_plan_id}")
page.wait_until_visible((By.ID, "buildResultsTable")) # Wait for summary field visible
# Wait for you app-specific UI element by ID selector
page.wait_until_visible((By.ID, "ID_OF_YOUR_APP_SPECIFIC_UI_ELEMENT"))
sub_measure()
measure()
2 changes: 1 addition & 1 deletion app/jira.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ modules:
httpsampler.ignore_failed_embedded_resources: "true"
selenium:
chromedriver:
version: "95.0.4638.69" # Supports Chrome version 95. You can refer to http://chromedriver.chromium.org/downloads
version: "96.0.4664.45" # Supports Chrome version 96. You can refer to http://chromedriver.chromium.org/downloads
reporting:
- data-source: sample-labels
module: junit-xml
Loading