Для тестирования нашего бэкэнда PHP мы используем PHPUnit (v7.3.5) и расширение GuzzleHttp (v6.3.3) для тестов интерфейса.
I 'Я новичок во всем этом и играл немного Arround.Я хотел бы отправлять параллельные запросы, но я также должен использовать функцию cookie.
Параллелизм работает отлично, и я успешно использую файлы cookie.Но если я объединю оба, параллелизм потерян.
Мой код до сих пор:
// create session
$jar = new \GuzzleHttp\Cookie\CookieJar;
// create client
$client = new Client([
'base_uri' => 'http://localhost',
'cookies' => $jar,
]);
// login
$client->get("index.php", [
'form_params' => [
'usr' => 'myUserName',
'pwd' => '#myPass*'
],
]);
// fill up request array
$requests = new array(
new Request('GET', 'myPage1'),
new Request('GET', 'myPage2'),
new Request('GET', 'myPage3'),
new Request('GET', 'myPage4'),
new Request('GET', 'myPage5'),
new Request('GET', 'myPage6'),
...
new Request('GET', 'myPage100'),
);
// create pool
$pool = new Pool($client, $requests, [
'concurrency' => 5,
'fulfilled' => function ($response, $index) {...},
'rejected' => function ($reason, $index) {...}
]);
// wait until all request are sent
$promise = $pool->promise();
$promise->wait();
Если я закомментирую // 'cookies' => $jar,
, параллелизм работает отлично.
Разве невозможно достичьили я что-то пропустил?
ЗАКРЫТО
Оказалось, что проблема не в самом тесте.
Я бегув session_start () блокировку на сервере.
И, конечно, без сеанса, нет блокировки ..., которая объясняет все