Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Distributed JMeter

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently from CloudScale project. For generating the load it uses the opensource software Apache JMeter. Distributed JMeter can be deployed on AWS or OpenStack. For more information how to do it, see below.

We developed distributed JMeter to load test the CloudScale showcase application called CloudStore.

You can read more about CloudScale project on: http://www.cloudscale-project.eu

Prerequisites

  1. Python 2.7
  2. pip installed
  3. virtualenv installed
  4. R statistical tool installed
  5. ggplot2 library installed in R

In order for distributed jmeter to work properly you will need to install R tool for statistical analysis. R is used to plot graphs from measurement results.

For more information on how to install R on your system please refer to official R project website.

After you successfully installed R you will also need to install ggplot2 library and it's dependencies. For instructions on how to do that please refere to http://ggplot2.org/ site.

Configs

Settings in config files are separated into sections for easier understanding.

Amazon Web Services

[SHOWCASE]

autoscalable - It's value yes or no tells application if showcase is deployed in autoscalable mode. This is important for getting the data from AWS.

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

ips - IP addresses of instances to deploy JMeter on. Leave empty to not use this setting.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[AWS]

region - The region name where to deploy application.

aws_access_key_id - Your AWS access key.

aws_secret_access_key - Your AWS secret key.

availability_zones - Availability zones for region.

[EC2]

instance_type - EC2 instance type for distributed JMeter

remote_user - Virtual Machine user name for SSH access

ami_id - Amazon Machine Image ID to provision VM from.

key_name - Only the name of SSH key for connecting to VM.

key_pair - Path to SSH key for connecting to VM. It is auto-generated.

[RDS]

identifiers - Name of VM for RDS database.

OpenStack

[SHOWCASE]

host - The host name where showcase is deployed. Showcase must be deployed on /showcase-1-a path

frontend_instances_id - The name of frontend instances of showcase. It is used for getting data from showcase instances.

[SCENARIO]

num_threads - The number of threads that we want to simulate. One JMeter instance can handle 2000 VU.

instance_names - Name of instances on OpenStack to deploy distributed JMeter on.

jmeter_url - URL to JMeter distribution. You can download JMeter and modify it, upload it somewhere and replace existing URL with yours. Otherwise leave as it is.

[OPENSTACK]

user - User for authentication to OpenStack.

pwd - Password for user for authentication to OpenStack.

tenant - Tenant name.

url - URL to your OpenStack authentication.

image - Image name to use for VM.

instance_type - Flavor name to use with VM.

key_name - The name of SSH key on OpenStack.

key_pair_path - Path to SSH key.

remote_user - Username to use for SSH on VM.

Installation

  1. Download ZIP distribution of distributed-jmeter scripts or checkout this Git repository.
  2. Change current directory to unpacked or checked out distributed-jmeter directory
$ cd Distributed-jmeter-master/
  1. Create and activate new virtual environment:
$ virtualenv distributed-jmeter-env && source distributed-jmeter-env/bin/activate
  1. Install requirements with pip:
$ pip install -r requirements.txt

Usage

Amazon Web Services

To run distributed JMeter on AWS edit bin/config.aws.ini file and run:

$ python run.py aws config.aws.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

OpenStack

To run distributed JMeter on OpenStack edit bin/config.openstack.ini file and run:

$ python run.py openstack config.openstack.ini ../scenarios/cloudscale-max.jmx

from bin/ directory.

About

Distributed JMeter application is a load generator application which was developed for CloudScale project, but it can be used independently

Resources

Stars

2 stars

Watchers

7 watching

Forks

Releases

Packages

Contributors

Languages