我有一个发布实时市场数据费率的应用程序。此应用程序从命令行调用,并具有交互模式,用户可以通过简单地键入参数后跟其相应的值来即时更改各种参数。
e.g。你2000年
会动态将更新速率设置为每秒2000次更新。
我需要做的是进行几个小时/天的浸泡测试,我需要能够随机将更新速率更改为不同的值。我通常使用Perl来编写所有脚本,所以我需要一种调用脚本的方法(很简单),但后来可以让脚本随机更改任何给定的参数(比如更新速率)。
任何想法或建议都会非常感激。
非常感谢
答案 0 :(得分:1)
您可以使用open my $fh, "|-", ...
打开程序管道,然后使用
select $fh;
$| = 1;
现在您可以直接连接被测系统的标准输入,如下面的演示所示。
#! /usr/bin/env perl
use strict;
use warnings;
no warnings "exec";
my @system_under_test = ("cat");
open my $fh, "|-", @system_under_test or die "$0: open @system_under_test: $!";
select $fh;
$| = 1; # autoflush
for (map int rand 2000, 1 .. 10) {
print $fh "ur $_\n";
sleep int rand 10;
}
close $fh or warn "$0: close: $!";
对于你的浸泡测试,你当然希望睡眠更多的时间间隔并重复循环次数。
答案 1 :(得分:0)
您可以使用命令“mkfifo”。这会创建一个命名管道。如果你使用fifo作为输入启动你的程序它应该工作。
创建一个fifo:
mkfifo MyFifo
使用fifo作为输入启动您的应用程序:
./yourAppName < MyFifo
现在你所有写的(例如使用echo)到“MyFifo”都会转发到你的AppName的标准输入。