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,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Open URL function.
|
7
|
+
class OpenUrl < Base
|
8
|
+
register :open_url
|
9
|
+
|
10
|
+
def perform
|
11
|
+
url = if ENV[@value]
|
12
|
+
ENV[@value.to_s]
|
13
|
+
else
|
14
|
+
@value
|
15
|
+
end
|
16
|
+
Taf::Browser.b.goto(url)
|
17
|
+
true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Png Test function.
|
7
|
+
class PingTest < Base
|
8
|
+
register :ping_test
|
9
|
+
|
10
|
+
# TODO: retry every 'x' until timeout reached.
|
11
|
+
def perform
|
12
|
+
check = Net::Ping::HTTP.new(@value)
|
13
|
+
|
14
|
+
check.ping?
|
15
|
+
sleep 5
|
16
|
+
if check.ping?
|
17
|
+
Taf::MyLog.log.info("pinged: #{@value}")
|
18
|
+
return true
|
19
|
+
else
|
20
|
+
Taf::MyLog.log.warn("Failed to ping: #{@value}")
|
21
|
+
return false
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Radio Button function.
|
7
|
+
class RadioButton < Base
|
8
|
+
register :radio_button
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.radio("#{@locate}": @value).wait_until(&:exists?)
|
12
|
+
Taf::Browser.b
|
13
|
+
.radio("#{@locate}": @value, "#{@locate2}": @value2.to_s)
|
14
|
+
.set
|
15
|
+
Taf::MyLog.log.info("Radio button: #{@value2} has been selected")
|
16
|
+
true
|
17
|
+
rescue StandardError
|
18
|
+
Taf::MyLog.log.warn("Radio button: #{@value2} does not exist")
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Select Dropdown function.
|
7
|
+
class SelectDropdown < Base
|
8
|
+
register :select_dropdown
|
9
|
+
|
10
|
+
def perform
|
11
|
+
ele = Taf::Browser.b.select_list("#{@locate}": @value)
|
12
|
+
|
13
|
+
ele.wait_until(&:exists?)
|
14
|
+
ele.option("#{@locate2}": @value2.to_s).select
|
15
|
+
Taf::MyLog.log.info("Dropdown item: #{@value2} has been selected")
|
16
|
+
true
|
17
|
+
rescue StandardError
|
18
|
+
Taf::MyLog.log.warn("Dropdown item: #{@value2} has NOT been selected")
|
19
|
+
false
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Taf
|
4
|
+
module TestSteps
|
5
|
+
module Handlers
|
6
|
+
# Send a Special Key function.
|
7
|
+
class SendSpecialKeys < Base
|
8
|
+
register :send_special_keys
|
9
|
+
|
10
|
+
def perform
|
11
|
+
Taf::Browser.b.send_keys :"#{@value}"
|
12
|
+
sleep 1
|
13
|
+
Taf::MyLog.log.info("Browser Sent key: :#{@value} successfully")
|
14
|
+
true
|
15
|
+
rescue StandardError
|
16
|
+
Taf::MyLog.log.warn("Browser Failed to Send key: :#{@value}")
|
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
|
+
# Write box data function.
|
7
|
+
class WriteBoxdata < Base
|
8
|
+
register :write_box_data
|
9
|
+
|
10
|
+
def perform
|
11
|
+
txt = @value2
|
12
|
+
txt = ENV[txt.to_s] if ENV[txt.to_s]
|
13
|
+
elms = %i[textarea text_field iframe]
|
14
|
+
|
15
|
+
found_box = elms.map do |elm|
|
16
|
+
Taf::Browser.b.send(elm, "#{@locate}": @value).exists?
|
17
|
+
end.compact
|
18
|
+
|
19
|
+
raise 'Multiple matches' if found_box.select { |i| i }.empty?
|
20
|
+
|
21
|
+
index = found_box.index(true)
|
22
|
+
return unless index
|
23
|
+
|
24
|
+
Taf::Browser.b.send(elms[index], "#{@locate}": @value)
|
25
|
+
.wait_until(&:exists?).send_keys txt
|
26
|
+
Taf::MyLog.log.info("Textbox: #{@value} has correct value: #{txt}")
|
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
|
data/lib/taf/version.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: taf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Perrett
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -173,47 +173,45 @@ extensions: []
|
|
173
173
|
extra_rdoc_files: []
|
174
174
|
files:
|
175
175
|
- bin/taf
|
176
|
-
- lib/
|
177
|
-
- lib/
|
178
|
-
- lib/
|
179
|
-
- lib/
|
180
|
-
- lib/
|
181
|
-
- lib/
|
182
|
-
- lib/
|
183
|
-
- lib/
|
184
|
-
- lib/
|
185
|
-
- lib/
|
186
|
-
- lib/
|
187
|
-
- lib/
|
188
|
-
- lib/
|
189
|
-
- lib/
|
190
|
-
- lib/
|
191
|
-
- lib/
|
192
|
-
- lib/
|
193
|
-
- lib/
|
194
|
-
- lib/
|
195
|
-
- lib/
|
196
|
-
- lib/
|
197
|
-
- lib/
|
198
|
-
- lib/
|
199
|
-
- lib/
|
200
|
-
- lib/
|
201
|
-
- lib/
|
202
|
-
- lib/
|
203
|
-
- lib/
|
204
|
-
- lib/
|
205
|
-
- lib/
|
206
|
-
- lib/
|
207
|
-
- lib/
|
208
|
-
- lib/
|
209
|
-
- lib/
|
210
|
-
- lib/
|
211
|
-
- lib/
|
212
|
-
- lib/
|
213
|
-
- lib/
|
214
|
-
- lib/
|
215
|
-
- lib/utils/test_steps.rb
|
216
|
-
- lib/version.rb
|
176
|
+
- lib/taf.rb
|
177
|
+
- lib/taf/browser.rb
|
178
|
+
- lib/taf/cmd_line.rb
|
179
|
+
- lib/taf/create_directories.rb
|
180
|
+
- lib/taf/json_parser.rb
|
181
|
+
- lib/taf/junit_report.rb
|
182
|
+
- lib/taf/my_log.rb
|
183
|
+
- lib/taf/parser.rb
|
184
|
+
- lib/taf/report.rb
|
185
|
+
- lib/taf/report_summary.rb
|
186
|
+
- lib/taf/screenshot.rb
|
187
|
+
- lib/taf/test_engine.rb
|
188
|
+
- lib/taf/test_steps.rb
|
189
|
+
- lib/taf/test_steps/handlers/base.rb
|
190
|
+
- lib/taf/test_steps/handlers/base/browser_back.rb
|
191
|
+
- lib/taf/test_steps/handlers/base/browser_forward.rb
|
192
|
+
- lib/taf/test_steps/handlers/base/browser_open.rb
|
193
|
+
- lib/taf/test_steps/handlers/base/browser_quit.rb
|
194
|
+
- lib/taf/test_steps/handlers/base/browser_refresh.rb
|
195
|
+
- lib/taf/test_steps/handlers/base/capture_alert.rb
|
196
|
+
- lib/taf/test_steps/handlers/base/check_box.rb
|
197
|
+
- lib/taf/test_steps/handlers/base/check_boxdata.rb
|
198
|
+
- lib/taf/test_steps/handlers/base/check_browser_title.rb
|
199
|
+
- lib/taf/test_steps/handlers/base/check_logs.rb
|
200
|
+
- lib/taf/test_steps/handlers/base/check_screendata.rb
|
201
|
+
- lib/taf/test_steps/handlers/base/check_url.rb
|
202
|
+
- lib/taf/test_steps/handlers/base/click_button.rb
|
203
|
+
- lib/taf/test_steps/handlers/base/execute_system_command.rb
|
204
|
+
- lib/taf/test_steps/handlers/base/handle_browser_window.rb
|
205
|
+
- lib/taf/test_steps/handlers/base/ipause.rb
|
206
|
+
- lib/taf/test_steps/handlers/base/list_all_dropdowns_values.rb
|
207
|
+
- lib/taf/test_steps/handlers/base/login.rb
|
208
|
+
- lib/taf/test_steps/handlers/base/open_url.rb
|
209
|
+
- lib/taf/test_steps/handlers/base/ping_test.rb
|
210
|
+
- lib/taf/test_steps/handlers/base/radio_button.rb
|
211
|
+
- lib/taf/test_steps/handlers/base/select_dropdown.rb
|
212
|
+
- lib/taf/test_steps/handlers/base/send_special_keys.rb
|
213
|
+
- lib/taf/test_steps/handlers/base/write_box_data.rb
|
214
|
+
- lib/taf/version.rb
|
217
215
|
homepage: https://github.com/Aperrett/TAF
|
218
216
|
licenses:
|
219
217
|
- MIT
|
data/lib/functions/handlers.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
# Base Hanfer file to contain all shared login functions
|
4
|
-
module TestSteps
|
5
|
-
require_relative '../../taf_config.rb'
|
6
|
-
module Handlers
|
7
|
-
# All Login functions function.
|
8
|
-
class Base
|
9
|
-
def initialize(step_attributes)
|
10
|
-
@value = step_attributes[:testvalue]
|
11
|
-
@value2 = step_attributes[:testvalue2]
|
12
|
-
@locate = step_attributes[:locate]
|
13
|
-
@locate2 = step_attributes[:locate2]
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.register(name)
|
17
|
-
TestSteps.handlers[name.to_s] = self
|
18
|
-
end
|
19
|
-
|
20
|
-
def self.perform(*args)
|
21
|
-
new(*args).perform
|
22
|
-
end
|
23
|
-
|
24
|
-
def open_url_process(url)
|
25
|
-
Browser.open_browser
|
26
|
-
Browser.b.goto(url)
|
27
|
-
end
|
28
|
-
|
29
|
-
def login_process(b_title, user_elm, pass_elm, user, pass)
|
30
|
-
if Browser.b.title.eql?(b_title)
|
31
|
-
Browser.b.text_field(id: user_elm).wait_until(&:exists?).set user
|
32
|
-
Browser.b.text_field(id: pass_elm).wait_until(&:exists?).set pass
|
33
|
-
button = 'Sign in' || 'Log in'
|
34
|
-
Browser.b.button(value: button).wait_until(&:exists?).click
|
35
|
-
sleep 1
|
36
|
-
else
|
37
|
-
MyLog.log.warn("User: #{user} has failed to log in.")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
def login_check(b_title_sucess, user)
|
42
|
-
if Browser.b.title.eql?(b_title_sucess)
|
43
|
-
MyLog.log.info("User: #{user} has logged in successful.")
|
44
|
-
true
|
45
|
-
else
|
46
|
-
MyLog.log.warn("User: #{user} has failed to log in.")
|
47
|
-
false
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
def mem_word_check(user, b_title_sucess)
|
52
|
-
if Browser.b.title.eql?('Memorable word')
|
53
|
-
portal_mem_word(user, b_title_sucess)
|
54
|
-
elsif Browser.b.title.eql?(b_title_sucess)
|
55
|
-
MyLog.log.info("User: #{user} has logged in successful.")
|
56
|
-
true
|
57
|
-
else
|
58
|
-
MyLog.log.warn("User: #{user} has failed to log in.")
|
59
|
-
false
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
def portal_mem_word(user, b_title_sucess)
|
64
|
-
password = ENV['PORTAL_MEM']
|
65
|
-
nums = (1..256).to_a
|
66
|
-
found_mem_nums = nums.each_with_object([]) do |num_val, mem_word|
|
67
|
-
elm_id = "user_memorable_parts_#{num_val}"
|
68
|
-
mem_word.push(num_val) if Browser.b.select(id: elm_id).exist?
|
69
|
-
end.compact
|
70
|
-
|
71
|
-
array_password = password.split('')
|
72
|
-
array_password.map!(&:upcase)
|
73
|
-
|
74
|
-
found_mem_nums.each do |mem_num|
|
75
|
-
char = array_password[(mem_num - 1)]
|
76
|
-
elm_id = "user_memorable_parts_#{mem_num}"
|
77
|
-
Browser.b.select_list(id: elm_id).option(value: char.to_s).select
|
78
|
-
end
|
79
|
-
|
80
|
-
Browser.b.button(value: 'Sign in').wait_until(&:exists?).click
|
81
|
-
if Browser.b.title.eql?(b_title_sucess)
|
82
|
-
MyLog.log.info("User: #{user} has logged in successful.")
|
83
|
-
return true
|
84
|
-
else
|
85
|
-
MyLog.log.warn("User: #{user} has failed to log in.")
|
86
|
-
return false
|
87
|
-
end
|
88
|
-
end
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'base_handler'
|
4
|
-
|
5
|
-
module TestSteps
|
6
|
-
module Handlers
|
7
|
-
# Browser Back function.
|
8
|
-
class BrowserBack < Base
|
9
|
-
register :browser_back
|
10
|
-
|
11
|
-
def perform
|
12
|
-
Browser.b.back
|
13
|
-
MyLog.log.info('Browser navigated back')
|
14
|
-
true
|
15
|
-
rescue StandardError
|
16
|
-
MyLog.log.warn('Browser failed to navigate back')
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'base_handler'
|
4
|
-
|
5
|
-
module TestSteps
|
6
|
-
module Handlers
|
7
|
-
# Browser Forward function.
|
8
|
-
class BrowserForward < Base
|
9
|
-
register :browser_forward
|
10
|
-
|
11
|
-
def perform
|
12
|
-
Browser.b.forward
|
13
|
-
MyLog.log.info('Browser navigated forward')
|
14
|
-
true
|
15
|
-
rescue StandardError
|
16
|
-
MyLog.log.warn('Browser failed to navigate forward')
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'base_handler'
|
4
|
-
|
5
|
-
module TestSteps
|
6
|
-
module Handlers
|
7
|
-
# Browser Quit function.
|
8
|
-
class BrowserQuit < Base
|
9
|
-
register :browser_quit
|
10
|
-
|
11
|
-
def perform
|
12
|
-
Browser.b.quit
|
13
|
-
MyLog.log.info('Browser has closed successfully')
|
14
|
-
true
|
15
|
-
rescue StandardError
|
16
|
-
MyLog.log.warn('Browser has failed to close')
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require_relative 'base_handler'
|
4
|
-
|
5
|
-
module TestSteps
|
6
|
-
module Handlers
|
7
|
-
# Browser Refresh function.
|
8
|
-
class BrowserRefresh < Base
|
9
|
-
register :browser_refresh
|
10
|
-
|
11
|
-
def perform
|
12
|
-
Browser.b.refresh
|
13
|
-
MyLog.log.info('The Browser has been refreshed')
|
14
|
-
true
|
15
|
-
rescue StandardError
|
16
|
-
MyLog.log.warn('The Browser failed to refresh')
|
17
|
-
false
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|