testcentricity_web 0.5.8 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +82 -12
- data/lib/testcentricity_web/data_objects_helper.rb +4 -4
- data/lib/testcentricity_web/environment.rb +1 -1
- data/lib/testcentricity_web/excel_helper.rb +1 -1
- data/lib/testcentricity_web/version.rb +1 -1
- data/lib/testcentricity_web/webdriver_helper.rb +53 -17
- data/testcentricity_web.gemspec +2 -2
- metadata +15 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2fb8bf051e24256d81fbc0d4251558dcaa032115
|
4
|
+
data.tar.gz: 339e86a0105a98df17b3cb9e84e1b584ded85402
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2879ff733f7d7a9c0815ed99265c2b58f1651d53e1d29101573b26b5ae97376b5b666b754fecba7ac75f95ae631844252e48e61fb2d3d2c80c8ac5b3d0ef053
|
7
|
+
data.tar.gz: c2fbacd4e3819a92601b257a75aa80116f988518cfe8c4091d3fe974392679e8d8313dff748221a48aaa7400f3272cab2b58953c8e2647c82bfc44b8bf3aefb4
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
The TestCentricity™ core generic framework for desktop and mobile web site testing implements a Page Object and Data Object Model DSL for
|
4
4
|
use with Cucumber, Capybara, and selenium-webdriver. It supports testing against locally hosted desktop browsers (Firefox, Chrome, Safari,
|
5
5
|
IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a "headless" browser (using Poltergeist and PhantomJS),
|
6
|
-
or on cloud hosted desktop or mobile web browsers using the BrowserStack, Sauce Labs, or
|
6
|
+
or on cloud hosted desktop or mobile web browsers using the BrowserStack, Sauce Labs, CrossBrowserTesting, or TestingBot services.
|
7
7
|
|
8
8
|
|
9
9
|
## Installation
|
@@ -28,6 +28,7 @@ If you are using Cucumber, you need to require the following in your *env.rb* fi
|
|
28
28
|
|
29
29
|
require 'capybara'
|
30
30
|
require 'capybara/cucumber'
|
31
|
+
require 'selenium-webdriver'
|
31
32
|
require 'testcentricity_web'
|
32
33
|
|
33
34
|
|
@@ -37,15 +38,16 @@ If you are using RSpec instead, you need to require the following in your *env.r
|
|
37
38
|
|
38
39
|
require 'capybara'
|
39
40
|
require 'capybara/rspec'
|
41
|
+
require 'selenium-webdriver'
|
40
42
|
require 'testcentricity_web'
|
41
43
|
|
42
44
|
|
43
|
-
###
|
45
|
+
### Using Poltergeist
|
44
46
|
|
45
|
-
If you
|
46
|
-
|
47
|
+
If you will be running your tests on a "headless" web browser using Poltergeist and PhantomJS, you must add this line to your automation
|
48
|
+
project's Gemfile:
|
47
49
|
|
48
|
-
|
50
|
+
gem 'poltergeist'
|
49
51
|
|
50
52
|
|
51
53
|
|
@@ -324,8 +326,8 @@ To specify the emulated device's screen orientation, you set the **ORIENTATION**
|
|
324
326
|
|
325
327
|
### Remotely hosted desktop and mobile web browsers
|
326
328
|
|
327
|
-
You can run your automated tests against remotely hosted desktop and mobile web browsers using the BrowserStack, CrossBrowserTesting,
|
328
|
-
Sauce Labs services.
|
329
|
+
You can run your automated tests against remotely hosted desktop and mobile web browsers using the BrowserStack, CrossBrowserTesting,
|
330
|
+
Sauce Labs, or TestingBot services.
|
329
331
|
|
330
332
|
|
331
333
|
#### Remote desktop browsers on the BrowserStack service
|
@@ -429,14 +431,31 @@ SL_DEVICE_TYPE | If displayed, refer to ***deviceType*** capability in the Copy
|
|
429
431
|
ORIENTATION | Refer to ***deviceOrientation*** capability in the Copy Code section of the Platform Configurator page
|
430
432
|
|
431
433
|
|
434
|
+
#### Remote desktop browsers on the TestingBot service
|
435
|
+
|
436
|
+
For remotely hosted desktop web browsers on the TestingBot service, the following **Environment Variables** must be set as described in
|
437
|
+
the table below. Refer to the [TestingBot List of Available Browsers page](https://testingbot.com/support/getting-started/browsers.html) for information regarding the specific capabilities.
|
438
|
+
|
439
|
+
**Environment Variable** | Description
|
440
|
+
--------------- | ----------------
|
441
|
+
WEB_BROWSER | Must be set to ***testingbot***
|
442
|
+
TB_USERNAME | Must be set to your TestingBot account user name
|
443
|
+
TB_AUTHKEY | Must be set to your TestingBot account access key
|
444
|
+
TB_OS | Refer to ***platform*** capability in chart
|
445
|
+
TB_BROWSER | Refer to ***browserName*** capability in chart
|
446
|
+
TB_VERSION | Refer to ***version*** capability in chart
|
447
|
+
RESOLUTION | Possible values: 800x600, 1024x768, 1280x960, 1280x1024, 1600x1200, 1920x1200, 2560x1440
|
448
|
+
|
432
449
|
|
433
450
|
### Using Browser specific Profiles in cucumber.yml
|
434
451
|
|
435
|
-
While you can set **Environment Variables** in the command line when invoking Cucumber, a preferred method of specifying and managing
|
436
|
-
web browsers is to create browser specific **Profiles** that set the appropriate **Environment Variables** for each target browser
|
437
|
-
***cucumber.yml*** file. Below is a list of Cucumber **Profiles** for supported locally and remotely hosted desktop and mobile
|
438
|
-
(put these in in your ***cucumber.yml*** file).
|
439
|
-
|
452
|
+
While you can set **Environment Variables** in the command line when invoking Cucumber, a preferred method of specifying and managing
|
453
|
+
target web browsers is to create browser specific **Profiles** that set the appropriate **Environment Variables** for each target browser
|
454
|
+
in your ***cucumber.yml*** file. Below is a list of Cucumber **Profiles** for supported locally and remotely hosted desktop and mobile
|
455
|
+
web browsers (put these in in your ***cucumber.yml*** file).
|
456
|
+
|
457
|
+
Before you can use the BrowserStack, CrossBrowserTesting, Sauce Labs, or TestingBot services, you will need to replace the placeholder
|
458
|
+
text with your user account and authorization code for the cloud service(s) that you intend to connect with.
|
440
459
|
|
441
460
|
<% desktop = "--tags ~@wip --tags ~@failing --tags @desktop --require features" %>
|
442
461
|
<% mobile = "--tags ~@wip --tags ~@failing --tags @mobile --require features" %>
|
@@ -659,6 +678,52 @@ need to replace the placeholder text with your user account and authorization co
|
|
659
678
|
sl_android: --profile sl_mobile SL_PLATFORM=Linux SL_BROWSER="android" SL_VERSION="4.4"
|
660
679
|
sl_android_phone: --profile sl_android SL_DEVICE="Android Emulator" SL_DEVICE_TYPE="phone"
|
661
680
|
sl_android_tablet: --profile sl_android SL_DEVICE="Android Emulator" SL_DEVICE_TYPE="tablet"
|
681
|
+
|
682
|
+
|
683
|
+
#==============
|
684
|
+
# profiles for remotely hosted web browsers on the TestingBot service
|
685
|
+
#==============
|
686
|
+
|
687
|
+
testingbot: WEB_BROWSER=testingbot TB_USERNAME=<INSERT USER NAME HERE> TB_AUTHKEY=<INSERT PASSWORD HERE>
|
688
|
+
tb_desktop: --profile testingbot <%= desktop %> RESOLUTION="1920x1200"
|
689
|
+
tb_mobile: --profile testingbot <%= mobile %>
|
690
|
+
|
691
|
+
# TestingBot OS X profiles
|
692
|
+
tb_osx_el_capitan: --profile tb_desktop TB_OS="CAPITAN"
|
693
|
+
tb_ff_el_cap: --profile tb_osx_el_capitan TB_BROWSER="firefox"
|
694
|
+
tb_chrome_el_cap: --profile tb_osx_el_capitan TB_BROWSER="chrome"
|
695
|
+
tb_safari_el_cap: --profile tb_osx_el_capitan TB_BROWSER="safari" TB_VERSION="9"
|
696
|
+
tb_safari9_el_cap: --profile tb_osx_el_capitan TB_BROWSER="safari" TB_VERSION="9"
|
697
|
+
|
698
|
+
tb_osx_yosemite: --profile tb_desktop TB_OS="YOSEMITE"
|
699
|
+
tb_ff_yos: --profile tb_osx_yosemite TB_BROWSER="firefox"
|
700
|
+
tb_chrome_yos: --profile tb_osx_yosemite TB_BROWSER="chrome"
|
701
|
+
tb_safari_yos: --profile tb_osx_yosemite TB_BROWSER="safari" TB_VERSION="8"
|
702
|
+
tb_safari8_osx: --profile tb_osx_yosemite TB_BROWSER="safari" TB_VERSION="8"
|
703
|
+
|
704
|
+
tb_osx_mavericks: --profile tb_desktop TB_OS="MAVERICKS"
|
705
|
+
tb_ff_mav: --profile tb_osx_mavericks TB_BROWSER="firefox"
|
706
|
+
tb_chrome_mav: --profile tb_osx_mavericks TB_BROWSER="chrome"
|
707
|
+
tb_safari_mav: --profile tb_osx_mavericks TB_BROWSER="safari" TB_VERSION="7"
|
708
|
+
tb_safari7_osx: --profile tb_osx_mavericks TB_BROWSER="safari" TB_VERSION="7"
|
709
|
+
|
710
|
+
# TestingBot Windows profiles
|
711
|
+
tb_win7: --profile tb_desktop TB_OS="WIN7"
|
712
|
+
tb_win8: --profile tb_desktop TB_OS="WIN8"
|
713
|
+
tb_win10: --profile tb_desktop TB_OS="WIN10"
|
714
|
+
tb_ff_win7: --profile tb_win7 TB_BROWSER="firefox"
|
715
|
+
tb_ff_win8: --profile tb_win8 TB_BROWSER="firefox"
|
716
|
+
tb_ff_win10: --profile tb_win10 TB_BROWSER="firefox"
|
717
|
+
tb_chrome_win7: --profile tb_win7 TB_BROWSER="chrome"
|
718
|
+
tb_chrome_win8: --profile tb_win8 TB_BROWSER="chrome"
|
719
|
+
tb_chrome_win10: --profile tb_win10 TB_BROWSER="chrome"
|
720
|
+
|
721
|
+
tb_ie9_win7: --profile tb_win7 TB_BROWSER="internet explorer" TB_VERSION="9"
|
722
|
+
tb_ie11_win8: --profile tb_win8 TB_BROWSER="internet explorer" TB_VERSION="11"
|
723
|
+
tb_ie10_win8: --profile tb_win8 TB_BROWSER="internet explorer" TB_VERSION="10"
|
724
|
+
tb_ie11_win10: --profile tb_win10 TB_BROWSER="internet explorer" TB_VERSION="11"
|
725
|
+
tb_edge_win10: --profile tb_win10 TB_BROWSER="microsoftedge" TB_VERSION="13"
|
726
|
+
|
662
727
|
|
663
728
|
To specify a locally hosted target browser using a profile at runtime, you use the flag --profile or -p followed by the profile name when
|
664
729
|
invoking Cucumber in the command line. For instance, the following command invokes Cucumber and specifies that a local instance of Chrome
|
@@ -675,6 +740,11 @@ The following command specifies that Cucumber will run tests against a remotely
|
|
675
740
|
virtual machine on the BrowserStack service:
|
676
741
|
|
677
742
|
cucumber -p bs_safari_yos
|
743
|
+
|
744
|
+
The following command specifies that Cucumber will run tests against a remotely hosted Mobile Safari web browser on an iPhone 6s Plus in
|
745
|
+
landscape orientation running on the BrowserStack service:
|
746
|
+
|
747
|
+
cucumber -p bs_iphone6_plus -p landscape
|
678
748
|
|
679
749
|
|
680
750
|
|
@@ -22,17 +22,17 @@ module TestCentricity
|
|
22
22
|
attr_accessor :current
|
23
23
|
|
24
24
|
def pick_excel_data_source(sheet, row_name)
|
25
|
-
data_file =
|
26
|
-
data_file = XL_PRIMARY_DATA_FILE unless
|
25
|
+
data_file = ExcelData.get_environment_data_file
|
26
|
+
data_file = XL_PRIMARY_DATA_FILE unless ExcelData.rowspec_exists?(data_file, sheet, row_name)
|
27
27
|
data_file
|
28
28
|
end
|
29
29
|
|
30
30
|
def read_excel_row_data(sheet, row_name)
|
31
|
-
|
31
|
+
ExcelData.read_row_data(pick_excel_data_source(sheet, row_name), sheet, row_name)
|
32
32
|
end
|
33
33
|
|
34
34
|
def read_excel_pool_data(sheet, row_name)
|
35
|
-
|
35
|
+
ExcelData.read_row_from_pool(pick_excel_data_source(sheet, row_name), sheet, row_name)
|
36
36
|
end
|
37
37
|
end
|
38
38
|
end
|
@@ -5,7 +5,7 @@ module TestCentricity
|
|
5
5
|
WKS_ENVIRONS ||= 'Environments'
|
6
6
|
|
7
7
|
def find_environ(row_name)
|
8
|
-
@current = Environ.new(
|
8
|
+
@current = Environ.new(ExcelData.read_row_data(XL_PRIMARY_DATA_FILE, WKS_ENVIRONS, row_name))
|
9
9
|
Environ.set_current(@current)
|
10
10
|
end
|
11
11
|
end
|
@@ -1,5 +1,8 @@
|
|
1
|
+
require 'selenium-webdriver'
|
2
|
+
|
3
|
+
|
1
4
|
module TestCentricity
|
2
|
-
|
5
|
+
class WebDriverConnect
|
3
6
|
include Capybara::DSL
|
4
7
|
|
5
8
|
def self.initialize_web_driver(app_host = nil)
|
@@ -16,10 +19,12 @@ module TestCentricity
|
|
16
19
|
initialize_browserstack
|
17
20
|
when :crossbrowser
|
18
21
|
initialize_crossbrowser
|
19
|
-
when :saucelabs
|
20
|
-
initialize_saucelabs
|
21
22
|
when :poltergeist
|
22
23
|
initialize_poltergeist
|
24
|
+
when :saucelabs
|
25
|
+
initialize_saucelabs
|
26
|
+
when :testingbot
|
27
|
+
initialize_testingbot
|
23
28
|
else
|
24
29
|
initialize_local_browser(browser)
|
25
30
|
end
|
@@ -58,20 +63,6 @@ module TestCentricity
|
|
58
63
|
end
|
59
64
|
end
|
60
65
|
|
61
|
-
def self.initialize_poltergeist
|
62
|
-
Capybara.default_driver = :poltergeist
|
63
|
-
Capybara.register_driver :poltergeist do |app|
|
64
|
-
options = {
|
65
|
-
:js_errors => true,
|
66
|
-
:timeout => 120,
|
67
|
-
:debug => false,
|
68
|
-
:phantomjs_options => ['--load-images=no', '--disk-cache=false'],
|
69
|
-
:inspector => true,
|
70
|
-
}
|
71
|
-
Capybara::Poltergeist::Driver.new(app, options)
|
72
|
-
end
|
73
|
-
end
|
74
|
-
|
75
66
|
def self.initialize_browserstack
|
76
67
|
browser = ENV['BS_BROWSER']
|
77
68
|
|
@@ -153,6 +144,20 @@ module TestCentricity
|
|
153
144
|
Capybara.run_server = false
|
154
145
|
end
|
155
146
|
|
147
|
+
def self.initialize_poltergeist
|
148
|
+
Capybara.default_driver = :poltergeist
|
149
|
+
Capybara.register_driver :poltergeist do |app|
|
150
|
+
options = {
|
151
|
+
:js_errors => true,
|
152
|
+
:timeout => 120,
|
153
|
+
:debug => false,
|
154
|
+
:phantomjs_options => ['--load-images=no', '--disk-cache=false'],
|
155
|
+
:inspector => true,
|
156
|
+
}
|
157
|
+
Capybara::Poltergeist::Driver.new(app, options)
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
156
161
|
def self.initialize_saucelabs
|
157
162
|
browser = ENV['SL_BROWSER']
|
158
163
|
|
@@ -183,5 +188,36 @@ module TestCentricity
|
|
183
188
|
Capybara.default_driver = :saucelabs
|
184
189
|
Capybara.run_server = false
|
185
190
|
end
|
191
|
+
|
192
|
+
def self.initialize_testingbot
|
193
|
+
browser = ENV['TB_BROWSER']
|
194
|
+
|
195
|
+
endpoint = "http://#{ENV['TB_USERNAME']}:#{ENV['TB_AUTHKEY']}@hub.testingbot.com:4444/wd/hub"
|
196
|
+
Capybara.register_driver :testingbot do |app|
|
197
|
+
capabilities = Selenium::WebDriver::Remote::Capabilities.new
|
198
|
+
capabilities['name'] = ENV['AUTOMATE_PROJECT'] if ENV['AUTOMATE_PROJECT']
|
199
|
+
capabilities['build'] = ENV['AUTOMATE_BUILD'] if ENV['AUTOMATE_BUILD']
|
200
|
+
capabilities['browserName'] = browser
|
201
|
+
capabilities['version'] = ENV['TB_VERSION'] if ENV['TB_VERSION']
|
202
|
+
capabilities['screen-resolution'] = ENV['RESOLUTION'] if ENV['RESOLUTION']
|
203
|
+
if ENV['TB_OS']
|
204
|
+
capabilities['platform'] = ENV['TB_OS']
|
205
|
+
Environ.set_platform(:desktop)
|
206
|
+
elsif ENV['TB_PLATFORM']
|
207
|
+
capabilities['platform'] = ENV['TB_PLATFORM']
|
208
|
+
capabilities['browserName'] = ENV['TB_DEVICE']
|
209
|
+
capabilities['version'] = ENV['TB_VERSION'] if ENV['TB_VERSION']
|
210
|
+
Environ.set_platform(:mobile)
|
211
|
+
end
|
212
|
+
|
213
|
+
Capybara::Selenium::Driver.new(app, :browser => :remote, :url => endpoint, :desired_capabilities => capabilities)
|
214
|
+
end
|
215
|
+
|
216
|
+
Environ.set_browser(browser)
|
217
|
+
|
218
|
+
Capybara.default_driver = :testingbot
|
219
|
+
Capybara.run_server = false
|
220
|
+
|
221
|
+
end
|
186
222
|
end
|
187
223
|
end
|
data/testcentricity_web.gemspec
CHANGED
@@ -16,7 +16,7 @@ Gem::Specification.new do |spec|
|
|
16
16
|
for use with Cucumber, Capybara, and selenium-webdriver. Supports testing against locally hosted desktop browsers
|
17
17
|
(Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a
|
18
18
|
"headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack, Sauce Labs,
|
19
|
-
or
|
19
|
+
CrossBrowserTesting, or TestingBot services.}
|
20
20
|
spec.homepage = ''
|
21
21
|
spec.license = 'BSD3'
|
22
22
|
|
@@ -30,8 +30,8 @@ Gem::Specification.new do |spec|
|
|
30
30
|
|
31
31
|
spec.add_dependency 'capybara', ['>= 2.1', '< 3.0']
|
32
32
|
spec.add_dependency 'test-unit'
|
33
|
+
spec.add_dependency 'selenium-webdriver', ['>= 2.50.0', '< 2.53.0']
|
33
34
|
spec.add_dependency 'poltergeist'
|
34
|
-
spec.add_dependency 'selenium-webdriver', '>= 2.50.0'
|
35
35
|
spec.add_dependency 'faker', '>= 1.6.1'
|
36
36
|
spec.add_dependency 'chronic', '>= 0.10.2'
|
37
37
|
spec.add_dependency 'spreadsheet', '>= 1.1.1'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: testcentricity_web
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- A.J. Mrozinski
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -73,33 +73,39 @@ dependencies:
|
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '0'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
|
-
name:
|
76
|
+
name: selenium-webdriver
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
79
|
- - ">="
|
80
80
|
- !ruby/object:Gem::Version
|
81
|
-
version:
|
81
|
+
version: 2.50.0
|
82
|
+
- - "<"
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: 2.53.0
|
82
85
|
type: :runtime
|
83
86
|
prerelease: false
|
84
87
|
version_requirements: !ruby/object:Gem::Requirement
|
85
88
|
requirements:
|
86
89
|
- - ">="
|
87
90
|
- !ruby/object:Gem::Version
|
88
|
-
version:
|
91
|
+
version: 2.50.0
|
92
|
+
- - "<"
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: 2.53.0
|
89
95
|
- !ruby/object:Gem::Dependency
|
90
|
-
name:
|
96
|
+
name: poltergeist
|
91
97
|
requirement: !ruby/object:Gem::Requirement
|
92
98
|
requirements:
|
93
99
|
- - ">="
|
94
100
|
- !ruby/object:Gem::Version
|
95
|
-
version:
|
101
|
+
version: '0'
|
96
102
|
type: :runtime
|
97
103
|
prerelease: false
|
98
104
|
version_requirements: !ruby/object:Gem::Requirement
|
99
105
|
requirements:
|
100
106
|
- - ">="
|
101
107
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
108
|
+
version: '0'
|
103
109
|
- !ruby/object:Gem::Dependency
|
104
110
|
name: faker
|
105
111
|
requirement: !ruby/object:Gem::Requirement
|
@@ -148,7 +154,7 @@ description: |2-
|
|
148
154
|
for use with Cucumber, Capybara, and selenium-webdriver. Supports testing against locally hosted desktop browsers
|
149
155
|
(Firefox, Chrome, Safari, IE, or Edge), locally hosted emulated iOS and Android mobile browsers (using Firefox), a
|
150
156
|
"headless" browser (using Poltergeist and PhantomJS), or on cloud hosted browsers using the BrowserStack, Sauce Labs,
|
151
|
-
or
|
157
|
+
CrossBrowserTesting, or TestingBot services.
|
152
158
|
email:
|
153
159
|
- test_automation@icloud.com
|
154
160
|
executables: []
|