From 3f95f6b71913f0645b7a7176497e4f46bc44d4a3 Mon Sep 17 00:00:00 2001 From: Prashanth Sams Date: Tue, 25 Feb 2020 15:02:36 +0400 Subject: [PATCH 01/12] Create Gemfile.lock --- Gemfile.lock | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Gemfile.lock diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..bc76b85 --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,49 @@ +PATH + remote: . + specs: + client-api (0.4.1) + json-schema (~> 2.8) + logger (~> 1.0) + +GEM + remote: https://rubygems.org/ + specs: + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + byebug (11.0.1) + diff-lcs (1.3) + dogapi (1.39.0) + multi_json + json-schema (2.8.1) + addressable (>= 2.4) + logger (1.4.1) + multi_json (1.14.1) + public_suffix (4.0.1) + rake (13.0.0) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-core (3.9.0) + rspec-support (~> 3.9.0) + rspec-expectations (3.9.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-mocks (3.9.0) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.0) + +PLATFORMS + ruby + +DEPENDENCIES + bundler + byebug (~> 11.0) + client-api! + dogapi + rake + rspec (~> 3.0) + +BUNDLED WITH + 2.0.2 From a00070bdf92bd8ad42a43b1ec3e786b3448bac8b Mon Sep 17 00:00:00 2001 From: Prashanth Sams Date: Tue, 25 Feb 2020 15:04:48 +0400 Subject: [PATCH 02/12] Update Gemfile.lock --- Gemfile.lock | 3 --- 1 file changed, 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bc76b85..5ca0319 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,8 +12,6 @@ GEM public_suffix (>= 2.0.2, < 5.0) byebug (11.0.1) diff-lcs (1.3) - dogapi (1.39.0) - multi_json json-schema (2.8.1) addressable (>= 2.4) logger (1.4.1) @@ -41,7 +39,6 @@ DEPENDENCIES bundler byebug (~> 11.0) client-api! - dogapi rake rspec (~> 3.0) From 605f95fbb3850db3ad65db498c7efdc761a62d50 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 15:15:36 +0400 Subject: [PATCH 03/12] added datadog --- .gitignore | 1 - Gemfile.lock | 3 ++- client-api.gemspec | 1 + spec/spec_helper.rb | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 9ac6dfa..7f29dc7 100644 --- a/.gitignore +++ b/.gitignore @@ -10,7 +10,6 @@ # rspec failure tracking .rspec_status -Gemfile.lock .idea/ .DS_Store .byebug_history diff --git a/Gemfile.lock b/Gemfile.lock index 5ca0319..d3118b5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,11 +11,11 @@ GEM addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) byebug (11.0.1) + datadog (0.1.0.alpha) diff-lcs (1.3) json-schema (2.8.1) addressable (>= 2.4) logger (1.4.1) - multi_json (1.14.1) public_suffix (4.0.1) rake (13.0.0) rspec (3.9.0) @@ -39,6 +39,7 @@ DEPENDENCIES bundler byebug (~> 11.0) client-api! + datadog rake rspec (~> 3.0) diff --git a/client-api.gemspec b/client-api.gemspec index 67ccc88..54eef95 100644 --- a/client-api.gemspec +++ b/client-api.gemspec @@ -28,6 +28,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake" spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "byebug", "~> 11.0" + spec.add_development_dependency "datadog" spec.add_runtime_dependency "json-schema", '~> 2.8' spec.add_runtime_dependency "logger", "~> 1.0" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 146521c..7899f90 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,6 +3,7 @@ require "rspec" require "rspec/expectations" require "json" +require "datadog" RSpec.configure do |config| # Enable flags like --only-failures and --next-failure From cc8ed9106fd593bb332543d02a25796ed6410d48 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 18:24:54 +0400 Subject: [PATCH 04/12] updated datadog details --- Gemfile.lock | 6 ++++-- client-api.gemspec | 2 +- spec/spec_helper.rb | 16 +++++++++++++++- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d3118b5..bc76b85 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,11 +11,13 @@ GEM addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) byebug (11.0.1) - datadog (0.1.0.alpha) diff-lcs (1.3) + dogapi (1.39.0) + multi_json json-schema (2.8.1) addressable (>= 2.4) logger (1.4.1) + multi_json (1.14.1) public_suffix (4.0.1) rake (13.0.0) rspec (3.9.0) @@ -39,7 +41,7 @@ DEPENDENCIES bundler byebug (~> 11.0) client-api! - datadog + dogapi rake rspec (~> 3.0) diff --git a/client-api.gemspec b/client-api.gemspec index 54eef95..7173b74 100644 --- a/client-api.gemspec +++ b/client-api.gemspec @@ -28,7 +28,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "rake" spec.add_development_dependency "rspec", "~> 3.0" spec.add_development_dependency "byebug", "~> 11.0" - spec.add_development_dependency "datadog" + spec.add_development_dependency "dogapi" spec.add_runtime_dependency "json-schema", '~> 2.8' spec.add_runtime_dependency "logger", "~> 1.0" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 7899f90..a95ebed 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -3,7 +3,7 @@ require "rspec" require "rspec/expectations" require "json" -require "datadog" +require "dogapi" RSpec.configure do |config| # Enable flags like --only-failures and --next-failure @@ -28,6 +28,20 @@ config.time_out = 10 # in secs config.logger = {'Dirname' => './logs', 'Filename' => 'test', 'StoreFilesCount' => 2} + config.before(:all) do + $api_key = ENV['API_KEY'] + $app_key = ENV['APP_KEY'] + + dog = Dogapi::Client.new($api_key, $app_key) + # p dog.datadog_host # prints https://api.datadoghq.com + + # dog.add_tags("my_host", ["tagA", "tagB"]) + # dog.emit_event(Dogapi::Event.new('Testing done, FTW'), :host => "my_host") + # dog.emit_point('some.metric.name', 50.0, :host => "my_host", :device => "my_device") + # dog.emit_points('some.metric.name', [[t1, val1], [t2, val2], [t3, val3]], :host => "my_host", :device => "my_device") + dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => dog.datadog_host, :device => "my_device") + end + config.before(:each) do |scenario| ClientApi::Request.new(scenario) end From 3fa09e7e59924967a856ed1cfe182a1be2aceb25 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 18:45:02 +0400 Subject: [PATCH 05/12] updated datadog details --- spec/spec_helper.rb | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index a95ebed..6a6edb0 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -18,29 +18,33 @@ config.filter_run_when_matching :focus config.expose_dsl_globally = true -end - -ClientApi.configure do |config| - config.base_url = 'https://reqres.in' - config.headers = {'Content-Type' => 'application/json', 'Accept' => 'application/json'} - config.basic_auth = {'Username' => 'ahamilton@apigee.com', 'Password' => 'myp@ssw0rd'} - config.json_output = {'Dirname' => './output', 'Filename' => 'test'} - config.time_out = 10 # in secs - config.logger = {'Dirname' => './logs', 'Filename' => 'test', 'StoreFilesCount' => 2} config.before(:all) do $api_key = ENV['API_KEY'] $app_key = ENV['APP_KEY'] - dog = Dogapi::Client.new($api_key, $app_key) + dog = Dogapi::Client.new($api_key) + dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) + + # dog = Dogapi::Client.new($api_key, $app_key) + # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => dog.datadog_host, :device => "my_device") + # p dog.datadog_host # prints https://api.datadoghq.com # dog.add_tags("my_host", ["tagA", "tagB"]) # dog.emit_event(Dogapi::Event.new('Testing done, FTW'), :host => "my_host") # dog.emit_point('some.metric.name', 50.0, :host => "my_host", :device => "my_device") # dog.emit_points('some.metric.name', [[t1, val1], [t2, val2], [t3, val3]], :host => "my_host", :device => "my_device") - dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => dog.datadog_host, :device => "my_device") end +end + +ClientApi.configure do |config| + config.base_url = 'https://reqres.in' + config.headers = {'Content-Type' => 'application/json', 'Accept' => 'application/json'} + config.basic_auth = {'Username' => 'ahamilton@apigee.com', 'Password' => 'myp@ssw0rd'} + config.json_output = {'Dirname' => './output', 'Filename' => 'test'} + config.time_out = 10 # in secs + config.logger = {'Dirname' => './logs', 'Filename' => 'test', 'StoreFilesCount' => 2} config.before(:each) do |scenario| ClientApi::Request.new(scenario) From 3a23396eebc0a602a9e563d65158346d03ac7f40 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 18:47:20 +0400 Subject: [PATCH 06/12] updated datadog details --- spec/spec_helper.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 6a6edb0..bd4fad4 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,7 +24,8 @@ $app_key = ENV['APP_KEY'] dog = Dogapi::Client.new($api_key) - dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) + dog.emit_point('qa.baseline.website.desktop', 10) + # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) # dog = Dogapi::Client.new($api_key, $app_key) # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => dog.datadog_host, :device => "my_device") From 5b138afb3433832daa75164276e9c22f756e0232 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 18:53:39 +0400 Subject: [PATCH 07/12] updated datadog details --- spec/spec_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index bd4fad4..10afd09 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,11 +24,11 @@ $app_key = ENV['APP_KEY'] dog = Dogapi::Client.new($api_key) - dog.emit_point('qa.baseline.website.desktop', 10) + dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) # dog = Dogapi::Client.new($api_key, $app_key) - # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => dog.datadog_host, :device => "my_device") + # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => v, :device => "my_device") # p dog.datadog_host # prints https://api.datadoghq.com From dcd39303998a564846758c0dde2efc74b3428177 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 19:34:30 +0400 Subject: [PATCH 08/12] updated datadog details --- spec/spec_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 10afd09..56da2e2 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -23,7 +23,7 @@ $api_key = ENV['API_KEY'] $app_key = ENV['APP_KEY'] - dog = Dogapi::Client.new($api_key) + dog = Dogapi::Client.new($api_key, $app_key) dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) From 15e16124fbc460decc357653c3c378db8e49e70f Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 19:49:39 +0400 Subject: [PATCH 09/12] updated datadog details --- spec/spec_helper.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 56da2e2..018bd39 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -24,7 +24,12 @@ $app_key = ENV['APP_KEY'] dog = Dogapi::Client.new($api_key, $app_key) - dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") + + # dog.search_hosts() + IO.write('/tmp/msg.txt', dog.search_hosts()) + + # dog.service_check('app.is_ok', 'app1', 0, :message => 'Response: 200 OK', :tags => ['env:test']) + # dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) # dog = Dogapi::Client.new($api_key, $app_key) From d4dd0518e28465c7dbb9c8ff4fc0e9b8c7ee42e9 Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 19:52:55 +0400 Subject: [PATCH 10/12] updated datadog details --- spec/spec_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 018bd39..4a4fc6a 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -26,7 +26,7 @@ dog = Dogapi::Client.new($api_key, $app_key) # dog.search_hosts() - IO.write('/tmp/msg.txt', dog.search_hosts()) + IO.write('export.txt', dog.search_hosts()) # dog.service_check('app.is_ok', 'app1', 0, :message => 'Response: 200 OK', :tags => ['env:test']) # dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") From ccfdc8bf26c7887d921bfedc504870dc4360efec Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Tue, 25 Feb 2020 19:59:37 +0400 Subject: [PATCH 11/12] updated datadog details --- spec/spec_helper.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4a4fc6a..580d70f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -25,8 +25,12 @@ dog = Dogapi::Client.new($api_key, $app_key) - # dog.search_hosts() - IO.write('export.txt', dog.search_hosts()) + IO.write('values.txt', $api_key+" | "+$app_key) + IO.write('values2.txt', dog.host_totals()) + IO.write('values3.txt', dog.datadog_host) + # dog.search_hosts() + + # IO.write('export.txt', dog.search_hosts()) # dog.service_check('app.is_ok', 'app1', 0, :message => 'Response: 200 OK', :tags => ['env:test']) # dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") From 911ea85b46d2574247af5228f28d554c4b1b14fd Mon Sep 17 00:00:00 2001 From: prashanth-sams Date: Wed, 26 Feb 2020 13:59:53 +0400 Subject: [PATCH 12/12] updated automation dashboard --- spec/client/dd_spec.rb | 32 ++++++++++++++++++++++ spec/spec_helper.rb | 60 +++++++++++++++++++++++------------------- 2 files changed, 65 insertions(+), 27 deletions(-) create mode 100644 spec/client/dd_spec.rb diff --git a/spec/client/dd_spec.rb b/spec/client/dd_spec.rb new file mode 100644 index 0000000..4e4f957 --- /dev/null +++ b/spec/client/dd_spec.rb @@ -0,0 +1,32 @@ +describe 'http(s) validation', :focus do + + it "http scheme validator", :get do + api = ClientApi::Api.new + api.get('http://jservice.io/api/categories', {"Accept"=>"*/*"}) + end + + it "http scheme validator x2", :get do + api = ClientApi::Api.new + api.get('http://jservice.io/api/categories', {"Accept"=>"*/*"}) + expect(api.status).to eq(200) + end + + it "http scheme validator x3", :get do + api = ClientApi::Api.new + api.get('http://jservice.io/api/categories', {"Accept"=>"*/*"}) + expect(api.status).to eq(201) + end + + it "http scheme validator x4", :get do + api = ClientApi::Api.new + api.get('http://jservice.io/api/categories', {"Accept"=>"*/*"}) + expect(api.status).to eq(202) + end + + it "http scheme validator x5", :get do + api = ClientApi::Api.new + api.get('http://jservice.io/api/categories', {"Accept"=>"*/*"}) + expect(api.status).to eq(200) + end + +end \ No newline at end of file diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 580d70f..b03bcbb 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -4,6 +4,7 @@ require "rspec/expectations" require "json" require "dogapi" +require "byebug" RSpec.configure do |config| # Enable flags like --only-failures and --next-failure @@ -19,33 +20,8 @@ config.filter_run_when_matching :focus config.expose_dsl_globally = true - config.before(:all) do - $api_key = ENV['API_KEY'] - $app_key = ENV['APP_KEY'] - - dog = Dogapi::Client.new($api_key, $app_key) - - IO.write('values.txt', $api_key+" | "+$app_key) - IO.write('values2.txt', dog.host_totals()) - IO.write('values3.txt', dog.datadog_host) - # dog.search_hosts() - - # IO.write('export.txt', dog.search_hosts()) - - # dog.service_check('app.is_ok', 'app1', 0, :message => 'Response: 200 OK', :tags => ['env:test']) - # dog.emit_point('qa.baseline.website.desktop', 10, :host => dog.datadog_host, :device => "automation") - # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]]) - - # dog = Dogapi::Client.new($api_key, $app_key) - # dog.emit_points('qa.baseline.website.desktop', [['passed', 5], ['failed', 2], ['pending', 0]], :host => v, :device => "my_device") - - # p dog.datadog_host # prints https://api.datadoghq.com - - # dog.add_tags("my_host", ["tagA", "tagB"]) - # dog.emit_event(Dogapi::Event.new('Testing done, FTW'), :host => "my_host") - # dog.emit_point('some.metric.name', 50.0, :host => "my_host", :device => "my_device") - # dog.emit_points('some.metric.name', [[t1, val1], [t2, val2], [t3, val3]], :host => "my_host", :device => "my_device") - end + $data ||= [] + $passed = $failed = $pending = 0 end ClientApi.configure do |config| @@ -59,4 +35,34 @@ config.before(:each) do |scenario| ClientApi::Request.new(scenario) end + + config.after(:each) do |scenario| + if (scenario.exception) && (!scenario.exception.message.include? 'pending') + status_id = 0 + elsif scenario.skipped? + status_id = 2 + elsif scenario.pending? + status_id = 2 + else + status_id = 1 + end + + $data << {'status_id' => status_id, 'scenario' => scenario.description} + end + + config.after(:all) do + $data.map do |value| + $failed += 1 if value['status_id'] == 0 + $passed += 1 if value['status_id'] == 1 + $pending += 1 if value['status_id'] == 2 + end + + dog = Dogapi::Client.new(ENV['API_KEY'], ENV['APP_KEY']) + dog.batch_metrics do + dog.emit_point('qa.baseline.website.passed',$passed) + dog.emit_point('qa.baseline.website.failed', $failed) + dog.emit_point('qa.baseline.website.pending', $pending) + end + end + end \ No newline at end of file