Невыходной день
В 2020-м году я добился четырёхдневной рабочей недели с удалёнкой. И всё бы хорошо, но оба эти достижения пошли за счёт снижения зарплаты. Собственно, именно из за её снижения я и договорился об этих опциях. Таким образом, уже долгое время, среда была выходным днём.
С началом 2021-го у меня снова пятидневка. Да ещё и вторая работа, которую делаю в свободное время. Таким образом, выходных стало меньше. Зато осталась удалёнка.
Зачем такие сложности?
Во-первых, оплата. Жить на ту, которую платили на Р2 – стало невыносимо. Если бы она осталась хотя-бы на уровне той, что платили на испытательном сроке. Но нет. А покупать еду в кредит и расплачиваться со случайных подработок… это не нормально. Даже оскорбительно.
Во-вторых, возможность еще больше прокачать профессию, которую целый год осваивал у англичан, и применить кое-что из неё на благо соотечественникам. Да я за месяц на Р1 прокачался так, как за два до этого. А если учесть, что работой непосредственно занимаюсь только вторую неделю, то прогресс вообще впечатляет.
Да я уже собрал и заставил работать тестового монстра, который базируется на node.js. Чтобы вы понимали, про этот фреймворк я раньше только слышал, но ни разу в руках не держал.
Технически, робот, над которым я работаю, уже мог бы активно заниматься парсингом данных и закидывать полученную информацию, например, в базу данных. При том, делать это ежедневно, без перерывов и выходных.
А это, при правильном подходе, на минутку, замена сотрудника. Или даже нескольких. Ну или значительное снижение их трудозатрат.
Хм… А надо поговорить с Ириной. Возможно, если она всё ещё работает в своей сфере, такая помощница ей очень даже пригодится!
Однако, парсинг оставим на попозже. На середину года, например. Потому, что сейчас и без него дел хватает. Например, автоматизировать пачку уже имеющийся ручных тесткейсов. А ведь будут и новые. Когда не нужно всякий раз проходить степы руками, тесткейсов можно сделать в разы больше. Качество продукта от этого только выиграет. А значит, выиграют и пользователи, и заказчик, и контора, и я.
Так что, среда-выходной была принесена в жертву ради… ну пусть не великой, но около того, цели. И каждую среду нужно об этом вспоминать. Чтобы помнить зачем всё это.
Сижу, работаю, и вдруг понимаю, что тестовому монстру не хватает команды принудительного фейла теста. Т.е., проверил условие, и если оно не соответствует, то тест считается проваленным, с соответствующими действиями системы.
Как сделать подобное для Codeception PHP я примерно знаю. Во всяком случае когда-то делал. А вот для CodeceptionJS в открытом доступе нашёл только такую строчку.
require("assert").fail("Test failed");
Вставляешь её, и на этом шаге тест фейлится. Но это не красиво. Я бы предпочёл писать I.fail(‘Test failed’);, но через вставку строчки в steps_file.js она не работает.
Ну и ладно. Создал хелпер Failer, прописал в конфиг и… ура! работает!
Дважды “ура”! Я теперь умею делать хелперы для CodeceptJS. Правда, пока без JSON-файлов и прочей обёртки, но и этого уже не мало.
И снова долбаная магия. При первом обращении к базе – получаю нормальные данные, при втором – те же что и в прошлый раз.
Ну здорово. Уже часа 4 мучаюсь. А ведь казалось, что всё работает как часики. Но нет.
Самое забавное, что тестовый сайт висит уже минут 20.
Два часа! Два часа не могу тупо открыть инструмент разработчика. Тормозит так, что ничего не открывается. При том, только на тестовом сайте.
Проблема оказалась в том, что дурацкий js не выполняет алгоритм построчно. Если, например, во время присвоения переменной её значение задержалось секунд на пять, то алгоритм спокойно идёт дальше, вместо того, чтобы дождаться завершения действия. Это важное отличие от PHP. И из за него чудил скрипт работы с базой данных.
Новые данные просто не успевали приходить, а потому, вместо них подставлялись старые. Добавим сюда тот факт, что тестируемый сервис хорошо так оттормаживается, и получим весёлые фейлы.
В итоге, я вожусь два дня с ОДНИМ тестом! С одним тестом всего на 12 шагов (и сколько-то подшагов), Карл! Да надо мною скоро голуби начнут смеяться!
И никому не важно, чему я там научился и как улучшил тестового монстра, если нету НУЖНОГО результата, в виде автоматизированных тесткейсов.
С другой стороны, тест фейлится, но теперь не потому, что код некорректный, а из за того, что тестовый сайт тормозит. А это значит, что фейлится он по делу. Значит всё верно.
А тем временем, на часах 22:53. Пора заканчивать рабочий день. Я офф.
Напишите комментарий