Показаны сообщения с ярлыком selenium. Показать все сообщения
Показаны сообщения с ярлыком selenium. Показать все сообщения

20 октября 2015

Напочитать: Тестовый инструментарий антигуманитария


1. Хороший дайджест для тестировщиков со всем XML-технологиями.

2. Объяснение на пальцах что такое CQRS и Event Sourcing.

3. Долгий но полезный рассказ о том как уничтожать плохие продуктовые идеи. Если вы тестировщик и не понимаете зачем вам это - слушайте старших.

4. Amazon запускает свой device cloud для тестирования Android и своей Fire OS.

5. Старый рассказ с Google Tech Talks о том как Dependency Injection/ Inversion of Control влияет на тестируемость.

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

7. Twitter опубликовал свою Diffy - утилиту для back-to-back тестирования сервисов.

8. На Indiegogo успешно прошла краудфаундинговая компания по сбору средств на создание JUnit Lambda - следующей версии JUnit. Бюджет собрали аж дважды (216% если быть точным), есть надежда что скоро процесс пойдет, а пока можно почитать вики проекта на GitHub. Ребят проблема настолько актуальна для всех ?  Поделитесь болью в комментах.

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

10. Про кучу возможностей для тестирования и fault-injection testing в докладе Игоря Сухорукова, который на самом деле про аспекты.

11. О том как тестируют качество звука в WebRTC. Отличный и довольно простой пример привнесенной testability.

12. Как всегда, красочно и про самую  писечку - он иначе не умеет - Алексей Лупан про регрессионное тестирование.

13. Что не является тестируемым кодом - с примерами.

14. Как писать юнит-тесты на многопоточный код.

15. Facebook запилил WebDriverAgent - A WebDriver server for iOS that runs inside the Simulator. Ну вы поняли - скоро будут гриды на архитектуре WebDriver-а.

16. Про тестирование безопасности API раз, два, три.

30 декабря 2014

Напочитать: 17 мгновений Java-зимы


  1. Фреймворк для фаззинга.  Обрадовались? Рано - только Linux и Mac OS :)
  2. Интересный пример обвязки для JUnit для тестирования рубильников (feature toogles).
  3. 04.12.2014 в мир вышел JUnit 4.12. Куча изменений - у меня были тесты которые помогли быстро адаптироваться.
  4. Заморозьте версию браузера и Selenium, иначе ай-ай-ай-чтоможетпроизойти. Имхо - способ огораживания - у ваших клиентов тоже браузеры обновляться не будут, да ? 
  5. Безопасность для REST-сервисов - очередная "детская болезнь" отрасли. Есть 6 способов лечить, по крайней мере на Java.
  6. как узнать хоть что-то про плагин в  maven ? Просто mvn help:describe -Dplugin=
  7. О том как идеи тестовых фреймворков вдохновляют разработчиков на великие дела. Осторожно - внутри Java, Reflection и агонь!
  8. .NET заопенсорсило!!!! Не могу сказать что прям рад, просто лучше поздно, чем никогда. Момент упущен.
  9.  Docker рвет вперед сумашедшими темпами: репозитории образов под языки, machine+swarm+compose, и это все несмотря на попытки CoreOS выстроить свою альтернативу докеру. А что же будет после Docker? Immutable Servers и Unikernels
  10. Robot Framework обзаводится lint.
  11. Google зарелизил свою версию типа удобных ассертов (not invented here синдром, дада) под названием Truth.
  12. О небольших нюансах жизни с GSON и сопособах их решения.
  13. Как с помощью JMeter тестировать ненагрузочно.
  14. Пожалуй самый лучший HelloWorld-пример использования ZooKeeper. А Netflix за его Curator  - еще один плюс в карму.
  15. Ребята из 2GIS дают дельный и очень простой совет как протестировать верстку - используй одинадцатиклассниц :) 
  16. Etsy взяли и просто начали ротацию кадров - чтобы понюхали как у соседа в окопе пахнет. Молодцы,чо.
  17. Замечательное ревью книги, которое лично для меня вовсе не ревью, но сублимат правильных мыслей о том чем ты должен заниматься в своей профессиональной жизни. Все так, скажу я вам. И просто  нацитирую
    Проблема саморазвития на этом этапе заключается в том, что теперь каждый level up дается все сложнее, требует все большего количества усилий, и начинает казаться, что потраченные усилия перестали себя оправдывать.
Поколение назад, удовольствие от работы не было решающим фактором при выборе места работы. Работа не должна была приносить радость, она должна была приносить кусок хлеба. Радость должна быть по возвращению домой с работы по вечерам и на выходных. Но если работа не приносит удовольствия, то скоро ты начинаешь понимать, что не можешь фантастически на ней работать. Не сказал бы, что многое поменялось с тех пор, но как минимум стал заметен сдвиг в лучшую сторону. Многие из нас поняли, что страсть ведет к совершенству 

И на этот год наверное все.

17 июня 2013

Мероприятие: Selenium Conference 2013 в Бостоне

Место

Бостон,RENAISSANCE BOSTON WATERFRONT HOTEL

Постарайтесь лететь в Бостон прямым рейсом, потому что я просидел в JFK в Нью-Йорке 3 лишних часа по причине абсолютно непонятных задержек со стороны Delta Airlines, и это не предел.
Соответственно стыковка на прямой рейс будет где-то в Европе, но это всяко лучше чем JFK.
JFK - огромный аэропорт, и сделан не самым лучшим образом.


Организация

На высоте, хотя вряд ли могло быть по другому :).
Места достаточно, помещение хорошее.
Еда, кофе, вода  - все есть.
Вентиляция  - в норме.
Организаторы позаботились и об after-party - сняли бар для того чтобы люди пообщались между собой.

Доклады

  1. Scaling Selenium: The Selenium Infrastructure at Salesforce.com Рассказ о масштабировании инфраструктуры для запуска автотестов в SalesForce. Ребята долго работали со своим собственным гридом , в конечном счете используя API JClouds сделали возможность раскатывать фермы неограниченного размера. То есть если в тестовом запуске есть 1000 тестов то будет запущено 1000 виртуалок в качестве нод. Все это выливается в достаточно большие счета от Amazon EC2?OpenStack/VmWare, анализ которых происходит ежемесячно. Чтобы счета не были большими в запуск попадают только те тесты которые имеют высокий рейтинг стабильности. Определению нестабильных тестов(flappers) был посвящен отдельный доклад.
  2. Phantom.js Ivan de Marino, Amazon. Ничего нового не рассказал, можно спокойно посмотреть видео доклада из Киева
  3. Is your page loaded. Рассказ о достаточно простом приеме определения того что ваша страница загружена.Работает с графическими компонентами, будет плохо работать если на страницу по AJAX приходит что-то что становится графикой не всегда или не все. Средне.
  4. Automated UX Compliance Testing. Рассказ о том что можно попробовать находить баги верстки с помощью анализа скриншотов. Для этого даже есть отдельный плагин для Jenkins-а. Долго, дорого, малоэффективно. Глубокая beta.
  5. Codeless Automation: Selenium Builder+ Github + CI. SauceLabs приложили тонну усилий к тому чтобы в очередной раз воскресить вампира. Итого  - аналог Selenium IDE написанный на node.js, с плагинной архитектурой, пропахали интеграцию с GitHub и Travis CI. Труда положено много, выглядит впечатляюще (Осторожно! на глупеньких менеджеров и обезьянок действует возбуждающе!), но докладчик сам прямым текстом сказал - что это для quick, dirty, throwaway tests (перевожу - записал, попользовался, выкинул). Доклад отличный.
  6. Holistic Cross-Browser Testing. Тут опять про тестирование верстки только уже все серьезнее - ребята сделали это в виде отдельного сервиса DomReactor. Используются три стратегии - снятие скриншотов, computer vision (анализ изображений), эвристики/правила. Все еще тоже не до конца готово, но направление наверное верное.
  7. Testing and Moving Fast - Making Selenium Work for Facebook. Рассказ о процессах обеспечения качества в Facebook. Ребятам пришлось самим написать биндинги для Selenium на PHP, потом переписать их снова. Из интересного -Инженер ответственный за код который он поставляет и должен писать на этот код тесты. Нестабильные тесты уходят в карантин, если тест горит красным и по нему не следует фикса в течении суток то автотест удаляется. Еще из интересного - Facebook пересмотрел свою политику в отношении релиза функционала на мобильную версию, теперь сначала фича выкатывается на мобильную версию, потом уходит на вэб - это позволяет избежать разрыва в функционале.

Общее впечатление

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


Ну и пара инсайдов с конференции:
1. Selenium 3.0 должен выйти в конце года и основной прицел в дальнейшем развитии будет идти в сторону тестирования мобильных приложений. Как мне кажется наибольшее влияние на это окажет Appium в частности и SauceLabs вообще.

2. Google, Facebook, SauceLabs имеют свои реализации инфраструктуры Selenium Grid, Связано это с несовершенством Selenium Grid.

Немонтированные записи всех докладов доступны на Livestream.com


06 мая 2013

Новости автоматизации

Моя говорящая голова с Selenium Camp


Связка TestNG + WebDriver + Spring в виде open-source проекта - один Великий Ктулху знает зачем это было делать и опенсорсить, но тем не менее.
https://github.com/persado/stevia

Workaround для установки куки - всякое в жизни случается
http://www.w3schools.com/js/js_cookies.asp

BrowserMob Proxy переехал в частный репозиторий на GitHub и обновился до 2.0-beta-8
http://blog.lightbody.net/post/49611369740/browsermob-proxy-2-0-beta-8-released

Google Test Automation Conference 2013 показывает пример того как надо делать конференции по автоматизации тестирования и уже выложили видео и презентации докладов
https://developers.google.com/google-test-automation-conference/2013/presentations


И в 100500-ый раз про то как надо дожидаться элементов на странице - уже не смешно видеть рукописные ExpectedConditions.
http://seleniumsimplified.com/2013/04/10/categorised-selenium-webdriver-api-mindmap-on-mindmeister/
http://assertselenium.com/2013/01/29/webdriver-wait-commands/

05 марта 2013

Мероприятие: SeleniumCamp 2013 в Киеве

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

Место.

Киев, БЦ "Парус".
От нашего отеля (мы жили в Космополите) добираться было не очень удобно, но это не критично - цены на такси в Киеве демократичные (по сравнению с Москвой и Питером), пробок также не наблюдается.

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

Организация мероприятия.

Тут я могу сказать только одно - XPInjection все сделали отлично.
Все было продумано до мелочей - всегда можно взять программку конференции даже если ее потерял, всегда можно попить кофе и найти бутылку воды, есть место для курения, лаундж для посидеть и поговорить.
По уровню комфорта - конференция оправдывает те деньги, которые за нее просят (чуть более чем полностью).
Организаторы устраивали для докладчиков afterparty после каждого дня конференции - тоже очень приятная и полезная практика.  В первый день я успел его посетить, во второй к сожалению нет - улетал на утро из Киева в 6.00.

Доклады.

Основной печалью конференции было то, что не смог приехать Francois Reynaud, который должен был рассказывать про плагины к Grid.
Дальше буду рассказывать только про те доклады которые успел, посетить.


  • Less Selenium, more unit testing , Dima Kovalenko, GroupOn - доклад про то, что если есть возможность тестировать без Selenium-а , то лучше это и делать. Используйте Jasmine, об этом уже не только Дима рассказывал.


  • Using Selenium At Google Scale, Daniel Wagner-Hall, Google UK - в принципе интересный доклад.
  • Дэниел рассказывал о концепции использования Hermetic Servers - сервер который инкапсулирует внутри себя все тестовое окружение и интеграцию с внешними сервисами. Гораздо более интересной оказалась беседа лично с Дэниелом - больше деталей и подробностей было выведано.



  • Test-driven web development with Selenide, Андрей Солнцев, Вадим Герасимов, Codeborne - честно не понял, почему они сделали Selenide именно так, но подход имеет право на жизнь.


  • Тестирование безопасности web приложений с использованием Selenium и Zed Attack Proxy (ZAP), Антон Шапин - интересный доклад про Zed Attack Proxy. Раскрыты не все моменты, но буду ковырять сам.



  • Getting started with GhostDriver, Ivan de Marino - автор и главный разработчик Ghost Driver интересно рассказывал про то, что есть Ghost Driver и про то, почему он не всегда фиксит баги. В целом следующий релиз Ghost Driver должен быть многообещающим.



  • Наш путь от 90 до 6500 тестов. За кулисами, Иван Медведев, СКБ Контур - не знаю было ли это случайно или специально, но Иван отлично разогрел публику на открытии второго дня. Весело, по делу, улыбнул. 


  • Single-page vs. Multi-page. Особенности автоматизации тестирования., Татьяна Курносова,  2ГИС. Не совсем понял о чем этот доклад. Точнее даже зачем его было делать.


Общее впечатление от того, о чем рассказывали на конференции сложилось следующее.
На постсоветском пространстве тяжелая беда с квалификацией тех, кто приходит в автоматизацию тестирования.
Судя по темам докладов от "наших" докладчиков - люди которые идут в автоматизацию тестирования у нас не понимают, что это инженерная профессия.
Поэтому и много докладов на тему того, как правильно начать что-то делать - докладов, кстати говоря, хороших.
В странах  "загнивающего империализма" - уже наоборот.
Software Engineer in Test, который объясняет Software Engineer как писать код так чтобы он был тестируемый - в порядке вещей.
При этом сам Software Engineer in Test тесты не пишет, а строит инфраструктуру для того, чтобы команда могла автоматизировать тестирование с наименьшими трудозатратами.

Для себя я сделал вывод, что "мы" и "они" просто находимся на разных этапах зрелости процесса.

В целом - мне понравилось.

Большое спасибо Коле Алименкову и Алексею Солнцеву за отличную организацию мероприятия. Из последних конференций по тестрованию на которых я был - SeleniumCamp была лучшей.


25 января 2013

Selenium: Получение куков в Google Chrome

Изображение взято из официальной вики Chrome Driver

Проще говоря - вы не можете получить информацию о текущем состоянии кук в браузере.
Однако это уже не так.
Только что проверил на рабочем проекте на связке

Selenium 2.29 + Google  Chrome24.0.1312.56 m + Chrome Driver 26.0.1383.0


22 января 2013

Поезняшка: Стронций

Химически чистый образец того к каким положительным(ИМХО)  последствиям приводит open source движение.
Взяли и написали реализацию Wire Protocol на .NET.
Назвали Strontium (Стронций, бишь).
И все для того чтобы не засовывать в экосистему .NET джаву.
С одной стороны - неправославно, потому что .NET вообще.
А с другой стороны - вполне себе ничего.
Ведь можно же с помощью этого всего (будем надеятся) поднять Selenium Grid Node без затаскивания Java.

 ЗЫ Jim Evans - мужииииик!!!

06 ноября 2012

Новости: WebDriver как стандарт

Движение которое началось этим летом не угасло.
Не далее как на прошлой неделе в коридорах W3C было обсуждение того чем ему быть.
Детали по ссылке.

01 ноября 2012

Видео:Selenium Grid в eBay

Команда автоматизации тестирования eBay выступала на каком-то мероприятии в Лондоне, где рассказывала про то как у них организован грид.

Суть в кратце:виртуальные машины грида разворачиваются со снепшота (судя по всему со снепшота в запущенном состоянии), каждые N тестов машина "сбрасывается" на снепшот.

Более детально смотреть тут.

Grid 2 - Integration with a virtual environment from Mozilla QA on Vimeo.

Слайды презентации вот тут.

17 октября 2012

Полезняшка: Сброс кэша Opera с помощью Selenium

Как я уже писал вот тут мне потребовалось иметь возможность сброса кэша всех браузеров.
Вот расковырял как это делать с Opera.

OperaProfile operaProfile = new OperaProfile();
operaProfile.preferences().set("Cache", "Cache Docs", false);
operaProfile.preferences().set("Cache", "Cache Figs", false);
operaProfile.preferences().set("Cache", "Cache HTTPS After Sessions", false);
operaProfile.preferences().set("Cache", "SVG Cache Size", 0);
 
operaProfile.preferences().set("Disk Cache", "Cache Docs", false);
operaProfile.preferences().set("Disk Cache", "Cache Figs", false);
operaProfile.preferences().set("Disk Cache", "Cache HTTPS", false);
operaProfile.preferences().set("Disk Cache", "Cache Other", false);
operaProfile.preferences().set("Disk Cache", "Media Cache Size", 0);
 
operaProfile.preferences().set("OEM", "Operator Cache Size", 0);
 
 
operaProfile.preferences().set("User Prefs", "Automatic RAM Cache", false);
operaProfile.preferences().set("User Prefs", "Cache Directory4", "");
operaProfile.preferences().set("User Prefs", "Cache Style File", "");
operaProfile.preferences().set("User Prefs", "Max Number Cached Bitmaps", 0);
operaProfile.preferences().set("User Prefs", "Operator Cache Directory4", "");
operaProfile.preferences().set("User Prefs", "Strategy On Application Cache", 0);
operaProfile.preferences().set("User Prefs", "Maximize New Windows", 1);

18 сентября 2012

Полезняшка: Сброс кэша в IE для Selenium тестов

Даже не спрашивайте меня зачем мне это понадобилось.
Понадобилось и все.

Достаточно аккуратная возможность сбросить кэши есть в Firefox.

public WebDriver createFf() {
    final DesiredCapabilities firefox = DesiredCapabilities.firefox();
    final FirefoxProfile firefoxProfile = new FirefoxProfile();
    disableCacheFF(firefoxProfile);
 
    final WebDriver firefoxDriver = new FirefoxDriver(firefoxProfile);
    return firefoxDriver;
}
 
public void disableCacheFF(final FirefoxProfile firefoxProfile) {
    firefoxProfile.setPreference("browser.cache.disk.enable", false);
    firefoxProfile.setPreference("browser.cache.memory.enable", false);
    firefoxProfile.setPreference("browser.cache.offline.enable", false);
    firefoxProfile.setPreference("network.http.use-cache", false);
}

В случае с Google Chrome я нашел такое решение

    final DesiredCapabilities chrome = DesiredCapabilities.chrome();
    chrome.setCapability("chrome.switches",
        Arrays.asList("--start-maximized","--disk-cache-size=1","--media-cache-size=1"));

Способ сброса кэша в Opera  я пока исследую.
В остатке - Internet Explorer.
С ним как обычно беда, и беде этой не первый год.
Но windows/.NET/MS - разработчики  - тоже люди тоже упирались в эту проблему.
В итоге было решено сделать "крайне элегантный в своей простоте" (с) workaround - вызов нативной DLL-ки.
Делается это так

RunDll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Последняя циферка является маской действия, вот тут расписано какая маска что значит.
Осталось это только выполнить на конкретной машине где запускается Internet Explorer.
Сделать это можно  опять же двумя способами:

  1. Создать прокси класс для работы с RemoteWebDriver -почти готовое решение есть вот здесь.
  2. Написать маленький Jetty-based сервис и положить на ноду. Это решение я сделал в качестве примера и выложил на GitHub





18 июня 2012

Еще один извращенный способ запуска Selenium

Вот тут господин Баранцев опубликовал статью по запуску Internet Explorer Driver Server для работы Selenium-а.

Вкратце:

  1. Укладываем exe-щник в папочку, путь к папочке прописываем в PATH
  2. запускаем Selemiun Server с  -Dwebdriver.ie.driver=<путь к файлу>
Глядя  на все это на ум приходят следующие мысли.

Как только разработчики браузеров не извернуться для того чтобы повысить свою привлекательность и не похерить свою приватность.
С точки зрения автоматизации браузерного тестирования Firefox пока остается впереди планеты всей - уж очень хорошо и глубоко проинтегрирован в него WebDriver (кстати вышедший из Google!!!), однако Chrome Driver как был, так и существует в виде отдельного проекта и КПП внутрь хрома, который кстати не до конца реализует спецификацию JSON Wire Protocol (мой твит и бага в трекере).
Вот и еще один пациент пошел по пути наименьшего сопротивления  - выстроить реализацию JSON Wire Protocol в виде отдельно стоящего чуда, которое нужно отдельно деплоить и обновлять в случае фиксов (опять же вспоминаем Google Chrome, который уже 20 версии!!!).
Это понятно с той точки зрения, что не нужно тащить чей-то чужой протокол внутрь своей кодобазы, но внещне выглядит так что людям тупо лень.

Как-то так, извиняюсь за сумбур.

 

12 марта 2012

И вновь о....

Как я уже писал  - скромность есть черта профессионализма, ИМХО конечно.
Разгребая почту обнаружил очередное письмо из рассылки одного небезызвестного человека в кругах тренингов по тестированию в котором он обещает обучить Selenium 2.0/WebDriver за два часа.

Много думал что написать, но не стану более писать ничего, ибо давать рекламу столь неквалифицированным тренерам - уже само по себе грешно.




09 февраля 2012

Опенсорсно-злое

http://selenium.googlecode.com/svn/trunk/java/CHANGELOG

Native events implemented for Firefox 10.

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

ЗЫ извините, не сдержался - 3 человека два дня пытались заставить это работать на FF 10