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 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: []