taf 0.3.7 → 0.3.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/taf +23 -2
- data/lib/taf.rb +48 -0
- data/lib/taf/browser.rb +103 -0
- data/lib/taf/cmd_line.rb +74 -0
- data/lib/taf/create_directories.rb +53 -0
- data/lib/taf/json_parser.rb +48 -0
- data/lib/taf/junit_report.rb +73 -0
- data/lib/taf/my_log.rb +21 -0
- data/lib/taf/parser.rb +37 -0
- data/lib/taf/report.rb +110 -0
- data/lib/taf/report_summary.rb +56 -0
- data/lib/taf/screenshot.rb +30 -0
- data/lib/taf/test_engine.rb +82 -0
- data/lib/taf/test_steps.rb +38 -0
- data/lib/taf/test_steps/handlers/base.rb +90 -0
- data/lib/taf/test_steps/handlers/base/browser_back.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_forward.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_open.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_quit.rb +21 -0
- data/lib/taf/test_steps/handlers/base/browser_refresh.rb +21 -0
- data/lib/taf/test_steps/handlers/base/capture_alert.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_box.rb +22 -0
- data/lib/taf/test_steps/handlers/base/check_boxdata.rb +35 -0
- data/lib/taf/test_steps/handlers/base/check_browser_title.rb +21 -0
- data/lib/taf/test_steps/handlers/base/check_logs.rb +25 -0
- data/lib/taf/test_steps/handlers/base/check_screendata.rb +23 -0
- data/lib/taf/test_steps/handlers/base/check_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/click_button.rb +33 -0
- data/lib/taf/test_steps/handlers/base/execute_system_command.rb +23 -0
- data/lib/taf/test_steps/handlers/base/handle_browser_window.rb +23 -0
- data/lib/taf/test_steps/handlers/base/ipause.rb +21 -0
- data/lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb +23 -0
- data/lib/taf/test_steps/handlers/base/login.rb +59 -0
- data/lib/taf/test_steps/handlers/base/open_url.rb +22 -0
- data/lib/taf/test_steps/handlers/base/ping_test.rb +27 -0
- data/lib/taf/test_steps/handlers/base/radio_button.rb +24 -0
- data/lib/taf/test_steps/handlers/base/select_dropdown.rb +24 -0
- data/lib/taf/test_steps/handlers/base/send_special_keys.rb +22 -0
- data/lib/taf/test_steps/handlers/base/write_box_data.rb +35 -0
- data/lib/taf/version.rb +5 -0
- metadata +41 -43
- data/lib/functions/handlers.rb +0 -6
- data/lib/functions/handlers/base_handler.rb +0 -91
- data/lib/functions/handlers/browser_back.rb +0 -21
- data/lib/functions/handlers/browser_forward.rb +0 -21
- data/lib/functions/handlers/browser_quit.rb +0 -21
- data/lib/functions/handlers/browser_refresh.rb +0 -21
- data/lib/functions/handlers/capture_alert.rb +0 -22
- data/lib/functions/handlers/check_box.rb +0 -21
- data/lib/functions/handlers/check_boxdata.rb +0 -35
- data/lib/functions/handlers/check_browser_title.rb +0 -21
- data/lib/functions/handlers/check_logs.rb +0 -23
- data/lib/functions/handlers/check_screendata.rb +0 -21
- data/lib/functions/handlers/check_url.rb +0 -22
- data/lib/functions/handlers/click_button.rb +0 -33
- data/lib/functions/handlers/execute_system_command.rb +0 -23
- data/lib/functions/handlers/handle_browser_window.rb +0 -23
- data/lib/functions/handlers/ipause.rb +0 -21
- data/lib/functions/handlers/list_all_dropdowns_values.rb +0 -23
- data/lib/functions/handlers/login.rb +0 -59
- data/lib/functions/handlers/open_url.rb +0 -35
- data/lib/functions/handlers/ping_test.rb +0 -27
- data/lib/functions/handlers/radio_button.rb +0 -22
- data/lib/functions/handlers/select_dropdown.rb +0 -24
- data/lib/functions/handlers/send_special_keys.rb +0 -22
- data/lib/functions/handlers/write_box_data.rb +0 -35
- data/lib/main.rb +0 -31
- data/lib/parser/json_parser.rb +0 -50
- data/lib/parser/parser.rb +0 -49
- data/lib/report/junit_report.rb +0 -74
- data/lib/report/report.rb +0 -116
- data/lib/report/report_summary.rb +0 -53
- data/lib/taf_config.rb +0 -46
- data/lib/utils/browser.rb +0 -98
- data/lib/utils/cmd_line.rb +0 -71
- data/lib/utils/create_directories.rb +0 -50
- data/lib/utils/exceptions.rb +0 -7
- data/lib/utils/logger.rb +0 -21
- data/lib/utils/screenshot.rb +0 -30
- data/lib/utils/test_engine.rb +0 -77
- data/lib/utils/test_steps.rb +0 -38
- data/lib/version.rb +0 -21
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Back function.
|
7
|
+
class BrowserBack < Base
|
8
|
+
register :browser_back
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.back
|
12
|
+
Taf::MyLog.log.info('Browser navigated back')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser failed to navigate back')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Forward function.
|
7
|
+
class BrowserForward < Base
|
8
|
+
register :browser_forward
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.forward
|
12
|
+
Taf::MyLog.log.info('Browser navigated forward')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser failed to navigate forward')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Open function.
|
7
|
+
class BrowserOpen < Base
|
8
|
+
register :browser_open
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.open_browser
|
12
|
+
Taf::MyLog.log.info('Browser has opened successfully')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser has failed to open')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Quit function.
|
7
|
+
class BrowserQuit < Base
|
8
|
+
register :browser_quit
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.quit
|
12
|
+
Taf::MyLog.log.info('Browser has closed successfully')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Browser has failed to close')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Browser Refresh function.
|
7
|
+
class BrowserRefresh < Base
|
8
|
+
register :browser_refresh
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.refresh
|
12
|
+
Taf::MyLog.log.info('The Browser has been refreshed')
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('The Browser failed to refresh')
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Capture Alert function.
|
7
|
+
class CaptureAlert < Base
|
8
|
+
register :capture_alert
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.div(class: 'alert').exist?
|
12
|
+
alertmsg = Taf::Browser.b.div(class: 'alert').text
|
13
|
+
Taf::MyLog.log.info("Alert shown: #{alertmsg}")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn('No Alert Found')
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Box function.
|
7
|
+
class CheckBox < Base
|
8
|
+
register :check_box
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.checkbox("#{@locate}": @value).wait_until(&:exists?)
|
12
|
+
.click
|
13
|
+
Taf::MyLog.log.info("Check box: #{@value} has been selected")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn("Check box: #{@value} does not exist")
|
17
|
+
false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Box Data function.
|
7
|
+
class CheckBoxdata < Base
|
8
|
+
register :check_box_data
|
9
|
+
|
10
|
+
def perform
|
11
|
+
elms = %i[textarea text_field iframe]
|
12
|
+
|
13
|
+
found_box = elms.map do |elm|
|
14
|
+
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
+
end.compact
|
16
|
+
|
17
|
+
raise 'Multiple matches' if found_box.select { |i| i }.empty?
|
18
|
+
|
19
|
+
index = found_box.index(true)
|
20
|
+
return unless index
|
21
|
+
|
22
|
+
ele = Taf::Browser.b.send(elms[index], "#{@locate}": @value)
|
23
|
+
|
24
|
+
ele.wait_until(&:exists?)
|
25
|
+
(ele.value == @value2)
|
26
|
+
Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{value2}")
|
27
|
+
true
|
28
|
+
rescue StandardError
|
29
|
+
Taf::MyLog.log.warn("Textbox: #{@value} does not exist")
|
30
|
+
false
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Browser Title function.
|
7
|
+
class CheckTitle < Base
|
8
|
+
register :check_browser_title
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.wait_until { Taf::Browser.b.title.eql? @value }
|
12
|
+
Taf::MyLog.log.info("Browser title: #{@value}")
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn("Title not found: #{@value}")
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check a log file function.
|
7
|
+
class CheckLogs < Base
|
8
|
+
register :check_log_file
|
9
|
+
|
10
|
+
def perform
|
11
|
+
result = system 'egrep -i ' + @value + ' ' + @value2 + ' > ' + output
|
12
|
+
if result == true
|
13
|
+
Taf::MyLog.log.info \
|
14
|
+
"Data has matched: #{@value} in LogFile: #{@value2}"
|
15
|
+
return true
|
16
|
+
else
|
17
|
+
Taf::MyLog.log.warn \
|
18
|
+
"Problem finding: #{@value} in LogFile: #{@value2}"
|
19
|
+
return false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check Screendata text function.
|
7
|
+
class CheckScreendata < Base
|
8
|
+
register :check_screen_data
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.wait_until do
|
12
|
+
Taf::Browser.b.element.text.include? @value
|
13
|
+
end
|
14
|
+
Taf::MyLog.log.info("Text found: #{@value}")
|
15
|
+
true
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("Text not found: #{@value}")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Check URL function.
|
7
|
+
class CheckUrl < Base
|
8
|
+
register :check_url
|
9
|
+
|
10
|
+
def perform
|
11
|
+
if Taf::Browser.b.url == @value
|
12
|
+
Taf::MyLog.log.info("URL: #{@value} is correct")
|
13
|
+
true
|
14
|
+
else
|
15
|
+
Taf::MyLog.log.warn("URL: #{@value} is incorrect")
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Click Button function.
|
7
|
+
class ClickButton < Base
|
8
|
+
register :click_button
|
9
|
+
|
10
|
+
def perform
|
11
|
+
elms = %i[button span a div link image h1 h2 h3 h4]
|
12
|
+
|
13
|
+
found_button = elms.map do |elm|
|
14
|
+
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
15
|
+
end.compact
|
16
|
+
|
17
|
+
raise 'Multiple matches' if found_button.select { |i| i }.empty?
|
18
|
+
|
19
|
+
index = found_button.index(true)
|
20
|
+
return unless index
|
21
|
+
|
22
|
+
Taf::Browser.b.send(elms[index], "#{@locate}": @value)
|
23
|
+
.wait_until(&:exists?).click
|
24
|
+
Taf::MyLog.log.info("Button: #{@value} has been selected")
|
25
|
+
true
|
26
|
+
rescue StandardError
|
27
|
+
Taf::MyLog.log.warn("Button: #{@value} does not exist")
|
28
|
+
false
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Execute System Command function.
|
7
|
+
class ExecuteSystemCommand < Base
|
8
|
+
register :execute_system_command
|
9
|
+
|
10
|
+
def perform
|
11
|
+
b_result = system @value
|
12
|
+
if b_result == true
|
13
|
+
Taf::MyLog.log.info("Cmd has been executed sucessfully #{@value}")
|
14
|
+
return true
|
15
|
+
else
|
16
|
+
Taf::MyLog.log.warn("Theres a problem executing command #{@value}")
|
17
|
+
return false
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Handle Browser Window function.
|
7
|
+
class HandleBrowserWindow < Base
|
8
|
+
register :handle_browser_window
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.window(title: @value.to_s).use
|
12
|
+
sleep 3
|
13
|
+
Taf::Browser.b.title.eql?(@value.to_s)
|
14
|
+
Taf::MyLog.log.info("Window title: #{@value} is correct")
|
15
|
+
true
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("Window not found: #{@value}")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Pause the test function.
|
7
|
+
class Ipause < Base
|
8
|
+
register :ipause
|
9
|
+
|
10
|
+
def perform
|
11
|
+
sleep(@value.to_i)
|
12
|
+
Taf::MyLog.log.info('Wait completed for seconds: ' + @value.to_s)
|
13
|
+
true
|
14
|
+
rescue StandardError
|
15
|
+
Taf::MyLog.log.warn('Wait failed for seconds: ' + @value.to_s)
|
16
|
+
false
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# List all Dropdown Values function.
|
7
|
+
class ListAllDropdownValues < Base
|
8
|
+
register :list_all_dropdown_values
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.element("#{@locate}": @value).wait_until(&:exists?)
|
12
|
+
Taf::Browser.b.select_list("#{@locate}": @value).options.each do |i|
|
13
|
+
Taf::MyLog.log.info("List of dropdown for #{@value} are: #{i.text}")
|
14
|
+
return true
|
15
|
+
end
|
16
|
+
rescue StandardError
|
17
|
+
Taf::MyLog.log.warn("List dropdown: #{@value} does not exist")
|
18
|
+
false
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,59 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Logins function.
|
7
|
+
class Login < Base
|
8
|
+
register :login
|
9
|
+
|
10
|
+
def perform
|
11
|
+
user = @value2
|
12
|
+
user = ENV[user.to_s] if ENV[user.to_s]
|
13
|
+
|
14
|
+
login_user(user)
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.error "unable to find login: #{@value}"
|
17
|
+
raise Taf::LoginTypeFailed
|
18
|
+
end
|
19
|
+
|
20
|
+
def login_user(user)
|
21
|
+
case @value.downcase
|
22
|
+
when 'portal_login'
|
23
|
+
portal_login(user)
|
24
|
+
when 'sso_login'
|
25
|
+
sso_login(user)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def portal_login(user)
|
32
|
+
url = ENV['PORTAL_URL']
|
33
|
+
pass = ENV['PORTAL_USER_PASS']
|
34
|
+
b_title = 'Log in'
|
35
|
+
b_title_sucess = 'Home'
|
36
|
+
user_elm = 'user_email'
|
37
|
+
pass_elm = 'user_password'
|
38
|
+
|
39
|
+
Taf::Browser.b.goto(url)
|
40
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
41
|
+
mem_word_check(user, b_title_sucess)
|
42
|
+
end
|
43
|
+
|
44
|
+
def sso_login(user)
|
45
|
+
pass = ENV['SSO_USER_PASS']
|
46
|
+
# b_title = 'Log in to rh-sso'
|
47
|
+
# b_title_sucess = 'RHS-SSO Admin Console'
|
48
|
+
b_title = ''
|
49
|
+
b_title_sucess = ''
|
50
|
+
user_elm = 'username'
|
51
|
+
pass_elm = 'password'
|
52
|
+
|
53
|
+
login_process(b_title, user_elm, pass_elm, user, pass)
|
54
|
+
login_check(b_title_sucess, user)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|