browser_shooter 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +49 -34
- data/examples/config1.yml +2 -21
- data/examples/config3.yml +195 -0
- data/lib/browser_shooter.rb +4 -0
- data/lib/browser_shooter/commander.rb +20 -0
- data/lib/browser_shooter/driver.rb +1 -1
- data/lib/browser_shooter/version.rb +1 -1
- metadata +4 -3
data/README.md
CHANGED
@@ -1,64 +1,79 @@
|
|
1
1
|
# BrowserShooter
|
2
2
|
|
3
|
-
Combined with Selenium RC this gem allows to program Selenium scripts combined with
|
3
|
+
Combined with Selenium RC this gem allows to program Selenium scripts combined with screenshots.
|
4
4
|
|
5
5
|
## Use it
|
6
6
|
|
7
7
|
### Setup the servers
|
8
8
|
|
9
|
+
#### Starting the Selenium RC server
|
10
|
+
|
9
11
|
1. Set up your VirtualMachines with your target SO and browsers installed. Java SE is also needed.
|
10
12
|
2. Download the last version of [Selenium Server](http://seleniumhq.org/download/) (AKA Selenium Remote Control).
|
11
13
|
3. Go to the console and start the Selenium Server:
|
12
14
|
|
13
15
|
java -jar <your selenium server file>.jar
|
14
16
|
|
17
|
+
|
18
|
+
#### Pluging for IE screenshots
|
19
|
+
|
20
|
+
[Spnapsie](http://snapsie.sourceforge.net/)
|
21
|
+
|
15
22
|
Repeat this steps in every VM.
|
16
23
|
|
17
|
-
###
|
24
|
+
### Setup the client
|
25
|
+
|
26
|
+
#### Install the gem
|
27
|
+
|
28
|
+
gem install "browsers_shooter"
|
29
|
+
|
30
|
+
#### Config your BrowserShooter script
|
18
31
|
|
19
32
|
Create a YAML file like this:
|
20
33
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
34
|
+
# myconfig.yml
|
35
|
+
shoots_path: "/tmp/shoots"
|
36
|
+
|
37
|
+
scripts:
|
38
|
+
google:
|
39
|
+
name: "google"
|
40
|
+
url: "http://www.google.de"
|
41
|
+
# commands are Selenium commands
|
42
|
+
# except 'shot' command which receive an optional param with the 'sufix' of the page screenshot png
|
43
|
+
# except 'shot_system' command which receive an optional param with the 'sufix' of the system screenshot png
|
44
|
+
# except 'pause' command which use a Ruby 'sleep' command to pause
|
45
|
+
commands: |
|
46
|
+
open "/"
|
47
|
+
window_maximize
|
48
|
+
shot before
|
49
|
+
type "id=lst-ib", "fernando guillen"
|
50
|
+
click "name=btnG", wait_for :page
|
51
|
+
pause 3
|
52
|
+
shot after
|
53
|
+
|
54
|
+
browsers:
|
55
|
+
windows-firefox:
|
56
|
+
name: "windows-firefox"
|
57
|
+
host: 10.211.55.4
|
58
|
+
port: 4444
|
59
|
+
browser: "*firefox"
|
60
|
+
|
61
|
+
windows-iexplore:
|
62
|
+
name: "windows-iexploreproxy"
|
63
|
+
host: 10.211.55.4
|
64
|
+
port: 4444
|
65
|
+
browser: "*iexploreproxy"
|
51
66
|
|
52
67
|
Look in the `examples` folder for more complete examples.
|
53
68
|
|
54
69
|
|
55
|
-
|
70
|
+
#### Run the BrowserShooter script
|
56
71
|
|
57
72
|
$ browser_shooter ./my/config.yml
|
58
73
|
|
59
74
|
The screenshots will be stored in:
|
60
75
|
|
61
|
-
|
76
|
+
/<shoots_path>/<time_stamp>/<script_name>_<browser_name>[_<sufix>].png
|
62
77
|
|
63
78
|
## Status
|
64
79
|
|
data/examples/config1.yml
CHANGED
@@ -9,7 +9,7 @@ scripts:
|
|
9
9
|
window_maximize
|
10
10
|
shot before
|
11
11
|
type "id=lst-ib", "fernando guillen"
|
12
|
-
click "name=btnG"
|
12
|
+
click "name=btnG"
|
13
13
|
pause 3
|
14
14
|
shot after
|
15
15
|
|
@@ -22,19 +22,6 @@ scripts:
|
|
22
22
|
window_maximize
|
23
23
|
shot
|
24
24
|
|
25
|
-
brandengage:
|
26
|
-
name: "brandengage"
|
27
|
-
url: "http://staging.iframe.sponsorpay.com"
|
28
|
-
commands: |
|
29
|
-
open "/test/brandengage.html"
|
30
|
-
window_maximize
|
31
|
-
click "link=be_1372_dedicated"
|
32
|
-
pause 5
|
33
|
-
get_alert
|
34
|
-
click "link=sp.showVideo();"
|
35
|
-
pause 5
|
36
|
-
shot
|
37
|
-
|
38
25
|
browsers:
|
39
26
|
windows-firefox:
|
40
27
|
name: "windows-firefox"
|
@@ -46,10 +33,4 @@ browsers:
|
|
46
33
|
name: "windows-iexploreproxy"
|
47
34
|
host: 10.211.55.4
|
48
35
|
port: 4444
|
49
|
-
browser: "*iexploreproxy"
|
50
|
-
|
51
|
-
linux-firefox:
|
52
|
-
name: "linux-firefox"
|
53
|
-
host: 10.211.55.5
|
54
|
-
port: 4444
|
55
|
-
browser: "*firefox"
|
36
|
+
browser: "*iexploreproxy"
|
@@ -0,0 +1,195 @@
|
|
1
|
+
shoots_path: "~/browser_shoots"
|
2
|
+
|
3
|
+
scripts:
|
4
|
+
dedicated_bareplayer:
|
5
|
+
name: "dedicated_bareplayer"
|
6
|
+
url: "http://staging.iframe.sponsorpay.com"
|
7
|
+
commands: |
|
8
|
+
window_maximize
|
9
|
+
window_focus
|
10
|
+
open "/test/widgets/dedicated_bareplayer.html?appid=3249"
|
11
|
+
pause 10
|
12
|
+
click "id=play-video-link"
|
13
|
+
pause 10
|
14
|
+
shot
|
15
|
+
shot_system
|
16
|
+
|
17
|
+
dedicated_playerandreward:
|
18
|
+
name: "dedicated_playerandreward"
|
19
|
+
url: "http://staging.iframe.sponsorpay.com"
|
20
|
+
commands: |
|
21
|
+
window_maximize
|
22
|
+
window_focus
|
23
|
+
open "/test/widgets/dedicated_playerandreward.html?appid=3249"
|
24
|
+
pause 10
|
25
|
+
click "id=play-video-link"
|
26
|
+
pause 10
|
27
|
+
shot
|
28
|
+
shot_system
|
29
|
+
|
30
|
+
lightbox_bareplayer:
|
31
|
+
name: "lightbox_bareplayer"
|
32
|
+
url: "http://staging.iframe.sponsorpay.com"
|
33
|
+
commands: |
|
34
|
+
window_maximize
|
35
|
+
window_focus
|
36
|
+
open "/test/widgets/lightbox_bareplayer.html?appid=3249"
|
37
|
+
pause 10
|
38
|
+
shot
|
39
|
+
shot_system
|
40
|
+
|
41
|
+
lightbox_playerandreward:
|
42
|
+
name: "lightbox_playerandreward"
|
43
|
+
url: "http://staging.iframe.sponsorpay.com"
|
44
|
+
commands: |
|
45
|
+
window_maximize
|
46
|
+
window_focus
|
47
|
+
open "/test/widgets/lightbox_playerandreward.html?appid=3249"
|
48
|
+
pause 10
|
49
|
+
shot
|
50
|
+
shot_system
|
51
|
+
|
52
|
+
banner:
|
53
|
+
name: "banner"
|
54
|
+
url: "http://staging.iframe.sponsorpay.com"
|
55
|
+
commands: |
|
56
|
+
window_maximize
|
57
|
+
window_focus
|
58
|
+
open "/test/banner.html"
|
59
|
+
pause 10
|
60
|
+
shot
|
61
|
+
shot_system
|
62
|
+
|
63
|
+
banner_iframe:
|
64
|
+
name: "banner_iframe"
|
65
|
+
url: "http://staging.iframe.sponsorpay.com"
|
66
|
+
commands: |
|
67
|
+
window_maximize
|
68
|
+
window_focus
|
69
|
+
open "/test/banner_iframe.html"
|
70
|
+
pause 10
|
71
|
+
shot
|
72
|
+
shot_system
|
73
|
+
|
74
|
+
bar:
|
75
|
+
name: "bar"
|
76
|
+
url: "http://staging.iframe.sponsorpay.com"
|
77
|
+
commands: |
|
78
|
+
window_maximize
|
79
|
+
window_focus
|
80
|
+
open "/test/bar.html"
|
81
|
+
pause 10
|
82
|
+
shot
|
83
|
+
shot_system
|
84
|
+
|
85
|
+
example_banner_integration:
|
86
|
+
name: "example_banner_integration"
|
87
|
+
url: "http://staging.iframe.sponsorpay.com"
|
88
|
+
commands: |
|
89
|
+
window_maximize
|
90
|
+
window_focus
|
91
|
+
open "/test/example_banner_integration.html"
|
92
|
+
pause 10
|
93
|
+
shot
|
94
|
+
shot_system
|
95
|
+
|
96
|
+
example_banner_integration:
|
97
|
+
name: "example_banner_integration"
|
98
|
+
url: "http://staging.iframe.sponsorpay.com"
|
99
|
+
commands: |
|
100
|
+
window_maximize
|
101
|
+
window_focus
|
102
|
+
open "/test/example_banner_integration.html"
|
103
|
+
pause 10
|
104
|
+
shot
|
105
|
+
shot_system
|
106
|
+
|
107
|
+
overlay:
|
108
|
+
name: "overlay"
|
109
|
+
url: "http://staging.iframe.sponsorpay.com"
|
110
|
+
commands: |
|
111
|
+
window_maximize
|
112
|
+
window_focus
|
113
|
+
open "/test/overlay.html"
|
114
|
+
pause 10
|
115
|
+
shot
|
116
|
+
shot_system
|
117
|
+
|
118
|
+
overlay_right:
|
119
|
+
name: "overlay_right"
|
120
|
+
url: "http://staging.iframe.sponsorpay.com"
|
121
|
+
commands: |
|
122
|
+
window_maximize
|
123
|
+
window_focus
|
124
|
+
open "/test/overlay_right.html"
|
125
|
+
pause 10
|
126
|
+
shot
|
127
|
+
shot_system
|
128
|
+
|
129
|
+
video_iframe:
|
130
|
+
name: "video_iframe"
|
131
|
+
url: "http://staging.iframe.sponsorpay.com"
|
132
|
+
commands: |
|
133
|
+
window_maximize
|
134
|
+
window_focus
|
135
|
+
open "/test/video_iframe.html"
|
136
|
+
pause 10
|
137
|
+
shot
|
138
|
+
shot_system
|
139
|
+
|
140
|
+
video_iframe:
|
141
|
+
name: "video_iframe"
|
142
|
+
url: "http://staging.iframe.sponsorpay.com"
|
143
|
+
commands: |
|
144
|
+
window_maximize
|
145
|
+
window_focus
|
146
|
+
open "/test/video_iframe.html"
|
147
|
+
pause 10
|
148
|
+
shot
|
149
|
+
shot_system
|
150
|
+
|
151
|
+
widget_integration:
|
152
|
+
name: "widget_integration"
|
153
|
+
url: "http://staging.iframe.sponsorpay.com"
|
154
|
+
commands: |
|
155
|
+
window_maximize
|
156
|
+
window_focus
|
157
|
+
open "/test/widget_integration.html"
|
158
|
+
pause 10
|
159
|
+
shot
|
160
|
+
shot_system
|
161
|
+
|
162
|
+
widget_integration_iframed:
|
163
|
+
name: "widget_integration_iframed"
|
164
|
+
url: "http://staging.iframe.sponsorpay.com"
|
165
|
+
commands: |
|
166
|
+
window_maximize
|
167
|
+
window_focus
|
168
|
+
open "/test/widget_integration_iframed.html"
|
169
|
+
pause 10
|
170
|
+
shot
|
171
|
+
shot_system
|
172
|
+
|
173
|
+
widgets_integration_iframed:
|
174
|
+
name: "widgets_integration_iframed"
|
175
|
+
url: "http://staging.iframe.sponsorpay.com"
|
176
|
+
commands: |
|
177
|
+
window_maximize
|
178
|
+
window_focus
|
179
|
+
open "/test/widgets_integration_iframed.html"
|
180
|
+
pause 10
|
181
|
+
shot
|
182
|
+
shot_system
|
183
|
+
|
184
|
+
browsers:
|
185
|
+
windows-firefox:
|
186
|
+
name: "windows-firefox"
|
187
|
+
host: 10.211.55.4
|
188
|
+
port: 4444
|
189
|
+
browser: "*firefox"
|
190
|
+
|
191
|
+
windows-iexplore:
|
192
|
+
name: "windows-iexploreproxy"
|
193
|
+
host: 10.211.55.4
|
194
|
+
port: 4444
|
195
|
+
browser: "*iexploreproxy"
|
data/lib/browser_shooter.rb
CHANGED
@@ -22,11 +22,15 @@ class BrowserShooter
|
|
22
22
|
end
|
23
23
|
|
24
24
|
def run
|
25
|
+
BrowserShooter::Logger.log "Starting script running with version #{BrowserShooter::VERSION}..."
|
26
|
+
|
25
27
|
config["scripts"].each_value do |script|
|
26
28
|
config["browsers"].each_value do |browser|
|
27
29
|
BrowserShooter::Driver.run_script_on_browser(script, browser, config["shoots_path"])
|
28
30
|
end
|
29
31
|
end
|
32
|
+
|
33
|
+
BrowserShooter::Logger.log "... script running ended."
|
30
34
|
end
|
31
35
|
|
32
36
|
def set_up_shoots_path( config )
|
@@ -12,6 +12,15 @@ class BrowserShooter
|
|
12
12
|
sufix
|
13
13
|
)
|
14
14
|
|
15
|
+
elsif( command.split[0].strip == "shot_system" )
|
16
|
+
sufix = command.split[1] ? command.split[1].strip : nil
|
17
|
+
|
18
|
+
BrowserShooter::Commander.shot_system(
|
19
|
+
client,
|
20
|
+
shoot_path,
|
21
|
+
sufix
|
22
|
+
)
|
23
|
+
|
15
24
|
elsif( command.split[0].strip == "pause" )
|
16
25
|
BrowserShooter::Commander.pause( command.split[1].strip.to_i )
|
17
26
|
|
@@ -32,6 +41,17 @@ class BrowserShooter
|
|
32
41
|
end
|
33
42
|
end
|
34
43
|
|
44
|
+
def self.shot_system( client, path, sufix = nil )
|
45
|
+
sufix = "_#{sufix}" unless sufix.nil?
|
46
|
+
path = "#{path}#{sufix}_system.png"
|
47
|
+
|
48
|
+
BrowserShooter::Logger.log "shooting system in '#{path}'"
|
49
|
+
|
50
|
+
File.open( "#{path}.screen.png", "wb" ) do |f|
|
51
|
+
f.write( Base64.decode64( client.capture_screenshot_to_string ) )
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
35
55
|
def self.pause( seconds )
|
36
56
|
BrowserShooter::Logger.log "pausing #{seconds} seconds"
|
37
57
|
sleep seconds
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 3
|
9
|
+
version: 0.0.3
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Fernando Guillen
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2012-01-
|
17
|
+
date: 2012-01-09 00:00:00 +01:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -108,6 +108,7 @@ files:
|
|
108
108
|
- browser_shoter.gemspec
|
109
109
|
- examples/config1.yml
|
110
110
|
- examples/config2.yml
|
111
|
+
- examples/config3.yml
|
111
112
|
- lib/browser_shooter.rb
|
112
113
|
- lib/browser_shooter/commander.rb
|
113
114
|
- lib/browser_shooter/driver.rb
|