gridinit-jmeter 0.0.1 → 0.0.2
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/Gemfile +0 -4
- data/gridinit-jmeter.gemspec +2 -0
- data/lib/gridinit-jmeter.rb +4 -3
- data/lib/gridinit-jmeter/dsl.rb +16 -1
- data/lib/gridinit-jmeter/fallback_content_proxy.rb +57 -0
- data/lib/gridinit-jmeter/logger-colors.rb +48 -0
- data/lib/gridinit-jmeter/strip-heredoc.rb +5 -0
- data/lib/gridinit-jmeter/version.rb +1 -1
- metadata +39 -3
data/Gemfile
CHANGED
data/gridinit-jmeter.gemspec
CHANGED
@@ -11,6 +11,8 @@ Gem::Specification.new do |gem|
|
|
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
13
|
gem.homepage = ""
|
14
|
+
gem.add_dependency("rest-client", "~> 1.6.7")
|
15
|
+
gem.add_dependency("nokogiri", "~> 1.5.5")
|
14
16
|
|
15
17
|
gem.files = `git ls-files`.split($/)
|
16
18
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
data/lib/gridinit-jmeter.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'nokogiri'
|
2
|
-
require 'docile'
|
3
|
-
require 'active_support/core_ext'
|
4
|
-
require 'logger/colors'
|
5
2
|
require 'rest_client'
|
3
|
+
require 'json'
|
6
4
|
require 'cgi'
|
7
5
|
|
8
6
|
require 'gridinit-jmeter/dsl'
|
7
|
+
require 'gridinit-jmeter/fallback_content_proxy'
|
8
|
+
require 'gridinit-jmeter/logger-colors'
|
9
|
+
require 'gridinit-jmeter/strip-heredoc'
|
9
10
|
require 'gridinit-jmeter/version'
|
10
11
|
require 'gridinit-jmeter/test_plan'
|
11
12
|
require 'gridinit-jmeter/auth_manager'
|
data/lib/gridinit-jmeter/dsl.rb
CHANGED
@@ -1,4 +1,19 @@
|
|
1
1
|
module Gridinit
|
2
|
+
|
3
|
+
def dsl_eval(dsl, &block)
|
4
|
+
block_context = eval("self", block.binding)
|
5
|
+
proxy_context = Gridinit::Jmeter::FallbackContextProxy.new(dsl, block_context)
|
6
|
+
begin
|
7
|
+
block_context.instance_variables.each { |ivar| proxy_context.instance_variable_set(ivar, block_context.instance_variable_get(ivar)) }
|
8
|
+
proxy_context.instance_eval(&block)
|
9
|
+
ensure
|
10
|
+
block_context.instance_variables.each { |ivar| block_context.instance_variable_set(ivar, proxy_context.instance_variable_get(ivar)) }
|
11
|
+
end
|
12
|
+
dsl
|
13
|
+
end
|
14
|
+
|
15
|
+
module_function :dsl_eval
|
16
|
+
|
2
17
|
module Jmeter
|
3
18
|
|
4
19
|
class DSL
|
@@ -173,5 +188,5 @@ module Gridinit
|
|
173
188
|
end
|
174
189
|
|
175
190
|
def test(&block)
|
176
|
-
|
191
|
+
Gridinit.dsl_eval(Gridinit::Jmeter::DSL.new, &block)
|
177
192
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'set'
|
2
|
+
|
3
|
+
module Gridinit
|
4
|
+
module Jmeter
|
5
|
+
|
6
|
+
class FallbackContextProxy
|
7
|
+
NON_PROXIED_METHODS = Set[:object_id, :__send__, :__id__, :==, :equal?, :"!", :"!=", :instance_eval,
|
8
|
+
:instance_variables, :instance_variable_get, :instance_variable_set,
|
9
|
+
:remove_instance_variable]
|
10
|
+
|
11
|
+
NON_PROXIED_INSTANCE_VARIABLES = Set[:@__receiver__, :@__fallback__]
|
12
|
+
|
13
|
+
instance_methods.each do |method|
|
14
|
+
unless NON_PROXIED_METHODS.include?(method.to_sym)
|
15
|
+
undef_method(method)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def initialize(receiver, fallback)
|
20
|
+
@__receiver__ = receiver
|
21
|
+
@__fallback__ = fallback
|
22
|
+
end
|
23
|
+
|
24
|
+
def id
|
25
|
+
@__receiver__.__send__(:id)
|
26
|
+
end
|
27
|
+
|
28
|
+
# Special case due to `Kernel#sub`'s existence
|
29
|
+
def sub(*args, &block)
|
30
|
+
__proxy_method__(:sub, *args, &block)
|
31
|
+
end
|
32
|
+
|
33
|
+
# Special case to allow proxy instance variables
|
34
|
+
def instance_variables
|
35
|
+
# Ruby 1.8.x returns string names, convert to symbols
|
36
|
+
super.map(&:to_sym) - NON_PROXIED_INSTANCE_VARIABLES.to_a
|
37
|
+
end
|
38
|
+
|
39
|
+
def method_missing(method, *args, &block)
|
40
|
+
__proxy_method__(method, *args, &block)
|
41
|
+
end
|
42
|
+
|
43
|
+
def __proxy_method__(method, *args, &block)
|
44
|
+
begin
|
45
|
+
@__receiver__.__send__(method.to_sym, *args, &block)
|
46
|
+
rescue ::NoMethodError => e
|
47
|
+
begin
|
48
|
+
@__fallback__.__send__(method.to_sym, *args, &block)
|
49
|
+
rescue ::NoMethodError
|
50
|
+
raise(e)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
3
|
+
class Logger
|
4
|
+
module Colors
|
5
|
+
VERSION = '1.0.0'
|
6
|
+
|
7
|
+
NOTHING = '0;0'
|
8
|
+
BLACK = '0;30'
|
9
|
+
RED = '0;31'
|
10
|
+
GREEN = '0;32'
|
11
|
+
BROWN = '0;33'
|
12
|
+
BLUE = '0;34'
|
13
|
+
PURPLE = '0;35'
|
14
|
+
CYAN = '0;36'
|
15
|
+
LIGHT_GRAY = '0;37'
|
16
|
+
DARK_GRAY = '1;30'
|
17
|
+
LIGHT_RED = '1;31'
|
18
|
+
LIGHT_GREEN = '1;32'
|
19
|
+
YELLOW = '1;33'
|
20
|
+
LIGHT_BLUE = '1;34'
|
21
|
+
LIGHT_PURPLE = '1;35'
|
22
|
+
LIGHT_CYAN = '1;36'
|
23
|
+
WHITE = '1;37'
|
24
|
+
|
25
|
+
SCHEMA = {
|
26
|
+
STDOUT => %w[nothing green brown red purple cyan],
|
27
|
+
STDERR => %w[nothing green yellow light_red light_purple light_cyan],
|
28
|
+
}
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
class Logger
|
33
|
+
alias format_message_colorless format_message
|
34
|
+
|
35
|
+
def format_message(level, *args)
|
36
|
+
if Logger::Colors::SCHEMA[@logdev.dev]
|
37
|
+
color = begin
|
38
|
+
Logger::Colors.const_get \
|
39
|
+
Logger::Colors::SCHEMA[@logdev.dev][Logger.const_get(level.sub "ANY","UNKNOWN")].to_s.upcase
|
40
|
+
rescue NameError
|
41
|
+
"0;0"
|
42
|
+
end
|
43
|
+
"\e[#{ color }m#{ format_message_colorless(level, *args) }\e[0;0m"
|
44
|
+
else
|
45
|
+
format_message_colorless(level, *args)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gridinit-jmeter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,40 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-11-
|
13
|
-
dependencies:
|
12
|
+
date: 2012-11-20 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rest-client
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 1.6.7
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 1.6.7
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: nokogiri
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 1.5.5
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 1.5.5
|
14
46
|
description: This is a Ruby based DSL for writing JMeter test plans
|
15
47
|
email:
|
16
48
|
- support@gridinit.com
|
@@ -43,10 +75,13 @@ files:
|
|
43
75
|
- lib/gridinit-jmeter/cache_manager.rb
|
44
76
|
- lib/gridinit-jmeter/cookie_manager.rb
|
45
77
|
- lib/gridinit-jmeter/dsl.rb
|
78
|
+
- lib/gridinit-jmeter/fallback_content_proxy.rb
|
46
79
|
- lib/gridinit-jmeter/gaussian_random_timer.rb
|
47
80
|
- lib/gridinit-jmeter/http_sampler.rb
|
81
|
+
- lib/gridinit-jmeter/logger-colors.rb
|
48
82
|
- lib/gridinit-jmeter/regex_extractor.rb
|
49
83
|
- lib/gridinit-jmeter/response_assertion.rb
|
84
|
+
- lib/gridinit-jmeter/strip-heredoc.rb
|
50
85
|
- lib/gridinit-jmeter/test_plan.rb
|
51
86
|
- lib/gridinit-jmeter/thread_group.rb
|
52
87
|
- lib/gridinit-jmeter/transaction.rb
|
@@ -83,3 +118,4 @@ test_files:
|
|
83
118
|
- spec/dsl_spec.rb
|
84
119
|
- spec/spec_helper.rb
|
85
120
|
- spec/stub.rb
|
121
|
+
has_rdoc:
|