TT#56376 selenium: print more infos if test crashes

Tests will now print some infos when they crash. If a server crash occured,
it will try to get the infos from the Sorry! page + ip of the server.
If it cannot detect server issues, it prints out timestamp and server ip.

Change-Id: I7be6f405503fd38eb334134294f45dff93a17ad5
changes/76/30976/3
Nico Schedel 6 years ago
parent 085041e4ae
commit 6a633263cb

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_admin() {
my ($port) = @_;
@ -19,6 +20,7 @@ sub ctr_admin() {
my $resellername = ("reseller" . int(rand(100000)) . "test");
my $contractid = ("contract" . int(rand(100000)) . "test");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -142,6 +144,28 @@ sub ctr_admin() {
$c->delete_reseller_contract($contractid);
$c->delete_reseller($resellername);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_billing {
my ($port) = @_;
@ -18,6 +19,7 @@ sub ctr_billing {
my $resellername = ("reseller" . int(rand(100000)) . "test");
my $contractid = ("contract" . int(rand(100000)) . "test");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -218,6 +220,28 @@ sub ctr_billing {
diag("Check if Billing Profile has been removed");
$d->fill_element('#billing_profile_table_filter label input', 'css', $billingname);
ok($d->find_element_by_css('#billing_profile_table tr > td.dataTables_empty', 'css'), 'Billing Profile has been removed');
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_customer {
my ($port) = @_;
@ -28,6 +29,7 @@ sub ctr_customer {
print "---PBX check is ENABLED---\n";
};
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -238,7 +240,28 @@ sub ctr_customer {
$c->delete_reseller($resellername);
$c->delete_contact($contactmail);
$c->delete_billing_profile($billingname);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag like)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_domain {
my ($port) = @_;
@ -16,6 +17,7 @@ sub ctr_domain {
my $domainstring = ("domain" . int(rand(100000)) . ".example.org");
try {
$c->login_ok();
diag('Go to domains page');
@ -165,6 +167,28 @@ sub ctr_domain {
$d->fill_element('//*[@id="Domain_table_filter"]/label/input', 'xpath', $domainstring);
ok($d->find_element_by_xpath('//*[@id="content"]//div[contains(text(), "Domain successfully deleted!")]'), "Label 'Domain successfully deleted!' was shown");
ok($d->find_element_by_css('#Domain_table tr > td.dataTables_empty', 'css'), 'Domain was deleted');
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_emergency {
my ($port) = @_;
@ -19,6 +20,7 @@ sub ctr_emergency {
my $containername = ("emergency" . int(rand(100000)) . "container");
my $domainstring = ("domain" . int(rand(100000)) . ".example.org");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -211,6 +213,28 @@ sub ctr_emergency {
$c->delete_domain($domainstring);
$c->delete_reseller_contract($contractid);
$c->delete_reseller($resellername);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_invoice {
my ($port) = @_;
@ -21,6 +22,7 @@ sub ctr_invoice {
my $billingname = ("billing" . int(rand(100000)) . "test");
my $customerid = ("id" . int(rand(100000)) . "ok");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -175,6 +177,28 @@ sub ctr_invoice {
$c->delete_reseller($resellername);
$c->delete_contact($contactmail);
$c->delete_billing_profile($billingname);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_ncos {
my ($port) = @_;
@ -19,6 +20,7 @@ sub ctr_ncos {
my $ncosname = ("ncos" . int(rand(100000)) . "level");
my $domainstring = ("domain" . int(rand(100000)) . ".example.org");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -205,7 +207,28 @@ sub ctr_ncos {
$c->delete_domain($domainstring);
$c->delete_reseller_contract($contractid);
$c->delete_reseller($resellername);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_peering {
my ($port) = @_;
@ -17,6 +18,7 @@ sub ctr_peering {
my $groupname = ("group" . int(rand(100000)) . "test");
my $servername = ("peering" . int(rand(100000)) . "server");
try {
$c->login_ok();
diag("Go to Peerings page");
@ -305,6 +307,28 @@ sub ctr_peering {
diag('Checking if Testing Group has been deleted');
$d->fill_element('//*[@id="sip_peering_group_table_filter"]/label/input', 'xpath', $groupname);
ok($d->find_element_by_css('#sip_peering_group_table tr > td.dataTables_empty', 'css'), 'Testing Group was deleted');
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_reseller {
my ($port) = @_;
@ -18,6 +19,7 @@ sub ctr_reseller {
my $contractid = ("contract" . int(rand(100000)) . "test");
my $templatename = ("template" . int(rand(100000)) . "mail");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
@ -214,6 +216,28 @@ sub ctr_reseller {
$c->delete_reseller($resellername, 0);
$d->fill_element('//*[@id="Resellers_table_filter"]/label/input', 'xpath', $resellername);
ok($d->find_element_by_css('#Resellers_table tr > td.dataTables_empty'), 'Reseller was deleted');
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_rw_ruleset {
my ($port) = @_;
@ -19,6 +20,7 @@ sub ctr_rw_ruleset {
my $rulesetname = ("rule" . int(rand(100000)) . "test");
my $domainstring = ("domain" . int(rand(100000)) . ".example.org");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -182,6 +184,28 @@ sub ctr_rw_ruleset {
$c->delete_domain($domainstring);
$c->delete_reseller_contract($contractid);
$c->delete_reseller($resellername);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_subscriber {
my ($port) = @_;
@ -28,6 +29,7 @@ sub ctr_subscriber {
my $contractid = ("contract" . int(rand(100000)) . "test");
my $billingname = ("billing" . int(rand(100000)) . "test");
try {
$c->login_ok();
$c->create_domain($domainstring);
$c->create_reseller_contract($contractid);
@ -397,7 +399,28 @@ sub ctr_subscriber {
$c->delete_contact($contactmail);
$c->delete_billing_profile($billingname);
$c->delete_domain($domainstring);
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
}
if(! caller) {

@ -6,6 +6,7 @@ use Test::More import => [qw(done_testing is ok diag todo_skip)];
use Selenium::Remote::Driver::FirefoxExtensions;
use Selenium::Collection::Common;
use Selenium::Collection::Functions;
use TryCatch;
sub ctr_timeset {
my ($port) = @_;
@ -18,6 +19,7 @@ sub ctr_timeset {
my $contractid = ("contract" . int(rand(100000)) . "test");
my $timesetname = ("time" . int(rand(100000)) . "set");
try {
$c->login_ok();
$c->create_reseller_contract($contractid);
$c->create_reseller($resellername, $contractid);
@ -149,6 +151,28 @@ sub ctr_timeset {
diag("Check if Time set was deleted");
$d->fill_element('//*[@id="timeset_table_filter"]/label/input', 'xpath', $timesetname);
ok($d->find_element_by_css('#timeset_table tr > td.dataTables_empty', 'css'), 'Time set was deleted');
} catch {
is("tests", "failed", "This test wasnt successful, check complete test logs for more info");
diag("-----------------------SCRIPT HAS CRASHED-----------------------");
if($d->find_text("Sorry!")) {
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();
diag("Server: $ENV{CATALYST_SERVER}");
diag("Server error: $crashvar");
diag($incident);
diag($time);
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("Perl localtime(): $realtime");
}
diag("----------------------------------------------------------------");
}
};

Loading…
Cancel
Save