gatling 0.9.9 → 1.0.0
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/lib/gatling.rb +44 -23
- data/lib/gatling/version.rb +1 -1
- data/spec/spec_helper.rb +1 -1
- metadata +10 -10
data/lib/gatling.rb
CHANGED
@@ -5,20 +5,23 @@ module Gatling
|
|
5
5
|
|
6
6
|
#TODO: Training mode
|
7
7
|
#TODO: Diff with reports
|
8
|
-
#TODO: Canidate in spec
|
9
8
|
#TODO: Fuzz matches
|
10
9
|
#TODO: Helpers for cucumber
|
11
10
|
|
12
11
|
def initialize expected, actual
|
13
12
|
@expected = expected
|
14
13
|
@actual = actual
|
14
|
+
|
15
|
+
@reference_image_path = Gatling::Configuration.reference_image_path
|
16
|
+
@expected_image = "#{@reference_image_path}/#{@expected}"
|
17
|
+
@expected_filename = "#{@expected}".sub(/\.[a-z]*/,'')
|
15
18
|
end
|
16
19
|
|
17
|
-
|
20
|
+
|
18
21
|
def capture
|
19
22
|
temp_dir = "#{@reference_image_path}/temp"
|
20
23
|
|
21
|
-
FileUtils::mkdir_p(temp_dir)
|
24
|
+
FileUtils::mkdir_p(temp_dir)
|
22
25
|
|
23
26
|
#captures the uncropped full screen
|
24
27
|
page.driver.browser.save_screenshot("#{temp_dir}/temp.png")
|
@@ -34,27 +37,42 @@ module Gatling
|
|
34
37
|
|
35
38
|
def save_crop_as_reference(cropped_element)
|
36
39
|
candidate_path = "#{@reference_image_path}/candidate"
|
37
|
-
|
38
|
-
FileUtils::mkdir_p(candidate_path)
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
40
|
+
|
41
|
+
FileUtils::mkdir_p(candidate_path)
|
42
|
+
|
43
|
+
cropped_element.write("#{candidate_path}/#{@expected_filename}.png")
|
44
|
+
candidate = "#{candidate_path}/#{@expected_filename}.png"
|
45
|
+
end
|
46
|
+
|
47
|
+
def create_diff
|
48
|
+
diff_path = "#{@reference_image_path}/diff"
|
49
|
+
|
50
|
+
FileUtils::mkdir_p(diff_path)
|
51
|
+
|
52
|
+
@diff_metric.first.write("#{diff_path}/#{@expected_filename}_diff.png")
|
53
|
+
|
54
|
+
candidate = save_crop_as_reference(@cropped_element)
|
55
|
+
raise "element did not match #{@expected}. A diff image: #{@expected_filename}_diff.png was created in #{diff_path}. A new reference #{candidate} can be used to fix the test"
|
56
|
+
end
|
44
57
|
|
45
58
|
|
46
59
|
def matches?
|
47
|
-
|
48
|
-
cropped_element = crop_element
|
49
|
-
if File.exists?(@
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
diff_metric.
|
60
|
+
|
61
|
+
@cropped_element = crop_element
|
62
|
+
if File.exists?(@expected_image)
|
63
|
+
|
64
|
+
expected_img = Magick::Image.read(@expected_image).first
|
65
|
+
|
66
|
+
@diff_metric = @cropped_element.compare_channel(expected_img, Magick::MeanAbsoluteErrorMetric)
|
67
|
+
|
68
|
+
matches = @diff_metric[1] == 0.0
|
69
|
+
|
70
|
+
create_diff unless matches
|
71
|
+
|
54
72
|
matches
|
55
73
|
else
|
56
|
-
candidate = save_crop_as_reference(cropped_element)
|
57
|
-
raise "The design reference #{@expected} does not exist, #{candidate} is now available to be used as a reference"
|
74
|
+
candidate = save_crop_as_reference(@cropped_element)
|
75
|
+
raise "The design reference #{@expected} does not exist, #{candidate} is now available to be used as a reference. Copy candidate to root reference_image_path to use as reference"
|
58
76
|
end
|
59
77
|
end
|
60
78
|
end
|
@@ -66,11 +84,14 @@ module Gatling
|
|
66
84
|
attr_accessor 'reference_image_path'
|
67
85
|
|
68
86
|
def reference_image_path
|
87
|
+
#if defined?(Rails) or @reference_image_path.nil?
|
88
|
+
# @reference_image_path ||= File.join(Rails.root, 'spec/reference_images')
|
89
|
+
#end
|
69
90
|
begin
|
70
|
-
|
71
|
-
rescue
|
72
|
-
|
73
|
-
end
|
91
|
+
@reference_image_path ||= File.join(Rails.root, 'spec/reference_images')
|
92
|
+
rescue
|
93
|
+
raise "Not using Rails? Please set the reference_image_path"
|
94
|
+
end
|
74
95
|
end
|
75
96
|
|
76
97
|
end
|
data/lib/gatling/version.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gatling
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-12-
|
12
|
+
date: 2011-12-07 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rmagick
|
16
|
-
requirement: &
|
16
|
+
requirement: &70169406514200 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70169406514200
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rspec-core
|
27
|
-
requirement: &
|
27
|
+
requirement: &70169406513780 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70169406513780
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70169406513260 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70169406513260
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: capybara
|
49
|
-
requirement: &
|
49
|
+
requirement: &70169406512760 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70169406512760
|
58
58
|
description: Add visual comparison matchers for rspec
|
59
59
|
email:
|
60
60
|
- grotbart@gmail.com
|