kraken-mobile 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: []