Итак, я пытаюсь загрузить проверить REST API, который возвращает значение JSON.
Для этого я создаю несколько экземпляров сценария perl.
Сценарий Perl обычно вызывает этот URL и пытается decode_json
.Очевидно, что при значительной загрузке происходит сбой.
Теперь проблема, с которой я сталкиваюсь, - это ошибка, отображаемая в командной строке, но не записывающая это сообщение об ошибке в файл.
Сообщение об ошибкеis
malformed JSON string, neither array, object, number, string or atom, at character offset 0 (before "Can't connect to 209...") at json_load_test.pl line 39.
Во всех трех попытках ниже строка 39 относится к:
decode_json($actual_response);
Я просто запускаю сценарий в командной строке как:
perl json_load_test.pl >> logs/output.txt
Я ожидаю, что сообщение об ошибке будет записано в "output.txt"
Мои три неудачных попытки заключаются в следующем.
Попытка 1:
my $ua = LWP::UserAgent->new;
$ua->timeout(3);
$ua->env_proxy;
my $response = $ua->get("http://$j_env/jobs/all.json?status=active");
my $actual_response=$response->decoded_content;
decode_json($actual_response);
if ($? == -1)
{print "\n Failed to execute: $!\n"; }
Попытка 2:
my $ua = LWP::UserAgent->new;
$ua->timeout(3);
$ua->env_proxy;
my $response = $ua->get("http://$j_env/jobs/all.json?status=active");
my $actual_response=$response->decoded_content;
my $perl_scalar= decode_json($actual_response);
if ($perl_scalar)
{ok(1,"For process $u2 inside counter $counter ");}
else
{ok(0,"FAILED!!! process $u2 inside counter $counter");}
Попытка 3:
my $ua = LWP::UserAgent->new;
$ua->timeout(3);
$ua->env_proxy;
my $response = $ua->get("http://$j_env/jobs/all.json?status=active");
my $actual_response=$response->decoded_content;
decode_json($actual_response) or die "FAILED!!!!";