From 24c19b906a1c462b40e91da97a2786fde71f51bc Mon Sep 17 00:00:00 2001 From: Nico Schedel Date: Thu, 27 Jun 2019 10:27:51 +0200 Subject: [PATCH] TT#56376 selenium: add more features to the crash detection - it will now detect more errors (errors with Oops! in the headline and nginx erros) - it prints more information now. (tab title and url) - it looks nicer when some infos are not present (i.e when there is not incident number or incident time availible) - code looks nicer too Change-Id: Id43c061e37fd2f6f18a82833892799e04a243dfe --- t/selenium/controller_admin.t | 32 ++++++++++++++++++++++-------- t/selenium/controller_billing.t | 32 ++++++++++++++++++++++-------- t/selenium/controller_customer.t | 30 +++++++++++++++++++++------- t/selenium/controller_domain.t | 30 +++++++++++++++++++++------- t/selenium/controller_emergency.t | 30 +++++++++++++++++++++------- t/selenium/controller_invoice.t | 30 +++++++++++++++++++++------- t/selenium/controller_ncos.t | 30 +++++++++++++++++++++------- t/selenium/controller_peering.t | 30 +++++++++++++++++++++------- t/selenium/controller_reseller.t | 30 +++++++++++++++++++++------- t/selenium/controller_rw_ruleset.t | 30 +++++++++++++++++++++------- t/selenium/controller_subscriber.t | 30 +++++++++++++++++++++------- t/selenium/controller_timeset.t | 32 ++++++++++++++++++++++-------- 12 files changed, 279 insertions(+), 87 deletions(-) diff --git a/t/selenium/controller_admin.t b/t/selenium/controller_admin.t index 40453cdd15..faf8e8139b 100644 --- a/t/selenium/controller_admin.t +++ b/t/selenium/controller_admin.t @@ -147,27 +147,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; -} +} \ No newline at end of file diff --git a/t/selenium/controller_billing.t b/t/selenium/controller_billing.t index bfb0b0f6d1..2815c341c4 100644 --- a/t/selenium/controller_billing.t +++ b/t/selenium/controller_billing.t @@ -226,27 +226,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; -} +} \ No newline at end of file diff --git a/t/selenium/controller_customer.t b/t/selenium/controller_customer.t index 1836c41848..04b072e461 100644 --- a/t/selenium/controller_customer.t +++ b/t/selenium/controller_customer.t @@ -243,27 +243,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_domain.t b/t/selenium/controller_domain.t index 9e8ba839d4..4bbe29b039 100644 --- a/t/selenium/controller_domain.t +++ b/t/selenium/controller_domain.t @@ -170,27 +170,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_emergency.t b/t/selenium/controller_emergency.t index 11cf7a9139..c407b894b4 100644 --- a/t/selenium/controller_emergency.t +++ b/t/selenium/controller_emergency.t @@ -224,27 +224,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_invoice.t b/t/selenium/controller_invoice.t index 66d1d1e2f0..8d30a0ac5c 100644 --- a/t/selenium/controller_invoice.t +++ b/t/selenium/controller_invoice.t @@ -180,27 +180,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_ncos.t b/t/selenium/controller_ncos.t index 6924da49d4..7fa3d70e7b 100644 --- a/t/selenium/controller_ncos.t +++ b/t/selenium/controller_ncos.t @@ -210,27 +210,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_peering.t b/t/selenium/controller_peering.t index 17b089661d..60890e8852 100644 --- a/t/selenium/controller_peering.t +++ b/t/selenium/controller_peering.t @@ -310,27 +310,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_reseller.t b/t/selenium/controller_reseller.t index ab9657eaff..e64661f5d5 100644 --- a/t/selenium/controller_reseller.t +++ b/t/selenium/controller_reseller.t @@ -219,27 +219,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_rw_ruleset.t b/t/selenium/controller_rw_ruleset.t index b86a1bcdfd..21266f0681 100644 --- a/t/selenium/controller_rw_ruleset.t +++ b/t/selenium/controller_rw_ruleset.t @@ -187,27 +187,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_subscriber.t b/t/selenium/controller_subscriber.t index 84c5c926ac..4f33d85acb 100644 --- a/t/selenium/controller_subscriber.t +++ b/t/selenium/controller_subscriber.t @@ -402,27 +402,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; } \ No newline at end of file diff --git a/t/selenium/controller_timeset.t b/t/selenium/controller_timeset.t index 69a3cc973e..9352094a5e 100644 --- a/t/selenium/controller_timeset.t +++ b/t/selenium/controller_timeset.t @@ -157,27 +157,43 @@ diag("This test run was successfull"); $run_ok = 1; END { - if (!$run_ok) { + if(!$run_ok) { is("tests", "failed", "This test wasnt successful, check complete test logs for more info"); diag("-----------------------SCRIPT HAS CRASHED-----------------------"); - if($d->find_text("Sorry!")) { + my $url = $d->get_current_url(); + my $title = $d->get_title(); + my $realtime = localtime(); + if($d->find_text("Sorry!") || $d->find_text("Oops!")) { my $crashvar = $d->find_element_by_css('.error-container > h2:nth-child(2)')->get_text(); - my $incident = $d->find_element_by_css('.error-details > div:nth-child(2)')->get_text(); - my $time = $d->find_element_by_css('.error-details > div:nth-child(3)')->get_text(); - my $realtime = localtime(); + my $incident = "incident number: not avalible"; + my $time = "time of incident: not avalible"; + eval { + $incident = $d->find_element('.error-details > div:nth-child(2)', 'css')->get_text(); + $time = $d->find_element('.error-details > div:nth-child(3)', 'css')->get_text(); + }; diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Server error: $crashvar"); diag($incident); diag($time); diag("Perl localtime(): $realtime"); + } elsif($d->find_text("nginx")) { + my $crashvar = $d->find_element_by_css('body > center:nth-child(1) > h1:nth-child(1)')->get_text(); + diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); + diag("nginx error: $crashvar"); + diag("Perl localtime(): $realtime"); } else { diag("Could not detect Server issues. Maybe script problems?"); diag("If you still want to check server logs, here's some info"); - my $realtime = localtime(); diag("Server: $ENV{CATALYST_SERVER}"); + diag("Url: $url"); + diag("Tab Title: $title"); diag("Perl localtime(): $realtime"); } diag("----------------------------------------------------------------"); - } + }; done_testing; -} +} \ No newline at end of file