Ifd_Automation 2.9.8 → 2.9.9

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
  SHA256:
3
- metadata.gz: a1ea1131edf50e772642bb2e29273340dfa2204f1421b35bebaf77130beb2874
4
- data.tar.gz: 83185a07ccc7831083ba6911dfe7670b5dd4c7ec1be99944e788c1f5ad2612fa
3
+ metadata.gz: 57ab0f48029f2bfe9a2910342715fcba642521533e5e7733dd6b7ae7a8484ef8
4
+ data.tar.gz: 1da106099178075dc26a534e57b6f4c6dea84888ee45bb795236cfb1eeb32417
5
5
  SHA512:
6
- metadata.gz: fdc72eccf785013f7a0260150e79253c11d8189be03f6dd25ccba05f0a58de5cb96a4052e3d746d313306eebf99499d1355aeed74f79edd6c550d84be4ddf610
7
- data.tar.gz: a0f48faa7ee9ea3f151195a1963a7743f59b4cf778656b9bea4a7ab0f4f4298432b6f0a621799edc038b8956aa774244c3be703ad6b16fe5b1c1a6359b6d4976
6
+ metadata.gz: c1b688d0f7144a4feff96cba624c0fcac01c4265ee1c0e9f38871627d55e3d4118ae5b041d569abcd7050211ef997340667c458e78d0a50bfa9d37d5cea14d3d
7
+ data.tar.gz: 44ccb3e66973a25e6ff0aac750ccf6144be28df5aad9441dddf3de9db73a1d03b59ec2a5bd724d72c13119d6d0d3ee7daa2ecbfaec270b7908b0a129a79c9d4a
@@ -1,3 +1,3 @@
1
1
  module IfdAutomation
2
- VERSION = "2.9.8"
2
+ VERSION = "2.9.9"
3
3
  end
data/project/Gemfile CHANGED
@@ -1,2 +1,3 @@
1
1
  source 'http://rubygems.org'
2
- # gem 'Ifd_Automation'
2
+ gem 'report_builder'
3
+ gem 'Ifd_Automation'
@@ -0,0 +1,121 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ Ifd_Automation (2.9.9)
5
+ capybara (~> 2.7, >= 2.7.1)
6
+ cucumber (~> 3.1)
7
+ cucumber_priority (~> 0.3.2)
8
+ httparty (~> 0.15.6)
9
+ jsonpath (~> 0.5.8)
10
+ net-ssh (~> 3.2)
11
+ parallel_tests (~> 2.7, >= 2.7.1)
12
+ report_builder (~> 1.8, >= 1.8)
13
+ rspec (~> 3.8.0)
14
+ savon (~> 2.11, >= 2.11.1)
15
+ selenium-webdriver (~> 3.6, >= 3.6.0)
16
+ addressable (2.6.0)
17
+ public_suffix (>= 2.0.2, < 4.0)
18
+ akami (1.3.1)
19
+ gyoku (>= 0.4.0)
20
+ nokogiri
21
+ backports (3.13.0)
22
+ builder (3.2.3)
23
+ capybara (2.18.0)
24
+ addressable
25
+ mini_mime (>= 0.1.3)
26
+ nokogiri (>= 1.3.3)
27
+ rack (>= 1.0.0)
28
+ rack-test (>= 0.5.4)
29
+ xpath (>= 2.0, < 4.0)
30
+ childprocess (0.9.0)
31
+ ffi (~> 1.0, >= 1.0.11)
32
+ cucumber (3.1.2)
33
+ builder (>= 2.1.2)
34
+ cucumber-core (~> 3.2.0)
35
+ cucumber-expressions (~> 6.0.1)
36
+ cucumber-wire (~> 0.0.1)
37
+ diff-lcs (~> 1.3)
38
+ gherkin (~> 5.1.0)
39
+ multi_json (>= 1.7.5, < 2.0)
40
+ multi_test (>= 0.1.2)
41
+ cucumber-core (3.2.1)
42
+ backports (>= 3.8.0)
43
+ cucumber-tag_expressions (~> 1.1.0)
44
+ gherkin (~> 5.0)
45
+ cucumber-expressions (6.0.1)
46
+ cucumber-tag_expressions (1.1.1)
47
+ cucumber-wire (0.0.1)
48
+ cucumber_priority (0.3.2)
49
+ cucumber
50
+ diff-lcs (1.3)
51
+ ffi (1.10.0)
52
+ gherkin (5.1.0)
53
+ gyoku (1.3.1)
54
+ builder (>= 2.1.2)
55
+ httparty (0.15.7)
56
+ multi_xml (>= 0.5.2)
57
+ httpi (2.4.4)
58
+ rack
59
+ socksify
60
+ json (2.2.0)
61
+ jsonpath (0.5.8)
62
+ multi_json
63
+ mini_mime (1.0.1)
64
+ mini_portile2 (2.4.0)
65
+ multi_json (1.13.1)
66
+ multi_test (0.1.2)
67
+ multi_xml (0.6.0)
68
+ net-ssh (3.2.0)
69
+ nokogiri (1.10.3)
70
+ mini_portile2 (~> 2.4.0)
71
+ nori (2.6.0)
72
+ parallel (1.17.0)
73
+ parallel_tests (2.29.0)
74
+ parallel
75
+ public_suffix (3.0.3)
76
+ rack (2.0.7)
77
+ rack-test (1.1.0)
78
+ rack (>= 1.0, < 3)
79
+ report_builder (1.8)
80
+ json (>= 1.8.1)
81
+ rspec (3.8.0)
82
+ rspec-core (~> 3.8.0)
83
+ rspec-expectations (~> 3.8.0)
84
+ rspec-mocks (~> 3.8.0)
85
+ rspec-core (3.8.0)
86
+ rspec-support (~> 3.8.0)
87
+ rspec-expectations (3.8.2)
88
+ diff-lcs (>= 1.2.0, < 2.0)
89
+ rspec-support (~> 3.8.0)
90
+ rspec-mocks (3.8.0)
91
+ diff-lcs (>= 1.2.0, < 2.0)
92
+ rspec-support (~> 3.8.0)
93
+ rspec-support (3.8.0)
94
+ rubyzip (1.2.2)
95
+ savon (2.12.0)
96
+ akami (~> 1.2)
97
+ builder (>= 2.1.2)
98
+ gyoku (~> 1.2)
99
+ httpi (~> 2.3)
100
+ nokogiri (>= 1.8.1)
101
+ nori (~> 2.4)
102
+ wasabi (~> 3.4)
103
+ selenium-webdriver (3.141.0)
104
+ childprocess (~> 0.5)
105
+ rubyzip (~> 1.2, >= 1.2.2)
106
+ socksify (1.7.1)
107
+ wasabi (3.5.0)
108
+ httpi (~> 2.0)
109
+ nokogiri (>= 1.4.2)
110
+ xpath (3.2.0)
111
+ nokogiri (~> 1.8)
112
+
113
+ PLATFORMS
114
+ ruby
115
+
116
+ DEPENDENCIES
117
+ Ifd_Automation
118
+ report_builder
119
+
120
+ BUNDLED WITH
121
+ 2.0.1
data/project/Rakefile ADDED
@@ -0,0 +1,34 @@
1
+ require 'rubygems'
2
+
3
+ begin
4
+ require 'cucumber'
5
+ require 'cucumber/rake/task'
6
+ testsuite_name = ENV['TESTSUITE']
7
+ testcase_report_name = ENV['TESTCASE_REPORT_NAME']
8
+ report_path = "Reports/#{testsuite_name}"
9
+
10
+ local_opts = [ "--color", "--no-source","CONFIG_NAME=local"]
11
+ server_opts = [ "--color", "--no-source","CONFIG_NAME=server"]
12
+ junit_opts = ["--format junit", "--out #{report_path}"]
13
+ namespace :ITMS_DEBUG do
14
+ Cucumber::Rake::Task.new(:local, "Debug on local environment") do |t|
15
+ t.cucumber_opts = [*local_opts, "ITMS_DEBUG=true"]
16
+ end
17
+ Cucumber::Rake::Task.new(:server, "Debug on cloud browser") do |t|
18
+ t.cucumber_opts = [*server_opts, "ITMS_DEBUG=true"]
19
+ end
20
+ end
21
+ namespace :EXECUTE do
22
+ Cucumber::Rake::Task.new(:local, "Execute on local environment") do |t|
23
+ t.cucumber_opts = [*local_opts, *junit_opts, "EXECUTE=true", "--format json --out #{report_path}/#{testcase_report_name}.json"]
24
+ end
25
+ Cucumber::Rake::Task.new(:server, "Execute on cloud browser") do |t|
26
+ t.cucumber_opts = [*server_opts, *junit_opts, "EXECUTE=true", "--format json --out #{report_path}/#{testcase_report_name}.json"]
27
+ end
28
+ end
29
+ rescue LoadError
30
+ desc 'Cucumber rake task not available'
31
+ task :features do
32
+ abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
33
+ end
34
+ end
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite failures="0" errors="0" skipped="0" tests="1" time="15.602640" name="feature name">
3
+ <testcase classname="feature name" name="scenario name" time="15.602640">
4
+ <system-out>
5
+ <![CDATA[]]>
6
+ </system-out>
7
+ <system-err>
8
+ <![CDATA[]]>
9
+ </system-err>
10
+ </testcase>
11
+ </testsuite>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <testsuite failures="0" errors="0" skipped="0" tests="1" time="10.808264" name="feature name">
3
+ <testcase classname="feature name" name="scenario name" time="10.808264">
4
+ <system-out>
5
+ <![CDATA[]]>
6
+ </system-out>
7
+ <system-err>
8
+ <![CDATA[]]>
9
+ </system-err>
10
+ </testcase>
11
+ </testsuite>
@@ -0,0 +1,157 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>INFOdation Test Management System</title><link rel="icon" href="https://reportbuilder.rajatthareja.com/rb.ico">
6
+ <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
7
+ <link href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet">
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/css/materialize.min.css" media="screen,projection"/>
9
+ <link href="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.8/css/report.builder.min.css" rel="stylesheet">
10
+ </head><body>
11
+ <script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
12
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.100.2/js/materialize.min.js"></script>
13
+ <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.0/Chart.min.js"></script>
14
+ <script type="text/javascript" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script><header class="blue lighten-5">
15
+ <div class="row blue lighten-1">
16
+ <div class="col m6 hide-on-small-only">
17
+ <h5 class="truncate white-text tooltipped" data-tooltip="INFOdation Test Management System">INFOdation Test Management System</h5>
18
+ </div><div class="col m6 s12 blue lighten-1">
19
+ <ul class="tabs blue lighten-1 row" style="overflow-x: hidden">
20
+ <li class="tab col s3">
21
+ <a class="blue lighten-3 active blue-text waves-effect waves-light tooltipped" data-tooltip="Results Overview" href="#overview"><i class="material-icons">assessment</i> Overview</a>
22
+ </li>
23
+ <li class="tab col s3">
24
+ <a class="blue lighten-3 white-text waves-effect waves-light tooltipped" data-tooltip="Scenarios by Features" href="#features"><i class="material-icons">view_headline</i> Features</a>
25
+ </li>
26
+ <li class="tab col s3">
27
+ <a class="blue lighten-3 white-text waves-effect waves-light tooltipped" data-tooltip="Scenarios Summary Table" href="#summary"><i class="material-icons">view_comfy</i> Summary</a>
28
+ </li>
29
+ <li class="tab col s3">
30
+ <a class="blue lighten-3 white-text waves-effect waves-light tooltipped" data-tooltip="Failed Scenarios" href="#errors"><i class="material-icons">bug_report</i> Errors</a>
31
+ </li>
32
+ </ul>
33
+ </div>
34
+ </div>
35
+ </header>
36
+ <div id="g0f0s0" class="modal modal-fixed-footer">
37
+ <div class="modal-content"><div class="chip"><i class="material-icons rotate-45">label</i>@tag_name</div><h5>scenario name (15.588s)</h5>
38
+ features/TestSuite/WebGUI.feature:3
39
+ <ul class="collection stepList"><li class="collection-item step passed">
40
+ <b>Given </b> I open the page &quot;http://rubygems.org&quot; (12.432s)</li>
41
+ </ul>
42
+ </div><div class="modal-footer">
43
+ <span class="modal-action modal-close waves-effect waves-green btn-flat"><i class="material-icons">close</i></span>
44
+ </div>
45
+ </div><div id="g0f1s0" class="modal modal-fixed-footer">
46
+ <div class="modal-content"><div class="chip"><i class="material-icons rotate-45">label</i>@tag_name</div><h5>scenario name (10.807s)</h5>
47
+ features/TestSuite/WebGUI_copy.feature:3
48
+ <ul class="collection stepList"><li class="collection-item step passed">
49
+ <b>Given </b> I open the page &quot;http://rubygems.org&quot; (10.623s)</li>
50
+ </ul>
51
+ </div><div class="modal-footer">
52
+ <span class="modal-action modal-close waves-effect waves-green btn-flat"><i class="material-icons">close</i></span>
53
+ </div>
54
+ </div>
55
+ <script type="text/javascript">
56
+ $(document).ready(function () {$('#g0f0s0').modal();$('#g0f0s1').modal();$('#g0f1s0').modal();$('#g0f1s1').modal();});
57
+ </script>
58
+ <main class="blue lighten-5">
59
+ <div class="row"><div id="overview" class="col s12 blue lighten-5">
60
+ <div class="row">
61
+ <div class="col m4 s12">
62
+ <canvas id="featuresDoughnut" width="400" height="400"></canvas>
63
+ <table id="metaDataFeatures" class="bordered">
64
+ <tbody></tbody>
65
+ </table>
66
+ </div><div class="col m4 s12">
67
+ <canvas id="scenariosDoughnut" width="400" height="400"></canvas>
68
+ <table id="metaDataScenarios" class="bordered">
69
+ <tbody></tbody>
70
+ </table>
71
+ </div><div class="col m4 s12">
72
+ <table id="metaData" class="bordered">
73
+ <tbody>
74
+ <tr><th>Total Time</th><td>26.395s</td></tr><tr>
75
+ <th>Browser</th>
76
+ <td>chrome</td>
77
+ </tr><tr>
78
+ <th>Platform</th>
79
+ <td>linux</td>
80
+ </tr><tr>
81
+ <th>Browser Version</th>
82
+ <td>73.0.3683.86</td>
83
+ </tr><tr>
84
+ <th>Report Generated</th>
85
+ <td>2019-05-28 07:03:47 UTC</td>
86
+ </tr></tbody>
87
+ </table>
88
+ </div>
89
+ </div></div><div id="features" class="col s12 blue lighten-5 white-text">
90
+ <ul class="featureList collapsible popout" data-collapsible="expandable">
91
+ <li class="feature working">
92
+ <div class="collapsible-header blue lighten-1 waves-effect waves-light">
93
+ <i class="material-icons">featured_play_list</i>
94
+ <b>Feature</b>&nbsp;feature name&nbsp;(15.588s)
95
+ </div><div class="collapsible-body blue lighten-4">
96
+ <ul class="collection scenarioList"><li class="collection-item scenario passed">
97
+ <a class="waves-effect waves-light modal-trigger white-text" href="#g0f0s0">
98
+ <b>Scenario</b> scenario name&nbsp;(15.588s)
99
+ </a>
100
+ </li></ul>
101
+ </div>
102
+ </li><li class="feature working">
103
+ <div class="collapsible-header blue lighten-1 waves-effect waves-light">
104
+ <i class="material-icons">featured_play_list</i>
105
+ <b>Feature</b>&nbsp;feature name&nbsp;(10.807s)
106
+ </div><div class="collapsible-body blue lighten-4">
107
+ <ul class="collection scenarioList"><li class="collection-item scenario passed">
108
+ <a class="waves-effect waves-light modal-trigger white-text" href="#g0f1s0">
109
+ <b>Scenario</b> scenario name&nbsp;(10.807s)
110
+ </a>
111
+ </li></ul>
112
+ </div>
113
+ </li>
114
+ </ul></div><div id="summary" class="col s12 blue lighten-5">
115
+ <table id="summaryTable" class="bordered blue lighten-1 white-text" width="100%">
116
+ <thead>
117
+ <tr>
118
+ <th class="hide-on-small-only">Feature</th>
119
+ <th>Scenario</th>
120
+ <th class="hide">Tags</th>
121
+ <th>Status</th>
122
+ <th class="hide-on-small-only">Error</th>
123
+ </tr>
124
+ </thead>
125
+ <tbody><tr class="passed">
126
+ <td class="hide-on-small-only">
127
+ feature name
128
+ </td><td class="hoverable">
129
+ <a class="modal-trigger white-text" href="#g0f0s0">scenario name</a>
130
+ </td><td class="hide">
131
+ @tag_name.
132
+ </td><td class="uppercase">
133
+ passed
134
+ </td><td class="hide-on-small-only"></td></tr>
135
+ <tr class="passed">
136
+ <td class="hide-on-small-only">
137
+ feature name
138
+ </td><td class="hoverable">
139
+ <a class="modal-trigger white-text" href="#g0f1s0">scenario name</a>
140
+ </td><td class="hide">
141
+ @tag_name.
142
+ </td><td class="uppercase">
143
+ passed
144
+ </td><td class="hide-on-small-only"></td></tr>
145
+ </tbody>
146
+ </table></div><div id="errors" class="col s12 blue lighten-5">
147
+ <ul class="errorList collapsible popout" data-collapsible="expandable"></ul></div>
148
+ </div>
149
+ </main><footer class="page-footer blue lighten-4">
150
+ <div class="footer-copyright blue lighten-1">
151
+ <div class="container">
152
+ Happy Reporting!
153
+ <a class="white-text text-lighten-4 right" href="https://reportbuilder.rajatthareja.com">Generated by Report Builder</a>
154
+ </div>
155
+ </div>
156
+ </footer><script type="text/javascript" src="https://cdn.rawgit.com/rajatthareja/ReportBuilder/v1.8/js/report.builder.min.js"></script></body>
157
+ </html>
@@ -0,0 +1,208 @@
1
+ [
2
+ {
3
+ "uri": "features/TestSuite/WebGUI.feature",
4
+ "id": "feature-name",
5
+ "keyword": "Feature",
6
+ "name": "feature name",
7
+ "description": "",
8
+ "line": 1,
9
+ "elements": [
10
+ {
11
+ "id": "feature-name;scenario-name",
12
+ "keyword": "Scenario",
13
+ "name": "scenario name",
14
+ "description": "",
15
+ "line": 3,
16
+ "type": "scenario",
17
+ "tags": [
18
+ {
19
+ "name": "@tag_name",
20
+ "line": 2
21
+ }
22
+ ],
23
+ "before": [
24
+ {
25
+ "match": {
26
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:13"
27
+ },
28
+ "result": {
29
+ "status": "passed",
30
+ "duration": 21000
31
+ },
32
+ "status": "passed",
33
+ "duration": 21000
34
+ },
35
+ {
36
+ "match": {
37
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:21"
38
+ },
39
+ "result": {
40
+ "status": "passed",
41
+ "duration": 18000
42
+ },
43
+ "status": "passed",
44
+ "duration": 18000
45
+ },
46
+ {
47
+ "match": {
48
+ "location": "features/support/hooks.rb:1"
49
+ },
50
+ "result": {
51
+ "status": "passed",
52
+ "duration": 2989245000
53
+ },
54
+ "status": "passed",
55
+ "duration": 2989245000
56
+ }
57
+ ],
58
+ "steps": [
59
+ {
60
+ "keyword": "Given ",
61
+ "name": "I open the page &quot;http://rubygems.org&quot;",
62
+ "line": 4,
63
+ "match": {
64
+ "location": "features/step_definitions/lib_steps/steps_definition.rb:1"
65
+ },
66
+ "result": {
67
+ "status": "passed",
68
+ "duration": 12431607000
69
+ },
70
+ "status": "passed",
71
+ "duration": 12431607000
72
+ }
73
+ ],
74
+ "after": [
75
+ {
76
+ "match": {
77
+ "location": "features/support/hooks.rb:11"
78
+ },
79
+ "result": {
80
+ "status": "passed",
81
+ "duration": 32000
82
+ },
83
+ "status": "passed",
84
+ "duration": 32000
85
+ },
86
+ {
87
+ "match": {
88
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:9"
89
+ },
90
+ "result": {
91
+ "status": "passed",
92
+ "duration": 167338000
93
+ },
94
+ "status": "passed",
95
+ "duration": 167338000
96
+ }
97
+ ],
98
+ "status": "passed",
99
+ "duration": 15588261000
100
+ }
101
+ ],
102
+ "status": "working",
103
+ "duration": 15588261000
104
+ },
105
+ {
106
+ "uri": "features/TestSuite/WebGUI_copy.feature",
107
+ "id": "feature-name",
108
+ "keyword": "Feature",
109
+ "name": "feature name",
110
+ "description": "",
111
+ "line": 1,
112
+ "elements": [
113
+ {
114
+ "id": "feature-name;scenario-name",
115
+ "keyword": "Scenario",
116
+ "name": "scenario name",
117
+ "description": "",
118
+ "line": 3,
119
+ "type": "scenario",
120
+ "tags": [
121
+ {
122
+ "name": "@tag_name",
123
+ "line": 2
124
+ }
125
+ ],
126
+ "before": [
127
+ {
128
+ "match": {
129
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:13"
130
+ },
131
+ "result": {
132
+ "status": "passed",
133
+ "duration": 18000
134
+ },
135
+ "status": "passed",
136
+ "duration": 18000
137
+ },
138
+ {
139
+ "match": {
140
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:21"
141
+ },
142
+ "result": {
143
+ "status": "passed",
144
+ "duration": 15000
145
+ },
146
+ "status": "passed",
147
+ "duration": 15000
148
+ },
149
+ {
150
+ "match": {
151
+ "location": "features/support/hooks.rb:1"
152
+ },
153
+ "result": {
154
+ "status": "passed",
155
+ "duration": 25900000
156
+ },
157
+ "status": "passed",
158
+ "duration": 25900000
159
+ }
160
+ ],
161
+ "steps": [
162
+ {
163
+ "keyword": "Given ",
164
+ "name": "I open the page &quot;http://rubygems.org&quot;",
165
+ "line": 4,
166
+ "match": {
167
+ "location": "features/step_definitions/lib_steps/steps_definition.rb:1"
168
+ },
169
+ "result": {
170
+ "status": "passed",
171
+ "duration": 10623418000
172
+ },
173
+ "status": "passed",
174
+ "duration": 10623418000
175
+ }
176
+ ],
177
+ "after": [
178
+ {
179
+ "match": {
180
+ "location": "features/support/hooks.rb:11"
181
+ },
182
+ "result": {
183
+ "status": "passed",
184
+ "duration": 23000
185
+ },
186
+ "status": "passed",
187
+ "duration": 23000
188
+ },
189
+ {
190
+ "match": {
191
+ "location": "capybara-2.18.0/lib/capybara/cucumber.rb:9"
192
+ },
193
+ "result": {
194
+ "status": "passed",
195
+ "duration": 157374000
196
+ },
197
+ "status": "passed",
198
+ "duration": 157374000
199
+ }
200
+ ],
201
+ "status": "passed",
202
+ "duration": 10806748000
203
+ }
204
+ ],
205
+ "status": "working",
206
+ "duration": 10806748000
207
+ }
208
+ ]
@@ -0,0 +1,15 @@
1
+ server_url: http://localhost:4444/wd/hub
2
+
3
+ browser_caps:
4
+ -
5
+ "browserName": "chrome"
6
+ "video": false
7
+ "network": true
8
+ "console": true
9
+ "visual": true
10
+ -
11
+ "browserName": "firefox"
12
+ "video": true
13
+ "network": true
14
+ "console": true
15
+ "visual": true
@@ -0,0 +1,11 @@
1
+ server_url: "https://<user>:<token>@hub.lambdatest.com/wd/hub"
2
+
3
+ browser_caps:
4
+ -
5
+ "browserName": "chrome"
6
+ "version": "73.0"
7
+ "platform": "Windows 10"
8
+ "video": true
9
+ "network": true
10
+ "console": true
11
+ "visual": true
data/project/cucumber.yml CHANGED
@@ -1,6 +1,4 @@
1
- default: --no-source
2
- remote: SELENIUM=remote
3
- remote_chrome: BROWSER=chrome -p remote
4
- remote_firefox: BROWSER=firefox -p remote
5
- junit_report: -f progress -f junit -o Report
6
- html_report: -f progress -f html -o Report
1
+ chrome: BROWSER=chrome
2
+ firefox: BROWSER=firefox
3
+ ie: BROWSER=internet_explorer
4
+ parallel: parallel_cucumber
@@ -1,4 +1,4 @@
1
- Feature: test
2
- @test
3
- Scenario: test
4
- Given I open the homepage
1
+ Feature: feature name
2
+ @tag_name
3
+ Scenario: scenario name
4
+ Given I open the page "http://rubygems.org"
@@ -0,0 +1,4 @@
1
+ Feature: feature name
2
+ @tag_name
3
+ Scenario: scenario name
4
+ Given I open the page "http://rubygems.org"
@@ -1,5 +1,4 @@
1
- And /I open the homepage/ do
2
- execute_openbrowser("https://frontend.sportpartner-staging.test.infodation.vn/dk")
3
- execute_click("test")
1
+ And /I open the page "(.*)"/ do |page|
2
+ execute_openbrowser(page)
4
3
  sleep 10
5
4
  end
@@ -5,6 +5,8 @@ $test_data_dir = $base_dir + '/features/TestData/'
5
5
  $screenshot = $base_dir + '/features/Screenshot/'
6
6
  $PARAMS = YAML.load_file("#{$test_data_dir}/globalData.yml")
7
7
  $OBJECT = YAML.load_file("#{$base_dir}/features/step_definitions/repositories/project_object.yml")
8
+ CONFIG_NAME = ENV['CONFIG_NAME']
9
+ CONFIG = YAML.load(File.read(File.join(File.dirname(__FILE__), "../../config/#{CONFIG_NAME}.config.yml")))
8
10
  STDOUT.sync = true
9
11
  require 'rubygems'
10
12
  require 'capybara'
@@ -12,46 +14,42 @@ require 'capybara/cucumber'
12
14
  require 'cucumber'
13
15
  require 'yaml'
14
16
  require 'selenium-webdriver'
15
- require "#{$current_dir}/project_config.rb"
16
17
  require 'Ifd_Automation'
17
- # require_relative '../../../lib/Ifd_Automation/web_steps'
18
-
19
- $_CFWEB['Wait Time'] = ENV["WAIT_TIME"] || $wait_time
20
- $_CFWEB['Print Log'] = ENV["PRINT_LOG"] || $print_log
21
- $_CFWEB['Maximize Browser'] = ENV["MAXIMIZE_BROWSER"] || $maximize_browser
22
-
23
- Capybara.configure do |config|
24
- config.default_max_wait_time = $_CFWEB['Wait Time']
25
- config.default_driver = :selenium
26
- config.default_selector = :css
27
- config.ignore_hidden_elements = true
18
+ require 'report_builder'
19
+ require "#{$current_dir}/itms_action.rb"
20
+ itms_action = ITMS.new
21
+ if
22
+ %w(server local).include? ENV['CONFIG_NAME']
23
+ server_env = ENV['CONFIG_NAME']
24
+ else
25
+ raise "ERROR: CONFIG_NAME should be: server || local"
28
26
  end
29
-
30
- begin
31
- server_url = ENV["SELENIUM_SERVER"] || $selnium_server || 'http://localhost:4444/wd/hub'
32
- Capybara.register_driver :selenium do |app|
33
- Capybara::Selenium::Driver.new(app, browser: :remote, url: server_url, desired_capabilities: $capabilities)
27
+ if ENV['EXECUTE']
28
+ if ENV['TESTSUITE'] && ENV['TESTCASE_REPORT_NAME']
29
+ @report_path = "Reports/#{ENV['TESTSUITE']}"
30
+ @testcase_report_name = ENV['TESTCASE_REPORT_NAME']
31
+ else
32
+ raise "ERROR: Missing TESTSUITE || TESTCASE_REPORT_NAME"
33
+ exit
34
34
  end
35
- rescue StandardError => e
36
- raise "ERROR: #{e}"
37
35
  end
38
- # desired_caps = {
39
- # :caps => {
40
- # # The generated session will be visible to you only.
41
- # :sessionName => 'Automation test session',
42
- # :sessionDescription => '',
43
- # :deviceOrientation => 'portrait',
44
- # :captureScreenshots => true,
45
- # :browserName => 'chrome',
46
- # :deviceGroup => 'KOBITON',
47
- # # For deviceName, platformVersion Kobiton supports wildcard
48
- # # character *, with 3 formats: *text, text* and *text*
49
- # # If there is no *, Kobiton will match the exact text provided
50
- # :deviceName => 'LG X power',
51
- # :platformName => 'Android',
52
- # :platformVersion => '6.0.1'
53
- # },
54
- # :appium_lib => {
55
- # :server_url => 'https://anhpham2710:ea534084-f060-423c-8097-bee633d131fb@api.kobiton.com/wd/hub'
56
- # }
57
- # }
36
+ $_CFWEB['Wait Time'] = ENV["WAIT_TIME"] || 30
37
+ $_CFWEB['Print Log'] = ENV["PRINT_LOG"] || false
38
+ $_CFWEB['Maximize Browser'] = ENV["MAXIMIZE_BROWSER"] || true
39
+ SELENIUM_SERVER_URL = ENV['SERVER_URL'] || CONFIG['server_url']
40
+ TASK_ID = (ENV['TASK_ID'] || 0).to_i
41
+ if CONFIG_NAME == "local"
42
+ itms_action.getServerStatus(SELENIUM_SERVER_URL)
43
+ end
44
+
45
+ Capybara.register_driver :selenium do |app|
46
+ @caps = CONFIG['browser_caps'][TASK_ID].merge(build: "INFOdation Test Management System")
47
+ Capybara::Selenium::Driver.new(app,
48
+ :browser => :remote,
49
+ :url => SELENIUM_SERVER_URL,
50
+ :desired_capabilities => @caps
51
+ )
52
+ end
53
+
54
+ Capybara.default_driver = :selenium
55
+ Capybara.run_server = false
@@ -1,6 +1,6 @@
1
-
2
1
  Before do
3
2
  begin
3
+ $browser_data = page.driver.browser.capabilities
4
4
  browser = Capybara.current_session.driver.browser
5
5
  browser.manage.delete_all_cookies
6
6
  rescue StandardError => myStandardError
@@ -9,14 +9,41 @@ Before do
9
9
  end
10
10
 
11
11
  After do |scenario|
12
- # if ENV['save_screenshot'] == "true"
13
- # file_name = 'failed_%s.png' % rand(1000).to_s
14
- # page.save_screenshot($screenshot+file_name) if scenario.failed?
12
+ save_screenshot = ENV['SCREENSHOT'] || false
13
+ if save_screenshot == true
14
+ file_name = 'failed_%s.png' % rand(1000).to_s
15
+ page.save_screenshot($screenshot+file_name) if scenario.failed?
15
16
  begin
16
17
  Capybara.page.driver.quit
17
18
  Capybara.send(:session_pool).delete_if { |key, value| key =~ /selenium/i }
18
19
  rescue StandardError => myStandardError
19
20
  raise "\n>>> Error: #{myStandardError}"
20
21
  end
21
- # end
22
+ end
23
+ end
24
+
25
+ at_exit do
26
+ if ENV['EXECUTE']
27
+ time = Time.now.getutc
28
+ if $browser_data
29
+ browser_name = $browser_data[:browser_name]
30
+ browser_version = $browser_data[:version]
31
+ platform = $browser_data[:platform]
32
+ end
33
+ ReportBuilder.configure do |config|
34
+ config.report_path = "#{@report_path}/#{@testcase_report_name}"
35
+ config.input_path = "#{@report_path}/#{@testcase_report_name}.json"
36
+ config.report_types = [:json, :html]
37
+ config.color = 'blue'
38
+ config.additional_info = {
39
+ 'Browser' => browser_name || nil,
40
+ 'Platform' => platform || nil,
41
+ 'Browser Version' => browser_version || nil,
42
+ 'Report Generated' => time
43
+ }
44
+ end
45
+ options = { report_title: "INFOdation Test Management System" }
46
+ ReportBuilder.build_report options
47
+ end
22
48
  end
49
+
@@ -0,0 +1,19 @@
1
+ class ITMS
2
+ def getServerStatus(server_url)
3
+ require 'net/http'
4
+ uri = URI("#{server_url}/status")
5
+ begin
6
+ res = Net::HTTP.get_response(uri)
7
+ rescue SocketError
8
+ puts 'Network connectivity issue'
9
+ # Network is not 100% reliable
10
+ rescue Errno::ECONNREFUSED => e
11
+ puts 'The server is down.'
12
+ puts e.message
13
+ rescue Timeout::Error => e
14
+ puts 'Timeout error occurred.'
15
+ puts e.message
16
+ # Retry a few times and fail with timeout error message
17
+ end
18
+ end
19
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: Ifd_Automation
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.8
4
+ version: 2.9.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anh Pham
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-26 00:00:00.000000000 Z
11
+ date: 2019-05-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: selenium-webdriver
@@ -160,6 +160,26 @@ dependencies:
160
160
  - - ">="
161
161
  - !ruby/object:Gem::Version
162
162
  version: 2.7.1
163
+ - !ruby/object:Gem::Dependency
164
+ name: report_builder
165
+ requirement: !ruby/object:Gem::Requirement
166
+ requirements:
167
+ - - "~>"
168
+ - !ruby/object:Gem::Version
169
+ version: '1.8'
170
+ - - ">="
171
+ - !ruby/object:Gem::Version
172
+ version: '1.8'
173
+ type: :runtime
174
+ prerelease: false
175
+ version_requirements: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.8'
180
+ - - ">="
181
+ - !ruby/object:Gem::Version
182
+ version: '1.8'
163
183
  - !ruby/object:Gem::Dependency
164
184
  name: cucumber_priority
165
185
  requirement: !ruby/object:Gem::Requirement
@@ -213,15 +233,24 @@ files:
213
233
  - lib/Ifd_Automation/web_steps.rb
214
234
  - lib/Ifd_Automation/web_steps_helper.rb
215
235
  - project/Gemfile
236
+ - project/Gemfile.lock
216
237
  - project/README.md
238
+ - project/Rakefile
239
+ - project/Reports/testsuite_AP/TEST-features-TestSuite-WebGUI.xml
240
+ - project/Reports/testsuite_AP/TEST-features-TestSuite-WebGUI_copy.xml
241
+ - project/Reports/testsuite_AP/anhpham.html
242
+ - project/Reports/testsuite_AP/anhpham.json
243
+ - project/config/local.config.yml
244
+ - project/config/server.config.yml
217
245
  - project/cucumber.yml
218
246
  - project/features/TestData/globalData.yml
219
247
  - project/features/TestSuite/WebGUI.feature
248
+ - project/features/TestSuite/WebGUI_copy.feature
220
249
  - project/features/step_definitions/lib_steps/steps_definition.rb
221
250
  - project/features/step_definitions/repositories/project_object.yml
222
251
  - project/features/support/env.rb
223
252
  - project/features/support/hooks.rb
224
- - project/features/support/project_config.rb
253
+ - project/features/support/itms_action.rb
225
254
  homepage: http://rubygems.org/gems/ifd_automation
226
255
  licenses:
227
256
  - MIT
@@ -1,13 +0,0 @@
1
- $maximize_browser = true
2
- $wait_time = 10
3
- $print_log = true
4
- $record_video = false
5
- $default_browser = 'chrome'
6
- $selenium_platform = 'LINUX'
7
- $selnium_server = 'http://localhost:4444/wd/hub'
8
- $capabilities = Selenium::WebDriver::Remote::Capabilities.new
9
- $capabilities['platform'] = ENV['SELENIUM_PLATFORM'] || $selenium_platform || 'ANY'
10
- $capabilities['recordVideo'] = ENV["recordVideo"] || $record_video || false
11
- $capabilities['name'] = ENV["name"] || 'INFOdation Test Management System'
12
- $capabilities['browserName'] = ENV['SELENIUM_BROWSER'] || $default_browser || 'chrome'
13
- $capabilities['version'] = ENV['SELENIUM_VERSION'] if ENV['SELENIUM_VERSION']