05.07.2022: Отходняк – III

Шучу, я почти восстановился. Если бы понедельник не оказался тяжелее чем обычно, то во вторник был бы как огурец. Ну а так, продолжаю приходить в себя после путешествия.

Вчера у клиента с Р2 взломали сайт. Ну и завертелось-закрутилось: переговоры, созвоны, копание в коде. В целом – починил, но для устранения причины проблемы придётся очень сильно заморочиться. Вот только времени на это никто не даст и не оплатит.

Или нет?

Было много работы. А ещё, поход за арбузом, посещение пункта выдачи, собеседование кандидата в тестеры, составление видоса из нарезки фоток Рускеалы, просмотр аниме-сериала (который скатывается в скукотную тягомотину) и много разной мелочёвки, о которой не вспомнишь сразу.

Ну прошёл день и ладно. Сегодня начался новый.

Я снова за монитором. Я опять автоматизирую тест-кейс. Идеи скидываю в блокнот. Всё как обычно.

Разве что, достал новый удлинитель (с пятью розетками), который забрал вчера и подвесил его к правой стенке стола. Удивительно, но ничего не пришлось переделывать. При этом, получился шикарный пульт.

Теперь оба источника света, охладитель компика и аудиоколонка включаются из одного места. Это очень удобно. Давно хотел сделать подобное, и вот наконец свершилось.

Осталась незанятая розетка, но под неё уже имеется идея. Сюда можно запитать зарядку для Арахны, если наконец начну её разработку.

Пока вешал, вырубил подкроватный сервер. Заметил только после получения письма от Яндекса.

Есть от Яндекс.Метрики польза.

Ну и раз один единственный удлинитель, при правильном приложении, вызвал такую гамму положительных эмоций, нужно “ковать железо” дальше.

Что ещё может сделать жизнь лучше и приятнее?

  1. Стеллаж в кладовке. Чтобы не нужно было всякий раз разгружать башню из контейнеров, ради какой-нибудь детальки.
  2. Полка над столом. Чтобы убрать туда всё то, что валяется на столе и возле него.
  3. Розетки. Давно пора расставить их по местам, чтобы избавиться от проводов, лежащих вдоль стен.

Для первых двух пунктов нужна фурнитура, мебельный щит, лак и куча времени/сил.

Для третьего: 

  • развести проводку
  • закончить в кладовке потолок
  • зашить стену

Это капец как много времени. Но в том и дело, что подобные вещи обычно планируются на лето. Лето уже подходит к середине.

Так! Всё! Заказываю материалы! Сейчас! Потом будет поздно!

Новый стеллаж для книг позволит поставить кладовку в старый. Значит будет куда вынести и укрыть от пыли всё то, что стоит в комнате. Тогда появится возможность заняться проводкой. Ну а когда будет проводка – можно с чистой совестью зашивать стену, шпатлевать/штукатурить, ставить розетки, вешать полки.

Т.е. стеллаж – ключевой момент. Но чтобы его разгрузить и переставить, нужны стройматериалы, которые я заказал. Остаётся ждать доставку.

Отца выписали из больницы. Состояние по прежнему отвратительное, но хотя-бы сознание вернулось.

Не знаю как это починить. Точнее знаю, но не имею подходящего инструмента. Да и риск, что организм не выдержит даже анестезию, слишком большой. Кроме того, даже частично восстановив проходимость крупнокалиберных сосудов, можно остаться с теми-же симптомами, если мелкие сосуды завалены тоже.

В общем, это тот случай, когда чувствую бессилие. Ну почему нету способа омолодить человека лет так на 50? Нет ответа.

У кошелька прорвало дно. Жабка плачет. Цифра на счёте ведёт себя как таймер обратного отсчёта.

А значит что? А значит – работать!!! Работать и не отвлекаться.

Закончилось очередное собеседование. Вопросы к кандидату были детские, но он не выдюжил. Не потому, что тупой или неуч. Нет! Просто многие думают, что автотестер это какой-то недоразраб. Выучи самый простой язык программирования (Python) и вперёд в IT.

Так вот… Это нифига не так.

Нет, в чём-то оно да. Автотестеру не требуется совсем уж глубоких знаний, на уровне синьёра. Однако, имеются моменты, про которые разрабы ни сном ни духом. Например – селекторы.

Ну, про CSS-селекторы знают все: от верстальщиков до гуру бэкенда. И вроде-бы этого достаточно… могло бы быть. Ведь всё в разработке ориентируется именно на них. Однако, что хорошо для разрабов, недостаточно для тестировщиков.

Например, тебе нужно, чтобы автотест кликнул по ссылке-картинке, название файла которой содержит слово close. Ну типа img-close.png.

У данной ссылки нет никаких классов или id. В одоном контейнере с ней лежит ещё 100500 ссылок. И что в этом случае делает типичный разраб?

Варианта два:

  1. Он снабжает ссылку классом, id, тэгом, обёрткой или каким-нибудь параметром. Это если есть доступ к коду.
  2. Если доступа нет, то он кликает по ссылке номер такой-то.
  3. Он выпарсивает все имеющиеся ссылки, а затем анализирует их в цикле.

Пункт 1 тестировщику недоступен. Пункт 2 – неприемлем, поскольку сегодня искомая ссылка является пятой по счёту, а завтра её передвинут и она будет девятой. Пункт 3 – это долго, громоздко и неинтересно.

И вот тут на помощь приходит простой и удобный XPath. Это особый синтаксис описания селекторов. Он будто специально создан для автотестеров.

Вот так будет выглядеть селектор картинки ссылки, о которой говорил выше.

//img[contains(@src,'img-close.png')]/ancestor::a[1]

Видишь? Селектор ищет картинку, чей параметр src содержит подстроку img-close.png, а найдя, ищет первого родителя с тэгом a. Т.е. ссылку.

Всего одна строчка!

Надо тебе найти кнопку (button), в которой, помимо картинок и прочих тэгов имеется слово “Войти”?

//button[contains(.,'Войти')]

На, лови. И селектору не важно, в какой тэг внутри кнопки обёрнута подстрока “Войти”. Ему не важно, какой там класс и прочее.

Точно так-же можно находить элементы, в которых чего-то нет. Например, тебе требуется кликнуть по ссылке, которая  не содержит класс “inactive”.

//a[not(contains(@class,'inactive'))]

Вот таким будет селектор.

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

//button(not(@disabled))

Да пожалуйста.

Это очень удобный инструмент, про который почему-то не знают кандидаты в автотестеры, которые приходят на собеседования. Не знаю почему. На ютубе полно бесплатных курсов на данную тему.

С другой стороны, когда меня впервые позвали работать тестировщикам к англичанам, я тоже не имел понятия про xpath. Более того, я не знал о нём даже тогда, когда меня достало тестировать вручную, и я, впервые за всю историю немаленькой конторы, начал внедрять там автотестирование. Мне хватало css-селекторов.
Но зато, придя работать в отечественную фирму распробовав xpath, никаких других селекторов уже и не использую. Я даже научился юзать xpath в js. Оказывается, так тоже можно.

В итоге, вполне годные кандидаты мямлят, краснеют и потеют, неспособные сослаться на элементарные веб-элементы. Просто потому, что пренебрегли xpath.

Рабочий день закончился и началось “свободное время”. И у меня, как в какой-нибудь викторине, перед глазами четыре варианта ответов на вопрос “Чем заняться дальше”. И среди этих вариантов нету слова “Отдыхать”.

Сам виноват. Не нужно было брать подработки. С другой стороны, с таким техническим долгом как у меня, никаких ипотек не надо. Это только кажется, что можно экономить и жить скромно на маленькой зарплате.

За несколько лет полной занятости на Р2 я пришёл к разрухе. Ремонт – встал. То, что успел отремонтировать – начало разваливаться. Здоровье тоже принялось проседать. Ну и настроение время от времени стало критически снижаться.

Сейчас ситуация лучше. Я медленно выбираюсь из ямы. Но здесь приходится жертвовать временем и отдыхом. Главное, вовремя остановиться.

Несколько свободных часов закончились.

Кое-что сделать всё-таки удалось, но удручающе мало. Да и то только потому, что применил принцип микрошагов и таймер.

Ну хоть так.

Наступает ночь. I’m OFF снова.

Напишите комментарий

Введите имя

Введите адрес электронной почты

Введите адрес вашего сайта

Нажмите эту кнопку, чтобы отправить комментарий.

Введите текст комментария