testcentricity_web 0.5.8 → 0.6.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.
- 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: []
|