ruby-jmeter 2.1.5 → 2.1.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/CHANGES.md ADDED
@@ -0,0 +1,59 @@
1
+ # Changes
2
+
3
+ ## v2.1.5
4
+
5
+ - HTTP Request Defaults now have more intuitive key names:
6
+
7
+ ```ruby
8
+ defaults domain: 'example.com',
9
+ protocol: 'https',
10
+ download_resources: true,
11
+ use_concurrent_pool: 5,
12
+ urls_must_match: 'http.+?example.com'
13
+ ```
14
+
15
+ - There's a new `with_gzip` header manager alias:
16
+
17
+ ```ruby
18
+ test do
19
+ threads do
20
+ transaction name: "TC_02", parent: true, include_timers: true do
21
+ visit url: "/" do
22
+ with_gzip
23
+ end
24
+ end
25
+ end
26
+ end
27
+ ```
28
+
29
+ - There's a new `test_data` helper method to simplify getting test data from the flood.io shared data URL. Including ability to stub, set defaults, get all values or explicit values :
30
+
31
+ ```ruby
32
+ test do
33
+ threads 1 do
34
+
35
+ # populate ${testdata} array with all results from shared data url
36
+ test_data 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text'
37
+
38
+ # populate named ${postcodes} array with all results from shared data url
39
+ test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
40
+ name: 'postcodes'
41
+
42
+ # populate named ${postcode} with random result from shared data url
43
+ test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
44
+ name: 'postcode_random', match_num: 0
45
+
46
+
47
+ # populate named ${postcode} with exact match from shared data url
48
+ test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
49
+ name: 'postcode_exact', regex: '^(\d+)', match_num: 1
50
+
51
+ # populate named ${postcode} with exact match from a stubbed data url
52
+ test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
53
+ name: 'postcode_stub', regex: '^(\d+)', match_num: 1, default: '2010', stub: true
54
+
55
+ debug_sampler
56
+ view_results
57
+ end
58
+ end.run(path: '/usr/share/jmeter/bin/', gui: true)
59
+ ```
@@ -4,25 +4,55 @@ require 'ruby-jmeter'
4
4
  test do
5
5
  threads 1 do
6
6
 
7
- # populate ${testdata} array with all results from shared data url
8
- test_data 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text'
7
+ # populate ${testdata} array with *all* results from shared data url
8
+ # using default match number -1
9
+ test_data :postcodes
10
+
11
+ # testdata now populated with:
12
+ #testdata_1=NSW
13
+ #testdata_1_g=1
14
+ #testdata_1_g0="NSW"
15
+ #testdata_1_g1=NSW
16
+ #testdata_2=nsw-sydney-2000
17
+ #testdata_2_g=1
18
+ #testdata_2_g0="nsw-sydney-2000"
19
+ #testdata_2_g1=nsw-sydney-2000
20
+ #testdata_matchNr=2
21
+
22
+ # visit first column match
23
+ visit 'http://example.com/?${testdata_1}'
24
+
25
+ # visit second column match
26
+ visit 'http://example.com/?${testdata_2}'
9
27
 
10
28
  # populate named ${postcodes} array with all results from shared data url
11
- test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
12
- name: 'postcodes'
13
-
14
- # populate named ${postcode} with random result from shared data url
15
- test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
16
- name: 'postcode_random', match_num: 0
17
-
18
-
19
- # populate named ${postcode} with exact match from shared data url
20
- test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
21
- name: 'postcode_exact', regex: '^(\d+)', match_num: 1
22
-
23
- # populate named ${postcode} with exact match from a stubbed data url
24
- test_data url: 'http://54.252.206.143:8080/SRANDMEMBER/postcodes?type=text',
25
- name: 'postcode_stub', regex: '^(\d+)', match_num: 1, default: '2010', stub: true
29
+ # using specific key, command and host
30
+ test_data key: 'postcodes',
31
+ command: 'SRANDMEMBER',
32
+ host: '54.252.206.143'
33
+
34
+ # populate named ${postcode_random} from shared data url
35
+ # using random result, match number 0 and override name
36
+ test_data :postcodes,
37
+ name: 'postcode_random',
38
+ match_num: 0
39
+
40
+
41
+ # populate named ${postcode} from shared data url
42
+ # using exact result, match number 1 and override name
43
+ test_data 'postcodes',
44
+ name: 'postcode_exact',
45
+ regex: '^(\d+)',
46
+ match_num: 1
47
+
48
+ # populate named ${postcode} from a stubbed data url
49
+ # with stub = true and default value 2010
50
+ test_data 'postcodes',
51
+ name: 'postcode_stub',
52
+ regex: '^(\d+)',
53
+ match_num: 1,
54
+ default: '2010',
55
+ stub: true
26
56
 
27
57
  debug_sampler
28
58
  view_results
@@ -144,12 +144,23 @@ module RubyJmeter
144
144
 
145
145
  def test_data(*args, &block)
146
146
  params = args.shift || {}
147
- params = { url: params }.merge(args.shift || {}) if params.class == String
147
+ params = { key: params.to_s }.merge(args.shift || {}) if(params.class == String || params.class == Symbol)
148
+ params[:command] ||= 'SRANDMEMBER'
148
149
  params[:name] ||= 'testdata'
149
150
  params[:regex] ||= '"(.+?)"'
150
151
  params[:match_num] ||= -1
151
152
  params[:default] ||= ''
153
+
154
+ params[:host] ||= '54.252.206.143'
155
+
156
+ params[:url] = params[:key] if URI.parse(URI::encode(params[:key])).scheme
157
+
158
+ params[:url] = if params[:host]
159
+ "http://#{params[:host]}:8080/#{params[:command]}/#{params[:key]}?type=text"
160
+ end
161
+
152
162
  params[:url] = 'http://54.252.206.143:8080/' if params[:stub]
163
+
153
164
  get name: '__testdata', url: params[:url] do
154
165
  extract name: params[:name],
155
166
  regex: params[:regex],
@@ -1,3 +1,3 @@
1
1
  module RubyJmeter
2
- VERSION = "2.1.5"
2
+ VERSION = "2.1.6"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jmeter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.5
4
+ version: 2.1.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-10-30 00:00:00.000000000 Z
12
+ date: 2013-11-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rest-client
@@ -55,6 +55,7 @@ files:
55
55
  - .gitignore
56
56
  - .rspec
57
57
  - .ruby-version
58
+ - CHANGES.md
58
59
  - Gemfile
59
60
  - LICENSE.txt
60
61
  - README.md
@@ -254,7 +255,4 @@ rubygems_version: 1.8.23
254
255
  signing_key:
255
256
  specification_version: 3
256
257
  summary: This is a Ruby based DSL for writing JMeter test plans
257
- test_files:
258
- - spec/dsl_spec.rb
259
- - spec/spec_helper.rb
260
- - spec/stub.rb
258
+ test_files: []