我正在使用Codeception测试我的Web服务器的API端点。我想执行一些压力测试,因此,在一个名为“ StressCest”的Cest文件中,我编写了一些测试,该测试执行对服务器最常用端点的多次调用。
我想(并行)启动此Cest文件的多个实例。
为此,我使用了Robo。我已经设置了一个Robo配置文件(RoboFile.php),其中包含一个“ parallelRun()”(https://codeception.com/docs/12-ParallelExecution)方法。
public function parallelRun()
{
$parallel = $this->taskParallelExec();
for ($i = 1; $i <= 1000; $i++) {
$parallel->process(
$this->taskCodecept()
->suite('api')
->test('StressCest')
);
}
return $parallel->run();
}
那产生了1000个并行的StressCest进程。当我执行控制台命令robo parallel:run
时,出现此错误:
警告:proc_open():无法创建管道在以下位置打开文件过多 /../vendor/symfony/process/Process.php行337 [错误]无法 启动新流程。错误:proc_open():无法创建管道 /../ vendor / symfony / process / Process.php:337
中有许多打开的文件
是否有某种方法可以绕过此错误,或者有另一种方法来对CestFile执行并行压力测试?
预先感谢您的回复
答案 0 :(得分:0)