Как стать автором
Обновить
0
0
Уколов Павел @paulpricker

QA Automation Engineer

Отправить сообщение

PIP — Загрузка пакетов python для офлайн установки

Уровень сложностиПростой
Время на прочтение13 мин
Количество просмотров8.8K

Разговор в этой статье пойдет о том, как достать пакеты Python для оффлайн установки на разных платформах и разных версиях Python. Возможно я плохо искал, но на просторах интернета я не смог найти достаточное количество статей на русском языке, которые бы подробно объясняли как производить загрузку пакетов и дальнейшую их доставку на машины с разными платформами и версиями языка. 

Читать далее
Всего голосов 16: ↑15 и ↓1+20
Комментарии9

Playwright: веб-тестирование без драмы

Время на прочтение18 мин
Количество просмотров37K

Андрей Лушников выступил у нас на Heisenbug с докладом о Playwright ещё в 2020-м. Но похоже, что с тех пор тема доклада стала только актуальнее: 34 000 звёзд проекта на GitHub ясно показывают, что он пришёл к популярности. А Андрей по-прежнему остаётся одним из главных контрибьюторов Playwright. Поэтому мы решили сделать для Хабра текстовую версию его доклада.

Конечно, за два года проект успел уйти вперёд (обзавёлся своим тестраннером и локаторами), но база осталась прежней, так что информация по-прежнему может быть полезной. Если вы ощущаете, что и вам пора приобщиться к этому инструменту — вот материал от того, кто точно глубоко разбирается в теме.

Видео и расшифровка — под катом. Далее повествование будет вестись от лица спикера.

Читать далее
Всего голосов 11: ↑10 и ↓1+11
Комментарии4

Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium

Время на прочтение18 мин
Количество просмотров89K

Этот текст предназначен для начинающих тестировщиков, желающих понять как делать отчеты на allure с историей тестов, также разъяснить где их хранить, чтобы в отчет мог заглянуть любой участник вашей команды.


Пример отчета, получающийся в allure


Рабочий репозиторий с финальной версией рабочего кода и инфраструктуры


Ссылка на отчеты после прогона тестов


Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.

Читать дальше
Всего голосов 12: ↑12 и ↓0+12
Комментарии14

Под капотом Graveyard Keeper: Как реализованы графические эффекты

Время на прочтение5 мин
Количество просмотров55K
Всем привет! Целых 4 года я не писал на Хабр. Последняя моя серия постов была о различных инструментах и приемах, которые мы применяли на нашей прошлой игре (разрабатывая ее на Unity). С тех пор игру ту мы благополучно выпустили, а также выпустили и новую. Так что теперь можно немного выдохнуть и написать несколько новых статей, которые могут быть кому-то полезны.


Сегодня я хочу рассказать о графических приемах и ухищрениях, которые мы применяли для создания той картинки, которую вы видите на гифке выше.

Мы очень трепетно относимся к визуалу наших игр и по этому вложили довольно много времени и сил в различные эффекты и прочие плюшки, которые позволили бы сделать наш пиксель-арт максимально привлекательным. Возможно, кто-то найдет что-то полезное для себя.

Для начала, кратко перечислю из чего собирается картинка в нашей игре:
Читать дальше →
Всего голосов 179: ↑178 и ↓1+177
Комментарии98

Python Testing с pytest. Начало работы с pytest, Глава 1

Время на прочтение24 мин
Количество просмотров201K

Вернуться Дальше


Я обнаружил, что Python Testing с pytest является чрезвычайно полезным вводным руководством к среде тестирования pytest. Это уже приносит мне дивиденды в моей компании.

Chris Shaver
VP of Product, Uprising Technology


Читать дальше →
Всего голосов 31: ↑22 и ↓9+13
Комментарии2

Разбор предложений по шаблонам русского языка

Время на прочтение9 мин
Количество просмотров13K
Существует несколько парсеров, подходящих для русского языка. Некоторые из них могут даже выполнять синтаксический анализ, как SyntaxNet, MaltParser и AOT:
Мама мыла раму пластиковых окон

… или выявлять факты, как Tomita.

Глядя на эти парсеры, я вижу какую-то огромную сложность вычислений, требования к памяти, лицензионные ограничения и… ограниченность каждого решения, увы.

Чтобы понять, что же там такого сложного, мне захотелось сделать собственный парсер. Благо выходные оказались длинными.
Читать дальше →
Всего голосов 16: ↑14 и ↓2+12
Комментарии24

Шпаргалка: fixture в pytest

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров19K

В данной статье представлены примеры использования фикстур (fixture) для фреймворка автоматического тестирования pytest. Фикстуры представляют собой функции, которые можно использовать для решения различных задач при проведении автоматизированного тестирования.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Как правильно писать UI авто тесты на Python

Время на прочтение10 мин
Количество просмотров30K

Как правильно писать UI авто тесты на python используя Page Object + Page Factory.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии7

«Угадай, школько у меня зубов… А в какой руке?» — детская неотложка

Время на прочтение7 мин
Количество просмотров5.3K
Угол стола, край ванны, руль самоката, качели, бордюр — спонсоры стоматологов по всему миру. Обычно выбитый зуб у ребёнка — ничего страшного. Ну выбил и выбил. Некоторые можно воткнуть обратно в стоматологии (как и у взрослых за 2 часа после драки), некоторые нужно правильно обработать.

Главное определить, не будет ли травма угрожать будущему постоянному зубу. Это просто, сейчас научу.


Вот он — хитрый и коварный враг детских зубов

Сейчас расскажу несколько страшилок и покажу пару картинок, которые полезно запомнить.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+32
Комментарии10

Как вырвать нерв из головы и остаться без лица: почему так дорого рвать «коренной» зуб

Время на прочтение8 мин
Количество просмотров41K
80 тысяч за удаление зуба — а не охренели ли мы в край? Примерно такой комментарий был в одном из прошлых постов. Показываю, почему некоторые зубы такие дорогие.

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


Видите зуб-восьмёрку и тоненькую чёрточку под ним? Это так называемый коренной зуб и нерв. Точнее, это их рентген-тени.

Обычно зуб растёт выше и не касается нерва. Здесь они друг с другом довольно плотно интегрированы. Корень опустился в нижнечелюстной канал, где проходят артерии, вены, а ещё нижний альвеолярный нерв.

Если прийти с больным зубом в любую клинику, где сначала рвут, а потом фотографируют, то пациентка останется без лица с пугающе высокой вероятностью — 80%. Если сначала сфотографировать это место в нуарных рентген-лучах, то можно понять, что просто потянуть за зуб не получится.

И вот в этот момент на сцене появляюсь я со своими лезвиями и начинаю мило улыбаться. Потому что есть целых три инженерных подхода.
Читать дальше →
Всего голосов 80: ↑72 и ↓8+87
Комментарии138

8 бесплатных инструментов искусственного интеллекта, которые пригодятся

Время на прочтение4 мин
Количество просмотров177K

Всем привет! Меня зовут Маруся, я аналитик данных, веду блог в телеграме Аналитика и growth mind-set.

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

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

Читать далее
Всего голосов 22: ↑17 и ↓5+16
Комментарии19

Насколько круто иметь свой сервер в комнате

Время на прочтение6 мин
Количество просмотров113K

Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.

Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Читать дальше →
Всего голосов 117: ↑116 и ↓1+146
Комментарии313

Взлёт и падение «Живого Журнала». Часть 1: как ЖЖ родился и стал русскоязычным

Время на прочтение9 мин
Количество просмотров27K

Мёртвый ЖЖ стал мемом ещё десять лет тому назад. Платформа технически продолжает жить и здравствовать, там по сей день есть читаемые и популярные блоги, но эпоха «Живого Журнала» как главной дискуссионной площадки рунета безвозвратно ушла в прошлое. А ведь было, было время!

Именно там кипели бурные страсти и жуткие ср*чи, рождались мемы и дискурсы, вспыхивали звёзды знаменитых блогеров и афедроны комментаторов. Кащениты тгавили пейсателя, падонки учили олбанскей, аффтарами писались тонны лытдыбров, а с многострадальным головным убором Антона Носика чего только ни происходило.

ЖЖызнь кипела во всех формах и расцветках — и казалось, не будет этому конца и края. Конец таки пришёл куда быстрее, чем можно было предположить, но ЖЖ остался в сердцах ветеранов рунета и в истории его развития.

Смахнув скупую слезу ностальгии, попробуем вспомнить некоторые из славных и не очень страниц истории русскоязычного LiveJournal.
Читать дальше →
Всего голосов 125: ↑122 и ↓3+162
Комментарии98

Подключение Allure-репортера к произвольному тест-фреймворку на python

Время на прочтение2 мин
Количество просмотров8.8K

Автоматизация нуждается в человекочитаемых отчетах о тестировании — что тестировалось, какими тестовыми шагами, с каким результатом. Для этого существует система генерации отчетов Allure.


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


Как подключить Allure в любой произвольный фреймворк или не фреймворк вовсе?

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии2

Lock-файлы npm

Время на прочтение13 мин
Количество просмотров38K

Lock-файлы npm


Всем привет! В прошлом посте мы рассмотрели экосистему npm в качестве источника хаоса в нашем проекте, и научились с умом подходить к выбору зависимостей, чтобы минимизировать наши риски. Сегодня мы пойдем дальше и рассмотрим lock-файлы npm, которые помогают повысить стабильность проекта в процессе работы над ним.

Читать дальше →
Всего голосов 22: ↑20 и ↓2+25
Комментарии2

Обзор npm 7

Время на прочтение5 мин
Количество просмотров13K

13 октября состоялся релиз npm@7.0.0. Релиз носит экспериментальный характер и доступен для скачивания из публичного npm-реестра с тегом next-7. Также npm 7 поставляется вместе с node.js 15.

Как вы помните, нечетные версии node.js тоже скорее являются нестабильными предрелизами. Только четные версии получают статус LTS и рекомендуются для использования в продакшене. Но сейчас мы поговорим исключительно об npm, а если быть более точным, то разговор пойдет о нескольких очень ожидаемых фичах, вошедших в свежий релиз.

Читать далее
Всего голосов 26: ↑26 и ↓0+26
Комментарии0

Как получить 5 Тб дисков нахаляву

Время на прочтение1 мин
Количество просмотров107K

Короткая заметка, написать которую меня натолкнуло появление этой статьи: "Неожиданная находка, которая освобождает 20 GB". Ха! Всего 20GB ? Есть универсальный способ освободить больше. На который я натолкнулся ~1,5 года назад.

Linux утилита mkfs.ext4 (ext2/ext3/ext4) имеет параметр -m, о котором мало кто знает. Я не знал. И никто из моих знакомых-линуксоидов не знал.

Этот параметр резервирует место, в процентах, доступное только суперпользователю. Чтобы, когда обычные юзеры выжрут весь диск, демоны продолжали оголтело писать свои логи, не падая. Значение по-умолчанию: 5. ПЯТЬ ПРОЦЕНТОВ! Что на диске в 10Тб даёт сумасшедшую цифру в 500 гигабайт. На логи, да! Наверное в начале-середине 90х такая процентовка имела смысл, но явно не сейчас. Особенно для дисков с данными, где никаких логов нет и не предвидится.

Мало того что производители дисков жонглируют гига- гиги- байтами, неизменно продавая обьём меньше интуитивно ожидаемого. Так ещё и "налог" сверху, в 5%, от утилиты форматирования!

Переформатировав свои 100тб дисков, я получил дополнительные 5Тб дискового пространства, просто так, на ровном месте.

Всем хороших выходных!

Читать далее
Всего голосов 122: ↑85 и ↓37+69
Комментарии243

Реализация паттерна Page Object на Python + pytest

Время на прочтение5 мин
Количество просмотров67K

Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написать этот разбор. Идея — показать реализацию на Python + pytest и объяснить ее доступным языком.


Что такое Page Object


Это популярный паттерн, который является де-факто стандартом в автоматизации тестирования веб-продуктов. Основная идея состоит в том, чтобы разделить логику тестов от реализации.


Каждую веб-страницу проекта можно описать в виде объекта класса. Взаимодействие пользователя описываются в методах класса, а в тестах остается только бизнес-логика. Данный подход помогает избежать проблем с тестами при изменении верстки веб-приложения. Вам необходимо поправить только класс, описывающий страницу.

Читать дальше →
Всего голосов 7: ↑6 и ↓1+5
Комментарии10

Революция или эволюция Page Object Model?

Время на прочтение12 мин
Количество просмотров24K
Всем привет! Меня зовут Артём Соковец. Хочу поделиться переводом своей статьи об Atlas: реинкарнации фреймворка HTML Elements, где представлен совершенно иной подход работы с Page Object.

Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы знаете? Page Element, ScreenPlay, Loadable Component, Chain of invocations…

А что будет, если взять Page Object с реализацией на интерфейсе, прикрутить Proxy Pattern и добавить немного функциональности Java 8?

Если интересно, предлагаю перейти под кат.


Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии14

Руководство по магическим методам в Питоне

Время на прочтение28 мин
Количество просмотров577K
Это перевод 1.17 версии руководства от Rafe Kettler.


Содержание


  1. Вступление
  2. Конструирование и инициализация
  3. Переопределение операторов на произвольных классах
  4. Представление своих классов
  5. Контроль доступа к атрибутам
  6. Создание произвольных последовательностей
  7. Отражение
  8. Вызываемые объекты
  9. Менеджеры контекста
  10. Абстрактные базовые классы
  11. Построение дескрипторов
  12. Копирование
  13. Использование модуля pickle на своих объектах
  14. Заключение
  15. Приложение 1: Как вызывать магические методы
  16. Приложение 2: Изменения в Питоне 3


Вступление


Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
Читать дальше
Всего голосов 143: ↑139 и ↓4+135
Комментарии59

Информация

В рейтинге
Не участвует
Откуда
Воронеж, Воронежская обл., Россия
Дата рождения
Зарегистрирован
Активность