Разговор в этой статье пойдет о том, как достать пакеты Python для оффлайн установки на разных платформах и разных версиях Python. Возможно я плохо искал, но на просторах интернета я не смог найти достаточное количество статей на русском языке, которые бы подробно объясняли как производить загрузку пакетов и дальнейшую их доставку на машины с разными платформами и версиями языка.
QA Automation Engineer
Playwright: веб-тестирование без драмы
Андрей Лушников выступил у нас на Heisenbug с докладом о Playwright ещё в 2020-м. Но похоже, что с тех пор тема доклада стала только актуальнее: 34 000 звёзд проекта на GitHub ясно показывают, что он пришёл к популярности. А Андрей по-прежнему остаётся одним из главных контрибьюторов Playwright. Поэтому мы решили сделать для Хабра текстовую версию его доклада.
Конечно, за два года проект успел уйти вперёд (обзавёлся своим тестраннером и локаторами), но база осталась прежней, так что информация по-прежнему может быть полезной. Если вы ощущаете, что и вам пора приобщиться к этому инструменту — вот материал от того, кто точно глубоко разбирается в теме.
Видео и расшифровка — под катом. Далее повествование будет вестись от лица спикера.
Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium
Этот текст предназначен для начинающих тестировщиков, желающих понять как делать отчеты на allure с историей тестов, также разъяснить где их хранить, чтобы в отчет мог заглянуть любой участник вашей команды.
Рабочий репозиторий с финальной версией рабочего кода и инфраструктуры
Ссылка на отчеты после прогона тестов
Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.
Под капотом Graveyard Keeper: Как реализованы графические эффекты
Сегодня я хочу рассказать о графических приемах и ухищрениях, которые мы применяли для создания той картинки, которую вы видите на гифке выше.
Мы очень трепетно относимся к визуалу наших игр и по этому вложили довольно много времени и сил в различные эффекты и прочие плюшки, которые позволили бы сделать наш пиксель-арт максимально привлекательным. Возможно, кто-то найдет что-то полезное для себя.
Для начала, кратко перечислю из чего собирается картинка в нашей игре:
Разбор предложений по шаблонам русского языка
… или выявлять факты, как Tomita.
Глядя на эти парсеры, я вижу какую-то огромную сложность вычислений, требования к памяти, лицензионные ограничения и… ограниченность каждого решения, увы.
Чтобы понять, что же там такого сложного, мне захотелось сделать собственный парсер. Благо выходные оказались длинными.
Шпаргалка: fixture в pytest
В данной статье представлены примеры использования фикстур (fixture) для фреймворка автоматического тестирования pytest. Фикстуры представляют собой функции, которые можно использовать для решения различных задач при проведении автоматизированного тестирования.
Как правильно писать UI авто тесты на Python
Как правильно писать UI авто тесты на python используя Page Object + Page Factory.
«Угадай, школько у меня зубов… А в какой руке?» — детская неотложка
Главное определить, не будет ли травма угрожать будущему постоянному зубу. Это просто, сейчас научу.
Вот он — хитрый и коварный враг детских зубов
Сейчас расскажу несколько страшилок и покажу пару картинок, которые полезно запомнить.
Как вырвать нерв из головы и остаться без лица: почему так дорого рвать «коренной» зуб
Нервов у нас в районе головы столько, что в них могут быть подло понатыканы другие органы, обычно растущие в других местах. Вот типичный случай, когда пациентка осталась бы инвалидом на всю жизнь в какой-нибудь маленькой региональной клинике с вырыванием зубов без предварительного КТ:
Видите зуб-восьмёрку и тоненькую чёрточку под ним? Это так называемый коренной зуб и нерв. Точнее, это их рентген-тени.
Обычно зуб растёт выше и не касается нерва. Здесь они друг с другом довольно плотно интегрированы. Корень опустился в нижнечелюстной канал, где проходят артерии, вены, а ещё нижний альвеолярный нерв.
Если прийти с больным зубом в любую клинику, где сначала рвут, а потом фотографируют, то пациентка останется без лица с пугающе высокой вероятностью — 80%. Если сначала сфотографировать это место в нуарных рентген-лучах, то можно понять, что просто потянуть за зуб не получится.
И вот в этот момент на сцене появляюсь я со своими лезвиями и начинаю мило улыбаться. Потому что есть целых три инженерных подхода.
8 бесплатных инструментов искусственного интеллекта, которые пригодятся
Всем привет! Меня зовут Маруся, я аналитик данных, веду блог в телеграме Аналитика и growth mind-set.
В этой статье собрано 8 бесплатных инструментов на основе искусственного интеллекта, большинство из которых просты в использовании и самое главное бесплатны для тестирования.
Практически все инструменты я использовала и была с одной стороны вдохновлена тем, насколько они упрощают работу, с другой стороны я отчетливо увидела, что эти новые инструменты уже начинают видоизменять текущие профессии и рождать совершенно новые.
Насколько круто иметь свой сервер в комнате
Некоторые олды часто вспоминают эпоху до смартфонов, когда в студенческие времена или в школе у них был любимый настольный компьютер. Он стоял прямо в комнате, рядом с кроватью, и работал как личный ассистент в режиме 24/7: играл фоновую музыку (со специальным плейлистом, когда в гости приходили девушки), показывал фильмы, будил уведомлением из аськи или ирки, скачивал сайты ночью по диалапу и т. д.
Но кажется, что эта эпоха возвращается. Только на новом уровне. Сейчас опять стало очень круто иметь в комнате свой сервер, только он выглядит иначе и выполняет другие функции.
Взлёт и падение «Живого Журнала». Часть 1: как ЖЖ родился и стал русскоязычным
Мёртвый ЖЖ стал мемом ещё десять лет тому назад. Платформа технически продолжает жить и здравствовать, там по сей день есть читаемые и популярные блоги, но эпоха «Живого Журнала» как главной дискуссионной площадки рунета безвозвратно ушла в прошлое. А ведь было, было время!
Именно там кипели бурные страсти и жуткие ср*чи, рождались мемы и дискурсы, вспыхивали звёзды знаменитых блогеров и афедроны комментаторов. Кащениты тгавили пейсателя, падонки учили олбанскей, аффтарами писались тонны лытдыбров, а с многострадальным головным убором Антона Носика чего только ни происходило.
ЖЖызнь кипела во всех формах и расцветках — и казалось, не будет этому конца и края. Конец таки пришёл куда быстрее, чем можно было предположить, но ЖЖ остался в сердцах ветеранов рунета и в истории его развития.
Смахнув скупую слезу ностальгии, попробуем вспомнить некоторые из славных и не очень страниц истории русскоязычного LiveJournal.
Подключение Allure-репортера к произвольному тест-фреймворку на python
Автоматизация нуждается в человекочитаемых отчетах о тестировании — что тестировалось, какими тестовыми шагами, с каким результатом. Для этого существует система генерации отчетов Allure.
Allure поддерживается большинством известных тестовых фреймворков, а для неизвестных требует написания так называемого адаптера.
Как подключить Allure в любой произвольный фреймворк или не фреймворк вовсе?
Lock-файлы npm
Всем привет! В прошлом посте мы рассмотрели экосистему npm в качестве источника хаоса в нашем проекте, и научились с умом подходить к выбору зависимостей, чтобы минимизировать наши риски. Сегодня мы пойдем дальше и рассмотрим lock-файлы npm, которые помогают повысить стабильность проекта в процессе работы над ним.
Обзор npm 7
13 октября состоялся релиз npm@7.0.0. Релиз носит экспериментальный характер и доступен для скачивания из публичного npm-реестра с тегом next-7. Также npm 7 поставляется вместе с node.js 15.
Как вы помните, нечетные версии node.js тоже скорее являются нестабильными предрелизами. Только четные версии получают статус LTS и рекомендуются для использования в продакшене. Но сейчас мы поговорим исключительно об npm, а если быть более точным, то разговор пойдет о нескольких очень ожидаемых фичах, вошедших в свежий релиз.
Как получить 5 Тб дисков нахаляву
Короткая заметка, написать которую меня натолкнуло появление этой статьи: "Неожиданная находка, которая освобождает 20 GB". Ха! Всего 20GB ? Есть универсальный способ освободить больше. На который я натолкнулся ~1,5 года назад.
Linux утилита mkfs.ext4 (ext2/ext3/ext4) имеет параметр -m, о котором мало кто знает. Я не знал. И никто из моих знакомых-линуксоидов не знал.
Этот параметр резервирует место, в процентах, доступное только суперпользователю. Чтобы, когда обычные юзеры выжрут весь диск, демоны продолжали оголтело писать свои логи, не падая. Значение по-умолчанию: 5. ПЯТЬ ПРОЦЕНТОВ! Что на диске в 10Тб даёт сумасшедшую цифру в 500 гигабайт. На логи, да! Наверное в начале-середине 90х такая процентовка имела смысл, но явно не сейчас. Особенно для дисков с данными, где никаких логов нет и не предвидится.
Мало того что производители дисков жонглируют гига- гиги- байтами, неизменно продавая обьём меньше интуитивно ожидаемого. Так ещё и "налог" сверху, в 5%, от утилиты форматирования!
Переформатировав свои 100тб дисков, я получил дополнительные 5Тб дискового пространства, просто так, на ровном месте.
Всем хороших выходных!
Реализация паттерна Page Object на Python + pytest
Когда я начинал изучать автоматизацию тестирования, не мог понять — “что такое Page Object и как его реализовать на Python + pytest?”. Штудируя интернет, нашел реализацию на других языках и фреймворках: обучающие статьи, которые были непонятны для меня. Поэтому решил написать этот разбор. Идея — показать реализацию на Python + pytest и объяснить ее доступным языком.
Что такое Page Object
Это популярный паттерн, который является де-факто стандартом в автоматизации тестирования веб-продуктов. Основная идея состоит в том, чтобы разделить логику тестов от реализации.
Каждую веб-страницу проекта можно описать в виде объекта класса. Взаимодействие пользователя описываются в методах класса, а в тестах остается только бизнес-логика. Данный подход помогает избежать проблем с тестами при изменении верстки веб-приложения. Вам необходимо поправить только класс, описывающий страницу.
Революция или эволюция Page Object Model?
Перед тем, как перейти к деталям, хочу спросить: сколько обёрток для Page Object вы знаете? Page Element, ScreenPlay, Loadable Component, Chain of invocations…
А что будет, если взять Page Object с реализацией на интерфейсе, прикрутить Proxy Pattern и добавить немного функциональности Java 8?
Если интересно, предлагаю перейти под кат.
Руководство по магическим методам в Питоне
Содержание
- Вступление
- Конструирование и инициализация
- Переопределение операторов на произвольных классах
- Представление своих классов
- Контроль доступа к атрибутам
- Создание произвольных последовательностей
- Отражение
- Вызываемые объекты
- Менеджеры контекста
- Абстрактные базовые классы
- Построение дескрипторов
- Копирование
- Использование модуля pickle на своих объектах
- Заключение
- Приложение 1: Как вызывать магические методы
- Приложение 2: Изменения в Питоне 3
Вступление
Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например,
__init__
или __lt__
). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.Информация
- В рейтинге
- Не участвует
- Откуда
- Воронеж, Воронежская обл., Россия
- Дата рождения
- Зарегистрирован
- Активность