ruby-jmeter 2.11.8 → 2.11.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 99deb58961a1b46d676136d9acd3d37ec93e2787
4
- data.tar.gz: e961ced2509fc856c894c3df5f73e2e0a0511751
3
+ metadata.gz: 364b3c932e81a8d896c5c79a0d3bd34bd3d1ed3b
4
+ data.tar.gz: 25a8fc5ef8549bef2f84cc23f71332b0a5729cff
5
5
  SHA512:
6
- metadata.gz: 9a20e071d86ba0491e3d0c38f4c5e451bbebc61a7ce1c8b07e0c79a8380ba13de60ae4a2e1b301aa47e5b8baab49ca9a81a31f8ad0b0bfd2b55839cea96311ed
7
- data.tar.gz: a215cbc73afe7dcf55de35697b16363f7addb6754c6051792402dc643573717f249195e286f847fa273e1c4e21c1ae5c536d3adc4faf3f297102db8acfa5dde8
6
+ metadata.gz: d5ec776fbc3bcfeb18ee8f18b7d5001cabfe328d397f772f546006303fd0fd195fa6b30c39f79ecc3c5909feb196c6d583f77ffdd6c9bb4b373c735842da1202
7
+ data.tar.gz: d22b98b39df23d4bc1f32d8a28c1c56cf847c76c88e8260a242c4dd1bf13e6f3a165f27d998a120fc049cf6233c0351d03c01fcf38eb6db4c4d1fb1a70c5d20a
@@ -0,0 +1,112 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+ require 'ruby-jmeter'
3
+
4
+ # Virtual user definitions
5
+ class VirtualUser
6
+
7
+ # initializes the VirtualUser object and adds some default test
8
+ # components.
9
+ # @param dsl the dsl
10
+ def initialize(dsl)
11
+ @dsl = dsl
12
+
13
+ defaults domain: 'github.com', # default domain if not specified in URL
14
+ protocol: 'http', # default protocol if not specified in URL
15
+ download_resources: true, # download images/CSS/JS
16
+ use_concurrent_pool: 6, # mimic Chrome/IE parallelism for images/CSS/JS
17
+ urls_must_match: '(https?.\/\/)?([^\.]*\.)*(github\.com)?\/.*' # only download resources for the target domain
18
+
19
+ cookies # om nom nom
20
+
21
+ cache clear_each_iteration: true # each thread iteration mimics a new user with an empty browser cache
22
+
23
+ with_user_agent 'ie9' # send IE9 browser headers
24
+
25
+ with_gzip # add HTTP request headers to allow GZIP compression. Most sites support this nowadays.
26
+
27
+ end
28
+
29
+ # Adds a user think time. Note that this is slightly different than the
30
+ # default JMeter think time, in that it executes sequentially with test steps.
31
+ # @param delay [int] the target pause time, in milliseconds
32
+ # @param deviation [int] the pause deviation, in milliseconds
33
+ def pause(delay=30000, deviation=5000)
34
+ test_action name: 'Think Time', action: 1, target: 0, duration: 0 do
35
+ think_time delay, deviation
36
+ end
37
+ end
38
+
39
+ # Requests the home page.
40
+ def home_page
41
+ visit name: 'Home page', url: '/'
42
+ pause
43
+ end
44
+
45
+ # Searches for a repository.
46
+ # @param repo [String] the repository to search for
47
+ def search_for_repository(repo)
48
+ visit name: 'Search for project', url: '/search',
49
+ always_encode: true,
50
+ fill_in: {
51
+ 'q' => repo,
52
+ 'ref' => 'cmdform'
53
+ }
54
+ pause
55
+ end
56
+
57
+ # Visits a repository page.
58
+ # @param repo_path [String] the repository URL path
59
+ def view_repository(repo_path)
60
+ visit name: 'Repository page', url: repo_path
61
+ pause
62
+ end
63
+
64
+ # Views a branch/tag page.
65
+ # @param branch_path [String] the branch URL path
66
+ def view_branch(branch_path)
67
+ visit name: 'Branch page', url: branch_path
68
+ pause
69
+ end
70
+
71
+ ####################################################################
72
+ private
73
+
74
+ # Passes method calls through to the underlying DSL.
75
+ # @param method the method
76
+ # @param args the arguments
77
+ # @param block the block
78
+ def method_missing method, *args, &block
79
+ @dsl.__send__ method, *args, &block
80
+ end
81
+ ####################################################################
82
+ end
83
+
84
+ # JMeter test plan begins here.
85
+ test do
86
+
87
+ # Defines a thread group. We allow certain parameters to be passed in
88
+ # as system properties.
89
+ threads count: '${__P(threads,1)}',
90
+ rampup: '${__P(rampup,600)}',
91
+ name: 'Test Scenario - GitHub project navigation',
92
+ duration: '${__P(duration, 600)}' do
93
+
94
+ user = VirtualUser.new(self) # This will add a bunch of test components.
95
+
96
+ # In the event of an error, the thread will start a new loop. If this
97
+ # happens on the first request, we could start flooding the site with
98
+ # requests.
99
+ # To prevent this from happening, we insert a quick pause before the
100
+ # first request.
101
+ user.pause 1000,0
102
+
103
+ # User workflow begins here.
104
+ # Note that think times are defined inside the page methods.
105
+ user.home_page
106
+ user.search_for_repository 'ruby-jmeter'
107
+ user.view_repository '/flood-io/ruby-jmeter'
108
+ user.view_branch '/flood-io/ruby-jmeter/tree/v2.11.8'
109
+
110
+ end
111
+ end.run(path: '/usr/share/jmeter-2.11/bin/', gui: true)
112
+
@@ -142,6 +142,11 @@ module RubyJmeter
142
142
  value: 'gzip, deflate'
143
143
  end
144
144
 
145
+ def with_json
146
+ http_header_manager name: 'Accept',
147
+ value: 'text/html, application/xhtml+xml, application/xml;q=0.9, */*;q=0.8, application/json'
148
+ end
149
+
145
150
  def test_data(*args, &block)
146
151
  params = args.shift || {}
147
152
  params = { key: params.to_s }.merge(args.shift || {}) if(params.class == String || params.class == Symbol)
@@ -1,3 +1,3 @@
1
1
  module RubyJmeter
2
- VERSION = "2.11.8"
2
+ VERSION = "2.11.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jmeter
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.11.8
4
+ version: 2.11.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Koopmans
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-05-13 00:00:00.000000000 Z
11
+ date: 2014-05-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -88,6 +88,7 @@ files:
88
88
  - examples/real_flood_test_data.rb
89
89
  - examples/real_immi.gov.au_visa.rb
90
90
  - examples/real_page_objects.rb
91
+ - examples/real_user_objects_github.rb
91
92
  - lib/ruby-jmeter.rb
92
93
  - lib/ruby-jmeter/DSL.md
93
94
  - lib/ruby-jmeter/dsl.rb