gridinit-jmeter 0.2.5 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.md +17 -10
- data/gridinit-jmeter.gemspec +1 -1
- data/lib/gridinit-jmeter/dsl.rb +1 -1
- data/lib/gridinit-jmeter/dsl.xml +1467 -0
- data/lib/gridinit-jmeter/version.rb +1 -1
- metadata +4 -3
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# Gridinit::Jmeter
|
2
2
|
|
3
|
+
[](https://codeclimate.com/github/altentee/gridinit-jmeter)
|
4
|
+
|
3
5
|
Tired of using the JMeter GUI or looking at hairy XML files?
|
4
6
|
|
5
7
|
This gem lets you write test plans for JMeter in your favourite text editor, and optionally run them on [Gridinit.com](http://gridinit.com). Here's some background on [why we think](http://www.slideshare.net/90kts/gridinit-jmeter) a DSL is necessary. Don't have Ruby? No problems, you can try out this DSL online in our [sandbox](http://sandbox.gridinit.com)
|
@@ -35,7 +37,12 @@ end.jmx
|
|
35
37
|
So in this example, we just created a test plan, with 10 threads, each of which visited the search page at Google.
|
36
38
|
|
37
39
|
### Generating a JMeter Test Plan (JMX)
|
38
|
-
Note also how we called the `jmx` method of the test. Calling this method will write the contents of the JMeter test plan to
|
40
|
+
Note also how we called the `jmx` method of the test. Calling this method will write the contents of the JMeter test plan to file like this.
|
41
|
+
|
42
|
+
```
|
43
|
+
$ ruby testplan.rb
|
44
|
+
[2013-04-23T10:29:03.275743 #42060] INFO -- : Test plan saved to: jmeter.jmx
|
45
|
+
```
|
39
46
|
|
40
47
|
```xml
|
41
48
|
<?xml version="1.0" encoding="UTF-8"?>
|
@@ -54,7 +61,7 @@ The file that is created can then be executed in the JMeter GUI. If you want to
|
|
54
61
|
```ruby
|
55
62
|
test do
|
56
63
|
threads 10 do
|
57
|
-
visit 'Google Search', 'http://
|
64
|
+
visit 'Google Search', 'http://google.com'
|
58
65
|
end
|
59
66
|
end.jmx(file: "/tmp/my_testplan.jmx")
|
60
67
|
```
|
@@ -71,7 +78,7 @@ You can execute the JMeter test plan by calling the `run` method of the test lik
|
|
71
78
|
```ruby
|
72
79
|
test do
|
73
80
|
threads 10 do
|
74
|
-
visit 'Google Search', 'http://
|
81
|
+
visit 'Google Search', 'http://google.com'
|
75
82
|
end
|
76
83
|
end.run
|
77
84
|
```
|
@@ -81,7 +88,7 @@ This will launch JMeter in headless (non-GUI mode) and execute the test plan. Th
|
|
81
88
|
```ruby
|
82
89
|
test do
|
83
90
|
threads 10 do
|
84
|
-
visit 'Google Search', 'http://
|
91
|
+
visit 'Google Search', 'http://google.com'
|
85
92
|
end
|
86
93
|
end.run(
|
87
94
|
path: '/usr/share/jmeter/bin/',
|
@@ -99,7 +106,7 @@ To execute the test on the Grid, call the `grid` method on the test and pass it
|
|
99
106
|
```ruby
|
100
107
|
test do
|
101
108
|
threads 10 do
|
102
|
-
visit 'Google Search', 'http://
|
109
|
+
visit 'Google Search', 'http://google.com'
|
103
110
|
end
|
104
111
|
end.grid('OxtZ-4v-v0koSz5Y0enEQQ')
|
105
112
|
```
|
@@ -221,21 +228,21 @@ end
|
|
221
228
|
You can use the `visit` method to navigate to pages:
|
222
229
|
|
223
230
|
```ruby
|
224
|
-
visit 'Google Search', 'http://
|
231
|
+
visit 'Google Search', 'http://google.com'
|
225
232
|
```
|
226
233
|
|
227
234
|
This method makes a single request and takes 3 parameters: the label, the URL and an optional parameters hash.
|
228
235
|
|
229
236
|
```ruby
|
230
|
-
visit 'Google Search', 'http://
|
231
|
-
visit 'Google Search', 'http://
|
237
|
+
visit 'Google Search', 'http://google.com'
|
238
|
+
visit 'Google Search', 'http://google.com', {
|
232
239
|
method: 'POST',
|
233
240
|
DO_MULTIPART_POST: 'true'
|
234
241
|
}
|
235
|
-
visit 'Google Search', 'http://
|
242
|
+
visit 'Google Search', 'http://google.com', {
|
236
243
|
use_keepalive: 'false'
|
237
244
|
}
|
238
|
-
visit 'Google Search', 'http://
|
245
|
+
visit 'Google Search', 'http://google.com', {
|
239
246
|
connect_timeout: '1000',
|
240
247
|
response_timeout: '60000',
|
241
248
|
}
|
data/gridinit-jmeter.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.email = ["support@gridinit.com"]
|
11
11
|
gem.description = %q{This is a Ruby based DSL for writing JMeter test plans}
|
12
12
|
gem.summary = %q{This is a Ruby based DSL for writing JMeter test plans}
|
13
|
-
gem.homepage = ""
|
13
|
+
gem.homepage = "http://github.com/altentee/gridinit-jmeter"
|
14
14
|
gem.add_dependency("rest-client")
|
15
15
|
gem.add_dependency("nokogiri")
|
16
16
|
gem.add_runtime_dependency('json-jruby') if RUBY_PLATFORM == 'java'
|
data/lib/gridinit-jmeter/dsl.rb
CHANGED
@@ -333,7 +333,7 @@ module Gridinit
|
|
333
333
|
def run(params={})
|
334
334
|
file(params)
|
335
335
|
logger.warn "Test executing locally ..."
|
336
|
-
cmd = "#{params[:path]}jmeter -n -t #{params[:file]} -j #{params[:log] ? params[:log] : 'jmeter.log' } -l #{params[:jtl] ? params[:jtl] : 'jmeter.jtl' }"
|
336
|
+
cmd = "#{params[:path]}jmeter #{"-n" unless params[:gui] } -t #{params[:file]} -j #{params[:log] ? params[:log] : 'jmeter.log' } -l #{params[:jtl] ? params[:jtl] : 'jmeter.jtl' }"
|
337
337
|
logger.debug cmd if params[:debug]
|
338
338
|
Open3.popen2e("#{cmd} -q #{File.dirname(__FILE__)}/helpers/jmeter.properties") do |stdin, stdout_err, wait_thr|
|
339
339
|
while line = stdout_err.gets
|