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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 827f668182f61bf19480bb993ff1c452fd155982
4
- data.tar.gz: 58564669674cf2fc3ddf62b1ffb5b5074a982b88
3
+ metadata.gz: 2fb8bf051e24256d81fbc0d4251558dcaa032115
4
+ data.tar.gz: 339e86a0105a98df17b3cb9e84e1b584ded85402
5
5
  SHA512:
6
- metadata.gz: 11f086f65e4c2725c06957e42abff668674a2515a527f2d7876457adcd596ced605693430853aaff77fd658f9703a9b4d19e771987d49fcba025a2062d04e7e9
7
- data.tar.gz: 73174e2dce406fbde1678af1d133c48e467ee93bcfd112be75a272582ec29bd79b0853b91e34e14cf78bc5a97fe104cbaea446c253debcdc1eceae3d89059ec5
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 CrossBrowserTesting services.
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
- ###Selenium WebDriver
45
+ ### Using Poltergeist
44
46
 
45
- If you choose to not connect to selenium-webdriver using the ***WebDriverConnect.initialize_web_driver*** method, or if you need to directly
46
- call methods in selenium-webdriver, you will also need to require the following in your *env.rb* file:
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
- require 'selenium-webdriver'
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, or
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 target
436
- web browsers is to create browser specific **Profiles** that set the appropriate **Environment Variables** for each target browser in your
437
- ***cucumber.yml*** file. Below is a list of Cucumber **Profiles** for supported locally and remotely hosted desktop and mobile web browsers
438
- (put these in in your ***cucumber.yml*** file). Before you can use the BrowserStack, CrossBrowserTesting, or Sauce Labs services, you will
439
- need to replace the placeholder text with your user account and authorization code for the cloud service(s) that you intend to connect with.
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 = Excel_Data.get_environment_data_file
26
- data_file = XL_PRIMARY_DATA_FILE unless Excel_Data.rowspec_exists?(data_file, sheet, row_name)
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
- Excel_Data.read_row_data(pick_excel_data_source(sheet, row_name), sheet, row_name)
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
- Excel_Data.read_row_from_pool(pick_excel_data_source(sheet, row_name), sheet, row_name)
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(Excel_Data.read_row_data(XL_PRIMARY_DATA_FILE, WKS_ENVIRONS, row_name))
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
@@ -10,7 +10,7 @@ module TestCentricity
10
10
  XL_PRIMARY_DATA_FILE ||= "#{XL_PRIMARY_DATA_PATH}data.xls"
11
11
 
12
12
 
13
- class Excel_Data
13
+ class ExcelData
14
14
  @mru = {}
15
15
 
16
16
  def self.get_environment_data_file
@@ -1,3 +1,3 @@
1
1
  module TestCentricityWeb
2
- VERSION = '0.5.8'
2
+ VERSION = '0.6.0'
3
3
  end
@@ -1,5 +1,8 @@
1
+ require 'selenium-webdriver'
2
+
3
+
1
4
  module TestCentricity
2
- module WebDriverConnect
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
@@ -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 CrossBrowserTesting services.}
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.5.8
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-21 00:00:00.000000000 Z
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: poltergeist
76
+ name: selenium-webdriver
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
79
  - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '0'
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: '0'
91
+ version: 2.50.0
92
+ - - "<"
93
+ - !ruby/object:Gem::Version
94
+ version: 2.53.0
89
95
  - !ruby/object:Gem::Dependency
90
- name: selenium-webdriver
96
+ name: poltergeist
91
97
  requirement: !ruby/object:Gem::Requirement
92
98
  requirements:
93
99
  - - ">="
94
100
  - !ruby/object:Gem::Version
95
- version: 2.50.0
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: 2.50.0
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 CrossBrowserTesting services.
157
+ CrossBrowserTesting, or TestingBot services.
152
158
  email:
153
159
  - test_automation@icloud.com
154
160
  executables: []