我正在尝试对返回JSON值的REST API进行负载测试。为此,我正在创建多个Perl脚本实例。
这个Perl脚本基本上调用该URL,并尝试使用
现在我面临的问题是-命令提示符显示错误,但不将该错误消息写入文件。
错误消息如下:
这个Perl脚本基本上调用该URL,并尝试使用
decode_json
。显然,在产生大量负载时,它会失败。现在我面临的问题是-命令提示符显示错误,但不将该错误消息写入文件。
错误消息如下:
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"; }
Attempt 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!!!!";
perl json_load_test.pl > logs/output.txt 2>&1 logs/errors.txt
。 - user3458eval
方法并打印$e
的其他内容。 - Tamzin Blakeeval { decode_json($actual_response); 1; } or do { my $e = $@; print "$e\n"; };
- Eric Klien