@ADamCarraway

Сервер выдает timeout после 350 запросов в phpunit тестах, в чем может быть проблема?

В проекте присутствует 1000+ тестов. Когда запускаю все тесты то после 350 теста остальные тесты начинают выдавать timeout. Не зависимо от порядка. Если тест запускать отдельно то все норм.
Создал простой тест с dataProvider (в нем 500 элементов):
/** @test
     *@dataProvider getItems
     */
    public function it_update_role($i)
    {
        $this->signInAdmin()
            ->putJson(route('admin.roles.update', 1), [])
            ->assertOk();

        $this->assertTrue(true);
    }

Данный тест начинает выдавать timeout после 345 итерации.
А если запустить такой тест, то все норм:
/** @test*/
    public function it_update_role()
    {
     for ($i = 0; $i < 500; $i++){
        $this->signInAdmin()
            ->putJson(route('admin.roles.update', 1), [])
            ->assertOk();
       }
        $this->assertTrue(true);
    }

В чем может быть проблема ? Может быть что-то в nginx не так настроил или недонастроил?
Вот конфиг nginx
#user  nobody;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  768;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  63;
    server_names_hash_bucket_size  64;
    #gzip  on;

    include /Users/user/Work/servers;
}
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Для начала посмотрите в логах, кто выдаёт таймаут - нгинкс или то, что за ним. Вангую, что будет второй вариант - и следовательно, полезно будет убрать соответствующий тэг из вопроса, поменяв его на то, что там у вас унутре.
Ответ написан
Комментировать
@VA_ic2b
По умолчанию timeout в nginx 60 сек.
Оцените время, необходимое для тестирования.
Увеличьте timeout до необходимого значения в /etc/nginx/nginx.conf
в секции http:
http{
...
proxy_read_timeout 600;
proxy_connect_timeout 600;
proxy_send_timeout 600;
...
}
В приведеном примере 600 сек.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы