Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Ошибка "The page history is empty" при запуске codeception теста

php
Теги: #<Tag:0x00007fedbc60d658>

(Дмитрий Сергеевич Шкарбатов) #1

Всем привет, запускаю:

# php codecept.phar run acceptance

Под Yii2, но валится ошибка: LogicException: The page history is empty.

Вот мой: IndexCept.php

<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that transfers admin work');
$I->see('test');

Вот мой acceptance.suite.yml

class_name: AcceptanceTester
modules:
    enabled: PhpBrowser
    config:
        PhpBrowser:
            url: 'http://transfer.ll/admin'

В чем может быть дело, по искал в интернете похожее, но ничего не нашел =(


(Ray Romanov) #2

Между:

$I->wantTo('ensure that transfers admin work');
$I->amOnPage('/');  <- пропустил
$I->see('test');

Для того чтоб работать со страницей на нее нужно перейти!


(Дмитрий Сергеевич Шкарбатов) #3

Да, спасибо, это помогло, но теперь пишет,

<div id="titles"><h1>ERROR</h1>

<h2>The requested URL could not be retrieved</h2></div>
<hr>
<div id="content"><p>При получении URL <a href="http://transfer.ll/admin">http://transfer.ll/admin</a> произошла
следующая ошибка</p>
<blockquote id="error"><p><b>Невозможно определить IP-адрес по имени узла <q>transfer.ll</q></b></p> </blockquote>
<p>Сервер DNS ответил:</p>
<blockquote id="data">
    <pre>Name Error: The domain name does not exist.</pre>
</blockquote>
<p>Это означает, что кэш не смог распознать имя узла в URL. Проверьте адрес на корректность.</p>
</div>

Хотя если сделать из терминала

# ping http://transfer.ll/admin

Все определяется:

PING transfer.ll (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.023 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.026 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.027 ms

(Ray Romanov) #4

В /etc/hosts в строке 127.0.0.1 добавь после localhost transfer.ll


(Дмитрий Сергеевич Шкарбатов) #5

Оно там есть, если бы его не было, то пинг из терминала не проходил бы.


(Ray Romanov) #6

А проверь из браузера с этой машины сюда http://transfer.ll/admin заходишь нормально?
На сколько я знаю в админку заходят после авторизации!


(Дмитрий Сергеевич Шкарбатов) #7

Да, заходится нормально. Там сейчас нет авторизации.


(Дмитрий Сергеевич Шкарбатов) #8

Если вбить адрес не локального сервера, а тестового, который на другой машине, то все проходит нормально.


(Ray Romanov) #9

Вот сам и ответил :wink:


(Дмитрий Сергеевич Шкарбатов) #10

Ответить то ответил. Но проблему это не решает. Локально из браузера он доступен, в терминале пингуется, а codeception не может его найти. Не могу понять из-за какой причины.


(Ray Romanov) #11

Правильно, у тебя codeception то на одной машине, а тестируемый сайт на другой, вот тебе на машине с codeception нужно прописать в хостах ip адрес тестируемого сайта.

У меня codeception (c selenium) запускается на машине с адресом 192.168.10.103, а тестируемый сайт расположен по 192.168.10.10 (на нем крутится 30 виртуальных хостов), и в /etc/hosts где codeception прописано
192.168.10.10 url_тестируемого_сайта


(Дмитрий Сергеевич Шкарбатов) #12

Сейчас тестовый сервис на одной машине (разруливается по вышестоящему DNS), а PhpBrowser на локальном - так работает. Но если пробовать тестовый сервис запустить на локальной машине и на ней же запустить PhpBrowser, прописать в хостах 127.0.0.1 transfer.ll, то оно все равно не находит сервис.
Такое чувство, что оно пропускает мой файлик hosts и идет сразу на вышестоящий DNS.


(Ray Romanov) #13

Значит вариант такой в конфиге пропиши:

 PhpBrowser:
            url: 'http://transfer.ll/'

А в тесте переходи на страницу админа:

$I->amOnPage('/admin');

(Дмитрий Сергеевич Шкарбатов) #14

Пробовал так, но все тоже самое.

The requested URL could not be retrieved

(Ray Romanov) #15

А на обеих машинах ты заходишь по ссылке нормально?


(Дмитрий Сергеевич Шкарбатов) #16

Да.


(Ray Romanov) #17

Тогда странно :coffee:


(Дмитрий Сергеевич Шкарбатов) #18

Проблема именно когда все на одной машине.


(Дмитрий Сергеевич Шкарбатов) #19

Есть какие-то настройки по исключению адресов для прокси, типа dConf для Chrome? Сейчас получается что он сразу идет на вышестоящий dns.