cookbook 'jmeter', '~> 0.2.2', :supermarket
jmeter (3) Versions 0.2.2 Follow8
Installs/Configures jmeter for load-testing.
cookbook 'jmeter', '~> 0.2.2'
knife supermarket install jmeter
knife supermarket download jmeter
jmeter-cookbook
Configures a system load-testing with Apache JMeter.
Requirements
There is a hard requirement of both Chef and Java for this package to install. We accomplish installing both of these by using additional dependency cookbooks which target the operating system family and install the appropriate software from either the package management system or a source URL. These settings are completely configurable using Chef JSON attributes with either the Chef Solo or Chef Zero commandline tools.
Cookbooks
The dependency cookbooks are resolved automatically using the Berkshelf commandline tool. They are also packaged so that Chef is able to work appropriately from the commandline. Each cookbook can be configured using the node attributes in the Chef JSON file.
The dependency cookbooks are: - Ark cookbook - Chef Sugar cookbok - Java cookbook
Platforms
Since the dependencies for this really boil down to the ability to install the Omnibus Chef installer we are capable of supporting nearly any platform that has that built for it. But for testing purposes the approved platforms are locked at the latest, supported versions of both Enterprise Linux and Ubuntu Linux. - CentOS (RedHat) 7.0, 6.5, 5.8 - Ubuntu 14.04, 12.04
Usage
This cookbook is designed to be flexible and light-weight. The goal was to allow for easy configuration of JMeter on the target host using a simple attributes file (JSON). Additionally, a Ruby language component is exposed so that custom test-plans can be written in wrapper cookbooks. These test plans can be deployed with software that Chef is configuring.
Packaging
Because this cookbook utilizes Berkshelf it is very easy to package up the cookbook, along with all of its dependencies, into a tarball which can be fetched over HTTP and fed into Chef Solo or Chef Zero.
bundle install --binstubs
bin/berks package
All of the cookbook dependencies must be packaged in order for the
provisioning step to work properly. The easiest way to do this is
using the Berkshelf package command which will create a tarball that
can be uploaded to an HTTP endpoint. This endpoint can be fed into
the chef-client
on the commandline.
Test Plan
This cookbook embeds a Ruby plugin which allows for a test plan to be described easily inside of a recipe. A few test plans are included as files inside of this cookbook if you wish to run it manually. But inside of the default recipe we create a test plan against Google.
jmeter_plan 'google-search' do
block do
test do
threads count: 10 do
visit name: 'Google Search', url: 'http://google.com'
end
end
end
end
This lightweight resource provider in Chef will automatically
generate a test plan that can be fed into JMeter on the
command-line. All of the test plans will land in the directory
specified by the node[:jmeter][:plan_dir]
attribute. By default this
is /etc/jmeter/plans.d
.
Chef Zero
Using the Chef Client in local mode we can pass in
attributes to configure the JMeter installation on the local
machine. The dependency cookbooks can also be specified by a URL that
is accessible from the host machine. The following command will
install JMeter, with the attributes specified in the attributes.json
file, and with the dependency cookbooks that were packaged by running
the berks package
command (above).
chef-client -z -j attributes.json -r http://blp.s3.amazonaws.com/jmeter-cookbooks.tar.gz
Maintainers
- Author:: John Bellone @johnbellone (jbellone@bloomberg.net)
- Author:: Victor Rosero (vrosero@bloomberg.net)
Dependent cookbooks
poise >= 0.0.0 |
java >= 0.0.0 |
chef-sugar >= 0.0.0 |
build-essential >= 0.0.0 |
ark >= 0.0.0 |
apt >= 0.0.0 |
Contingent cookbooks
There are no cookbooks that are contingent upon this one.
Collaborator Number Metric
0.2.2 failed this metric
Failure: Cookbook has 0 collaborators. A cookbook must have at least 2 collaborators to pass this metric.
Contributing File Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.2.2 failed this metric
FC064: Ensure issues_url is set in metadata: jmeter/metadata.rb:1
FC065: Ensure source_url is set in metadata: jmeter/metadata.rb:1
FC066: Ensure chef_version is set in metadata: jmeter/metadata.rb:1
FC069: Ensure standardized license defined in metadata: jmeter/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: jmeter/recipes/default.rb:16
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.2.2 passed this metric
Publish Metric
0.2.2 failed this metric
jmeter is up for adoption
Supported Platforms Metric
0.2.2 passed this metric
Testing File Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.2.2 failed this metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a CONTRIBUTING.md file
Foodcritic Metric
0.2.2 failed this metric
FC064: Ensure issues_url is set in metadata: jmeter/metadata.rb:1
FC065: Ensure source_url is set in metadata: jmeter/metadata.rb:1
FC066: Ensure chef_version is set in metadata: jmeter/metadata.rb:1
FC069: Ensure standardized license defined in metadata: jmeter/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: jmeter/recipes/default.rb:16
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
No Binaries Metric
0.2.2 passed this metric
Publish Metric
0.2.2 failed this metric
jmeter is up for adoption
Supported Platforms Metric
0.2.2 passed this metric
Testing File Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.2.2 failed this metric
FC065: Ensure source_url is set in metadata: jmeter/metadata.rb:1
FC066: Ensure chef_version is set in metadata: jmeter/metadata.rb:1
FC069: Ensure standardized license defined in metadata: jmeter/metadata.rb:1
FC122: Use the build_essential resource instead of the recipe: jmeter/recipes/default.rb:16
Run with Foodcritic Version 14.3.0 with tags metadata,correctness ~FC031 ~FC045 and failure tags any
0.2.2 passed this metric
Publish Metric
0.2.2 failed this metric
jmeter is up for adoption
Supported Platforms Metric
0.2.2 passed this metric
Testing File Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.2.2 failed this metric
0.2.2 passed this metric
Testing File Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must contain a TESTING.md file
Version Tag Metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number
0.2.2 failed this metric
0.2.2 failed this metric
Failure: To pass this metric, your cookbook metadata must include a source url, the source url must be in the form of https://github.com/user/repo, and your repo must include a tag that matches this cookbook version number