kraken-mobile 1.0.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.
Files changed (69) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +8 -0
  3. data/README.md +169 -0
  4. data/bin/kraken-mobile +91 -0
  5. data/bin/kraken-mobile-calabash-android.rb +85 -0
  6. data/bin/kraken-mobile-generate.rb +19 -0
  7. data/bin/kraken-mobile-helpers.rb +48 -0
  8. data/bin/kraken-mobile-setup.rb +50 -0
  9. data/calabash-android-features-skeleton/my_first.feature +11 -0
  10. data/calabash-android-features-skeleton/step_definitions/kraken_steps.rb +1 -0
  11. data/calabash-android-features-skeleton/support/app_installation_hooks.rb +25 -0
  12. data/calabash-android-features-skeleton/support/app_life_cycle_hooks.rb +10 -0
  13. data/calabash-android-features-skeleton/support/env.rb +1 -0
  14. data/lib/kraken-mobile.rb +29 -0
  15. data/lib/kraken-mobile/constants.rb +25 -0
  16. data/lib/kraken-mobile/helpers/command_helper.rb +38 -0
  17. data/lib/kraken-mobile/helpers/devices_helper/adb_helper.rb +157 -0
  18. data/lib/kraken-mobile/helpers/devices_helper/manager.rb +43 -0
  19. data/lib/kraken-mobile/helpers/feature_analyzer.rb +28 -0
  20. data/lib/kraken-mobile/helpers/feature_grouper.rb +48 -0
  21. data/lib/kraken-mobile/helpers/reporter.rb +381 -0
  22. data/lib/kraken-mobile/models/device.rb +32 -0
  23. data/lib/kraken-mobile/protocols/file_protocol.rb +126 -0
  24. data/lib/kraken-mobile/runners/calabash/android/android_runner.rb +130 -0
  25. data/lib/kraken-mobile/runners/calabash/android/apk_signer.rb +14 -0
  26. data/lib/kraken-mobile/runners/calabash/android/cucumber.rb +27 -0
  27. data/lib/kraken-mobile/runners/calabash/android/kraken_hooks.rb +15 -0
  28. data/lib/kraken-mobile/runners/calabash/android/kraken_steps.rb +3 -0
  29. data/lib/kraken-mobile/runners/calabash/android/monkey_helper.rb +139 -0
  30. data/lib/kraken-mobile/runners/calabash/android/operations.rb +44 -0
  31. data/lib/kraken-mobile/runners/calabash/android/steps/communication_steps.rb +57 -0
  32. data/lib/kraken-mobile/runners/calabash/monkey/monkey_runner.rb +113 -0
  33. data/lib/kraken-mobile/runners/runner.rb +18 -0
  34. data/lib/kraken-mobile/version.rb +5 -0
  35. data/reporter/assets/css/bootstrap.min.css +6 -0
  36. data/reporter/assets/css/dataTables.bootstrap.min.css +1 -0
  37. data/reporter/assets/css/feature_index.css +449 -0
  38. data/reporter/assets/css/font-awesome.min.css +4 -0
  39. data/reporter/assets/css/responsive.dataTables.min.css +1 -0
  40. data/reporter/assets/css/scenario_index.css +461 -0
  41. data/reporter/assets/fonts/FontAwesome.otf +0 -0
  42. data/reporter/assets/fonts/fontawesome-webfont.eot +0 -0
  43. data/reporter/assets/fonts/fontawesome-webfont.svg +2671 -0
  44. data/reporter/assets/fonts/fontawesome-webfont.ttf +0 -0
  45. data/reporter/assets/fonts/fontawesome-webfont.woff +0 -0
  46. data/reporter/assets/fonts/fontawesome-webfont.woff2 +0 -0
  47. data/reporter/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  48. data/reporter/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  49. data/reporter/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  50. data/reporter/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  51. data/reporter/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  52. data/reporter/assets/images/kraken.png +0 -0
  53. data/reporter/assets/js/Chart.min.js +14 -0
  54. data/reporter/assets/js/bootstrap.min.js +7 -0
  55. data/reporter/assets/js/d3.chart.min.js +7 -0
  56. data/reporter/assets/js/d3.v3.min.js +5 -0
  57. data/reporter/assets/js/dataTables.bootstrap.min.js +8 -0
  58. data/reporter/assets/js/dataTables.responsive.min.js +26 -0
  59. data/reporter/assets/js/first-sankey.js +292 -0
  60. data/reporter/assets/js/gitgraph.min.js +10 -0
  61. data/reporter/assets/js/html5shiv.min.js +4 -0
  62. data/reporter/assets/js/jquery-3.2.1.min.js +4 -0
  63. data/reporter/assets/js/jquery.dataTables.min.js +167 -0
  64. data/reporter/assets/js/respond.min.js +5 -0
  65. data/reporter/assets/js/sankey.js +512 -0
  66. data/reporter/feature_report.html.erb +274 -0
  67. data/reporter/index.html.erb +711 -0
  68. data/reporter/scenario_report.html.erb +174 -0
  69. metadata +169 -0
@@ -0,0 +1,174 @@
1
+ <html lang="en">
2
+ <head>
3
+ <meta charset="UTF-8">
4
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
5
+ <meta http-equiv="X-UA-Compatible" content="ie=edge">
6
+ <title>Report</title>
7
+
8
+ <!-- Dependencies -->
9
+ <link rel="stylesheet" href="../../assets/css/bootstrap.min.css">
10
+ <link href="../../assets/css/font-awesome.min.css" rel="stylesheet">
11
+ <link href="../../assets/css/dataTables.bootstrap.min.css" rel="stylesheet">
12
+ <link href="../../assets/css/responsive.dataTables.min.css" rel="stylesheet">
13
+ <link href="../../assets/css/scenario_index.css" rel="stylesheet">
14
+ </head>
15
+ <body>
16
+
17
+ <div class="main_conainer">
18
+
19
+ <div class="page-title">
20
+ <div class="tags">
21
+
22
+ </div>
23
+ <h1>Feature:
24
+ <small><%= @feature["name"] %></small>
25
+ </h1>
26
+ <p></p>
27
+ </div>
28
+
29
+ <div class="clearfix"></div>
30
+
31
+ <div class="row">
32
+ <div class="col-md-12 col-xs-12">
33
+ <div class="x_panel fixed_height_320">
34
+ <div class="x_title">
35
+ <h2>Scenarios</h2>
36
+ <div class="clearfix"></div>
37
+ </div>
38
+ <div class="x_content">
39
+ <table class="chart">
40
+ <tr>
41
+ <th>
42
+ <p>Chart</p>
43
+ </th>
44
+ <th>
45
+ <div class="col-lg-7 col-md-7 col-sm-7 col-xs-7">
46
+ <p class="">Status</p>
47
+ </div>
48
+ <div class="col-lg-5 col-md-5 col-sm-5 col-xs-5">
49
+ <p class="">Progress</p>
50
+ </div>
51
+ </th>
52
+ </tr>
53
+ <tr>
54
+ <td class="chart">
55
+ <canvas id="scenario-chart"></canvas>
56
+ <div class="total"><%= @feature["elements"].count %></div>
57
+ </td>
58
+ <td>
59
+ <table class="tile_info">
60
+ <tr>
61
+ <td>
62
+ <p data-toggle="tooltip" data-placement="left" title="Scenario passed">
63
+ <i class="fa fa-check-circle passed-color"></i>
64
+ Passed
65
+ </p>
66
+ </td>
67
+ <td class="percentage"><%= feature_passed_scenarios_percentage(@feature) %> %</td>
68
+ </tr>
69
+ <tr>
70
+ <td>
71
+ <p data-toggle="tooltip" data-placement="left" title="Scenario failed">
72
+ <i class="fa fa-exclamation-circle failed-color"></i>
73
+ Failed
74
+ </p>
75
+ </td>
76
+ <td class="percentage"><%= feature_failed_scenarios_percentage(@feature) %> %</td>
77
+ </tr>
78
+ </table>
79
+ </td>
80
+ </tr>
81
+ <tr>
82
+ <th> Total duration:</th>
83
+ <tr><td><%= format_duration(feature_duration(@feature)) %></td></tr>
84
+ </tr>
85
+ </table>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+ <% @feature["elements"].each do |f| %>
91
+ <div class="row">
92
+ <div class="col-md-12 col-sm-12 col-xs-12">
93
+ <div class="x_panel" style="height: auto;">
94
+ <div class="x_title">
95
+ <h2>Scenario: <small><%= f["name"] %></small></h2>
96
+ <div class="clearfix"></div>
97
+ </div>
98
+ <div class="x_content">
99
+ <div class="scenario-step-container">
100
+ </div>
101
+ <% f["steps"].each do |s| %>
102
+ <div class="scenario-step-container">
103
+ <% if s["result"]["status"] == PASSED %>
104
+ <div class="label" title="Success">
105
+ <i class="fa fa-check-circle fa-2x passed-color" data-toggle="tooltip" data-placement="top" title="Step passed"></i>
106
+ </div>
107
+ <% else %>
108
+ <div class="label" data-toggle="tooltip" data-placement="top" title="Step failed">
109
+ <i class="fa fa-exclamation-circle fa-2x failed-color"></i>
110
+ </div>
111
+ <% end %>
112
+ <div class="text">
113
+ <span class="keyword highlight"><%= s["keyword"] %> </span>
114
+ <%= s["name"] %>
115
+ <span class="duration"><%= format_duration(s["result"]["duration"]) %></span>
116
+ <% if s["result"]["error_message"] %>
117
+ <a href='#error<%= s["line"] %>-error' data-toggle="collapse">+ Show Error</a>
118
+ <div id='error<%= s["line"]%>-error' class="scenario-step-collapse collapse">
119
+ <pre class=info><%= s["result"]["error_message"] %></pre>
120
+ </div>
121
+ <% end %>
122
+ </div>
123
+ </div>
124
+ <% end %>
125
+ </div>
126
+ </div>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ <% end %>
131
+
132
+ <script src="../../assets/js/jquery-3.2.1.min.js" ></script>
133
+ <script src="../../assets/js/bootstrap.min.js"></script>
134
+ <script src="../../assets/js/jquery.dataTables.min.js"></script>
135
+ <script src="../../assets/js/dataTables.bootstrap.min.js"></script>
136
+ <script src="../../assets/js/dataTables.responsive.min.js"></script>
137
+ <script src="../../assets/js/Chart.min.js"></script>
138
+ <script>
139
+ $(document).ready(function () {
140
+ passed_scenarios = parseInt("<%= passed_scenarios(@feature).count %>")
141
+ failed_scenarios = parseInt("<%= failed_scenarios(@feature).count %>")
142
+
143
+ scenarios_data = [passed_scenarios,failed_scenarios];
144
+ var scenarioOptions = {
145
+ legend: false,
146
+ responsive: false
147
+ };
148
+
149
+ new Chart(document.getElementById("scenario-chart"), {
150
+ type: 'doughnut',
151
+ tooltipFillColor: "rgba(51, 51, 51, 0.55)",
152
+ data: {
153
+ labels: [
154
+ "Passed",
155
+ "Failed"
156
+ ],
157
+ datasets: [{
158
+ data: scenarios_data,
159
+ backgroundColor: [
160
+ "#26B99A",
161
+ "#E74C3C"
162
+ ]
163
+ }]
164
+ },
165
+ options: scenarioOptions
166
+ });
167
+
168
+ $('body').tooltip({
169
+ selector: '[data-toggle="tooltip"]'
170
+ });
171
+ });
172
+ </script>
173
+ </body>
174
+ </html>
metadata ADDED
@@ -0,0 +1,169 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: kraken-mobile
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ platform: ruby
6
+ authors:
7
+ - William Ravelo M
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-05-20 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: cucumber
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '3.1'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '3.1'
27
+ - !ruby/object:Gem::Dependency
28
+ name: calabash-android
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '='
32
+ - !ruby/object:Gem::Version
33
+ version: 0.9.8
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '='
39
+ - !ruby/object:Gem::Version
40
+ version: 0.9.8
41
+ - !ruby/object:Gem::Dependency
42
+ name: parallel
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '='
46
+ - !ruby/object:Gem::Version
47
+ version: 1.14.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.14.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: tty-prompt
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 0.18.1
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - '='
67
+ - !ruby/object:Gem::Version
68
+ version: 0.18.1
69
+ description: 'Automated E2E testing involving intercommunication between two or more
70
+ mobile applications running in different devices or emulators. '
71
+ email:
72
+ - drummerwilliam@gmail.com
73
+ executables:
74
+ - kraken-mobile
75
+ extensions: []
76
+ extra_rdoc_files: []
77
+ files:
78
+ - LICENSE
79
+ - README.md
80
+ - bin/kraken-mobile
81
+ - bin/kraken-mobile-calabash-android.rb
82
+ - bin/kraken-mobile-generate.rb
83
+ - bin/kraken-mobile-helpers.rb
84
+ - bin/kraken-mobile-setup.rb
85
+ - calabash-android-features-skeleton/my_first.feature
86
+ - calabash-android-features-skeleton/step_definitions/kraken_steps.rb
87
+ - calabash-android-features-skeleton/support/app_installation_hooks.rb
88
+ - calabash-android-features-skeleton/support/app_life_cycle_hooks.rb
89
+ - calabash-android-features-skeleton/support/env.rb
90
+ - lib/kraken-mobile.rb
91
+ - lib/kraken-mobile/constants.rb
92
+ - lib/kraken-mobile/helpers/command_helper.rb
93
+ - lib/kraken-mobile/helpers/devices_helper/adb_helper.rb
94
+ - lib/kraken-mobile/helpers/devices_helper/manager.rb
95
+ - lib/kraken-mobile/helpers/feature_analyzer.rb
96
+ - lib/kraken-mobile/helpers/feature_grouper.rb
97
+ - lib/kraken-mobile/helpers/reporter.rb
98
+ - lib/kraken-mobile/models/device.rb
99
+ - lib/kraken-mobile/protocols/file_protocol.rb
100
+ - lib/kraken-mobile/runners/calabash/android/android_runner.rb
101
+ - lib/kraken-mobile/runners/calabash/android/apk_signer.rb
102
+ - lib/kraken-mobile/runners/calabash/android/cucumber.rb
103
+ - lib/kraken-mobile/runners/calabash/android/kraken_hooks.rb
104
+ - lib/kraken-mobile/runners/calabash/android/kraken_steps.rb
105
+ - lib/kraken-mobile/runners/calabash/android/monkey_helper.rb
106
+ - lib/kraken-mobile/runners/calabash/android/operations.rb
107
+ - lib/kraken-mobile/runners/calabash/android/steps/communication_steps.rb
108
+ - lib/kraken-mobile/runners/calabash/monkey/monkey_runner.rb
109
+ - lib/kraken-mobile/runners/runner.rb
110
+ - lib/kraken-mobile/version.rb
111
+ - reporter/assets/css/bootstrap.min.css
112
+ - reporter/assets/css/dataTables.bootstrap.min.css
113
+ - reporter/assets/css/feature_index.css
114
+ - reporter/assets/css/font-awesome.min.css
115
+ - reporter/assets/css/responsive.dataTables.min.css
116
+ - reporter/assets/css/scenario_index.css
117
+ - reporter/assets/fonts/FontAwesome.otf
118
+ - reporter/assets/fonts/fontawesome-webfont.eot
119
+ - reporter/assets/fonts/fontawesome-webfont.svg
120
+ - reporter/assets/fonts/fontawesome-webfont.ttf
121
+ - reporter/assets/fonts/fontawesome-webfont.woff
122
+ - reporter/assets/fonts/fontawesome-webfont.woff2
123
+ - reporter/assets/fonts/glyphicons-halflings-regular.eot
124
+ - reporter/assets/fonts/glyphicons-halflings-regular.svg
125
+ - reporter/assets/fonts/glyphicons-halflings-regular.ttf
126
+ - reporter/assets/fonts/glyphicons-halflings-regular.woff
127
+ - reporter/assets/fonts/glyphicons-halflings-regular.woff2
128
+ - reporter/assets/images/kraken.png
129
+ - reporter/assets/js/Chart.min.js
130
+ - reporter/assets/js/bootstrap.min.js
131
+ - reporter/assets/js/d3.chart.min.js
132
+ - reporter/assets/js/d3.v3.min.js
133
+ - reporter/assets/js/dataTables.bootstrap.min.js
134
+ - reporter/assets/js/dataTables.responsive.min.js
135
+ - reporter/assets/js/first-sankey.js
136
+ - reporter/assets/js/gitgraph.min.js
137
+ - reporter/assets/js/html5shiv.min.js
138
+ - reporter/assets/js/jquery-3.2.1.min.js
139
+ - reporter/assets/js/jquery.dataTables.min.js
140
+ - reporter/assets/js/respond.min.js
141
+ - reporter/assets/js/sankey.js
142
+ - reporter/feature_report.html.erb
143
+ - reporter/index.html.erb
144
+ - reporter/scenario_report.html.erb
145
+ homepage: https://github.com/ravelinx22
146
+ licenses:
147
+ - MIT
148
+ metadata: {}
149
+ post_install_message:
150
+ rdoc_options: []
151
+ require_paths:
152
+ - lib
153
+ required_ruby_version: !ruby/object:Gem::Requirement
154
+ requirements:
155
+ - - ">="
156
+ - !ruby/object:Gem::Version
157
+ version: '0'
158
+ required_rubygems_version: !ruby/object:Gem::Requirement
159
+ requirements:
160
+ - - ">="
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ requirements: []
164
+ rubyforge_project:
165
+ rubygems_version: 2.6.14
166
+ signing_key:
167
+ specification_version: 4
168
+ summary: Automated E2E mobile testing involving intercommunication scenarios.
169
+ test_files: []