qat-reporter 6.1.8 → 6.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e62e2b531b292abcd00cf449d28537c267fc63781eb88eceb25b133c3e31c93e
4
- data.tar.gz: 487e465338c489d8621468c932727dbf1f2a4686b6d6eb2220b02c02a25fd1f4
3
+ metadata.gz: 46b13863dc496be2bf36713f57242e92c48497fdbeafcbd44208b1ef4a5b80fa
4
+ data.tar.gz: 18e26f543d13d310471a383585bdec97c09535d6fff24ef2e6a39b7ccf74b1a9
5
5
  SHA512:
6
- metadata.gz: 978f6cf11fee264a100e7ff78fc1f38d4a71b8d625bb8e9116412d72f885d8324152ef049518d7ee918678b025082382f06beecb60e2d3314ee507fd2c337e8c
7
- data.tar.gz: 355b86c40eb3fb4e61f7334efa9f1639b0296ab86c4aef5b2d8b0ae6b64c31a2f118974492d2717299793d20e28f8239fe2f184d762bbf33748c5d158275d70e
6
+ metadata.gz: bf7ca8f3877860433f5544cb96e4356539b035d609ee0b52a4b4b6c64bbf10ffdea2b8a5a952a39fbf755276194162dbc770e001c564c324301996f8da5897cc
7
+ data.tar.gz: deee1ceed24cd3ace77c84aefec17747e5309d07e943217b6af317ea9eb9271c1ebe0972b14471a4257465a6acaeb0e8c2cde3c1e4eb2277cd6cbaf850f974b2
@@ -67,7 +67,11 @@ module QAT
67
67
  #@api private
68
68
  def after_test_case(_, status)
69
69
  test_status = if status.is_a? ::Cucumber::Core::Test::Result::Passed
70
- "passed"
70
+ if QAT::Reporter.const_defined?('Times')
71
+ Times.test_sla_status
72
+ else
73
+ "passed"
74
+ end
71
75
  elsif status.is_a? ::Cucumber::Core::Test::Result::Failed
72
76
  "failed"
73
77
  else
@@ -112,7 +112,8 @@ module QAT
112
112
  time: {
113
113
  secs: measure[:duration],
114
114
  human: "#{minutes}m #{'%02.0f' % seconds}s"
115
- }
115
+ },
116
+ sla: measure[:sla]
116
117
  }
117
118
  end
118
119
  end
@@ -152,11 +152,20 @@ module QAT
152
152
 
153
153
  end_time = QAT["#{label}_end".to_sym] || Time.now
154
154
 
155
+ measure_duration = end_time.to_f - start_time.to_f
156
+
157
+ warn_sla, error_sla, status_sla = sla_info(label, measure_duration)
158
+
155
159
  list[label] = {
156
160
  name: measure_description(label),
157
161
  start: start_time,
158
162
  end: end_time,
159
- duration: end_time.to_f - start_time.to_f
163
+ duration: measure_duration,
164
+ sla: {
165
+ warn: warn_sla,
166
+ error: error_sla,
167
+ status: status_sla
168
+ }
160
169
  }
161
170
 
162
171
  list
@@ -167,25 +176,77 @@ module QAT
167
176
  duration = measure[:duration]
168
177
 
169
178
  {
170
- "message" => "partial time execution",
171
- "_test_id" => test_id,
172
- "_id" => id,
173
- "_name" => measure[:name],
174
- "_time" => {
175
- "secs" => duration,
176
- "human" => human_formatted_time(duration)
177
- },
178
- "_os" => {
179
- "name" => QAT[:os_name],
180
- "version" => QAT[:os_version]
181
- },
182
- "_browser" => {
183
- "name" => QAT[:browser_name],
184
- "version" => QAT[:browser_version]
185
- }
179
+ "message" => "partial time execution",
180
+ "_test_id" => test_id,
181
+ "_id" => id,
182
+ "_name" => measure[:name],
183
+ "_time" => {
184
+ "secs" => duration,
185
+ "human" => human_formatted_time(duration)
186
+ },
187
+ "_os" => {
188
+ "name" => QAT[:os_name],
189
+ "version" => QAT[:os_version]
190
+ },
191
+ "_browser" => {
192
+ "name" => QAT[:browser_name],
193
+ "version" => QAT[:browser_version]
194
+ }
186
195
  }.deep_compact
187
196
  end
188
197
 
198
+
199
+ def self.measure_description(key)
200
+ description = if QAT.configuration.dig(:qat, :reporter, :times, key).is_a?(Hash)
201
+ QAT.configuration.dig(:qat, :reporter, :times, key, :name)
202
+ else
203
+ warn "[WARN] DEPRECATED: Measurements definition without limits will be removed in a 7.0 version, please use following configuration instead:\nmeasure_id:\n name: Test measure\n sla_warn: 10\n sla_error: 15"
204
+ QAT.configuration.dig(:qat, :reporter, :times, key)
205
+ end
206
+
207
+ raise NoLabelInConfig.new "No description was found in configuration file for key '#{key}'!" unless description
208
+ description
209
+ end
210
+
211
+ def self.sla_info(key, duration)
212
+ if QAT.configuration.dig(:qat, :reporter, :times, key).is_a?(Hash)
213
+ warn_sla = QAT.configuration.dig(:qat, :reporter, :times, key, :sla_warn)&.to_f
214
+ error_sla = QAT.configuration.dig(:qat, :reporter, :times, key, :sla_error)&.to_f
215
+ end
216
+
217
+
218
+ status = if error_sla && duration > error_sla
219
+ "Error"
220
+ elsif warn_sla && duration > warn_sla
221
+ "Warning"
222
+ else
223
+ "Passed"
224
+ end
225
+
226
+ return warn_sla, error_sla, status
227
+ end
228
+
229
+
230
+ def self.test_sla_status
231
+ measures = get_measures
232
+ measures.any? do |measure_key, info|
233
+ sla_status = info.dig(:sla, :status)
234
+
235
+ test_status = case sla_status
236
+ when "Passed"
237
+ "passed"
238
+ when "Warning"
239
+ "passed with SLA Warning"
240
+ else
241
+ "passed with SLA Error"
242
+ end
243
+
244
+ log.debug "SLA status for measure with key: #{measure_key} is '#{test_status}'"
245
+ return test_status
246
+ end
247
+ "passed"
248
+ end
249
+
189
250
  #No start time value error class
190
251
  class NoStartTimeError < StandardError
191
252
  end
@@ -195,14 +256,6 @@ module QAT
195
256
  #No label in yml configuration error class
196
257
  class NoLabelInConfig < StandardError
197
258
  end
198
-
199
- private
200
-
201
- def self.measure_description(key)
202
- description = QAT.configuration.dig(:qat, :reporter, :times, key)
203
- raise NoLabelInConfig.new "No description was found in configuration file for key '#{key}'!" unless description
204
- description
205
- end
206
259
  end
207
260
  end
208
261
  end
@@ -3,6 +3,6 @@ module QAT
3
3
  # Namespace for QAT Reporter
4
4
  module Reporter
5
5
  # Represents QAT Reporter's version
6
- VERSION = '6.1.8'
6
+ VERSION = '6.2.0'
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qat-reporter
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.1.8
4
+ version: 6.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - QAT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-09-19 00:00:00.000000000 Z
11
+ date: 2019-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: qat-cucumber
@@ -59,9 +59,6 @@ dependencies:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '6.0'
62
- - - ">="
63
- - !ruby/object:Gem::Version
64
- version: 6.0.1
65
62
  type: :development
66
63
  prerelease: false
67
64
  version_requirements: !ruby/object:Gem::Requirement
@@ -69,9 +66,6 @@ dependencies:
69
66
  - - "~>"
70
67
  - !ruby/object:Gem::Version
71
68
  version: '6.0'
72
- - - ">="
73
- - !ruby/object:Gem::Version
74
- version: 6.0.1
75
69
  description: |2
76
70
  QAT Reporter is a collection of tool for generating test report information such as:
77
71
  - Requirement Coverage
@@ -117,7 +111,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
117
111
  - !ruby/object:Gem::Version
118
112
  version: '0'
119
113
  requirements: []
120
- rubygems_version: 3.0.6
114
+ rubyforge_project:
115
+ rubygems_version: 2.7.7
121
116
  signing_key:
122
117
  specification_version: 4
123
118
  summary: Utility for Test Reports.