Пожалуй, нет такого проекта, на котором автоматизированное тестирование GUI прошло бы быстро и гладко. Особенно это актуально для нового проекта, когда не знаешь, какие трудности придется преодолеть во время написания авто-тестов. При работе с веб-приложением, написанном с использованием canvas, мы также не подозревали, что внутри этого маленького элемента «таится целый мир», и что этот «мир» нужно как-то тестировать.
В докладе будет рассказано о том:
· как мы разбирались с возможностью автоматизировать тестирование canvas через UI;
· какие подходы для этого выбрали;
· с какими вызовами столкнулись и как их преодолели.
RPA is a technology that allows automation of tasks performed by humans. It uses software robots to imitate human actions for repetitive tasks like data entry and validation. Some key RPA tools are Blue Prism, UiPath, Automation Anywhere and Pega. RPA implementation involves defining processes, designing automated solutions, building the robots, testing them, and continuously improving performance. RPA provides benefits like accuracy, consistency, lower costs and improved productivity. It has applications in industries like banking, HR, healthcare and government. The future scope of RPA is replacing more data-based jobs with automated tools and techniques.
Many SAP systems are connected to the Internet, and exposing sensitive services beyond Web applications. Furthermore, the internal network is usually not properly segmented.
MongoDB for storing humongous music databasePrasoon Kumar
Musicbrainz is an encyclopedia of music tracks, artists and albums. It is available in PostgreSQL under CC license. 2 different approaches to load the database into MongoDB are examined - one where 4 tables are first denormalized in Postgres and then loaded into MongoDB. Other one loads them into MongoDB and denormalizes into a single collection there. We also show MongoDB's fulltext index.
Automating Canvas Applications Using Seleniumdavehunt82
The document discusses automating a Canvas helicopter game using Selenium. It begins with an introduction to the topic and provides examples of Canvas applications. It then demonstrates automating playing the helicopter game with Selenium by first disabling obstacles and optimizing performance. Visual feedback was later added through a heads up display. Crash testing is also implemented to ensure the helicopter crashes at the expected altitudes. The document concludes by recommending working together, establishing requirements, writing hooks, considering feedback, creating tests, and sharing the work for automating Canvas applications with Selenium.
Automation using Scripting and the Canvas APIDavid Lippman
A talk from the Washington Canvas User Group 2014 meeting, about using PHP to automate tasks using the Canvas LMS API. Sample code is available at https://github.com/drlippman/canvas-scripts
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...Yusuke Yamamoto
This document provides time-saving tips and tricks for building quality Java applications more quickly, including using appropriate tools and IDEs to code and review quickly, automating UI and business logic tests to test quickly without restarting containers each time, and techniques for deploying and redeploying quickly such as reducing JVM startup time and enabling hot-swapping of code changes.
This document discusses experiments running WSO2 middleware on Raspberry Pi clusters. The high-level plan was to:
1. Run Java and a vanilla Carbon kernel on a Raspberry Pi.
2. Run an enhanced Carbon kernel on a Pi and use it with the WSO2 Application Server.
3. Conduct load tests and use GPIO functionality to connect Pis into an application server cluster for monitoring and management.
The experiments involved setting up a Raspberry Pi power supply, rack prototypes, and network to run the application server with optimizations like reducing boot time. Other experiments explored running Linux Containers on Pis. No Pis were harmed, but a few capacitors were exploded
RPA is a technology that allows automation of tasks performed by humans. It uses software robots to imitate human actions for repetitive tasks like data entry and validation. Some key RPA tools are Blue Prism, UiPath, Automation Anywhere and Pega. RPA implementation involves defining processes, designing automated solutions, building the robots, testing them, and continuously improving performance. RPA provides benefits like accuracy, consistency, lower costs and improved productivity. It has applications in industries like banking, HR, healthcare and government. The future scope of RPA is replacing more data-based jobs with automated tools and techniques.
Many SAP systems are connected to the Internet, and exposing sensitive services beyond Web applications. Furthermore, the internal network is usually not properly segmented.
MongoDB for storing humongous music databasePrasoon Kumar
Musicbrainz is an encyclopedia of music tracks, artists and albums. It is available in PostgreSQL under CC license. 2 different approaches to load the database into MongoDB are examined - one where 4 tables are first denormalized in Postgres and then loaded into MongoDB. Other one loads them into MongoDB and denormalizes into a single collection there. We also show MongoDB's fulltext index.
Automating Canvas Applications Using Seleniumdavehunt82
The document discusses automating a Canvas helicopter game using Selenium. It begins with an introduction to the topic and provides examples of Canvas applications. It then demonstrates automating playing the helicopter game with Selenium by first disabling obstacles and optimizing performance. Visual feedback was later added through a heads up display. Crash testing is also implemented to ensure the helicopter crashes at the expected altitudes. The document concludes by recommending working together, establishing requirements, writing hooks, considering feedback, creating tests, and sharing the work for automating Canvas applications with Selenium.
Automation using Scripting and the Canvas APIDavid Lippman
A talk from the Washington Canvas User Group 2014 meeting, about using PHP to automate tasks using the Canvas LMS API. Sample code is available at https://github.com/drlippman/canvas-scripts
JavaOne2016 #CON5929 Time-Saving Tips and Tricks for Building Quality Java Ap...Yusuke Yamamoto
This document provides time-saving tips and tricks for building quality Java applications more quickly, including using appropriate tools and IDEs to code and review quickly, automating UI and business logic tests to test quickly without restarting containers each time, and techniques for deploying and redeploying quickly such as reducing JVM startup time and enabling hot-swapping of code changes.
This document discusses experiments running WSO2 middleware on Raspberry Pi clusters. The high-level plan was to:
1. Run Java and a vanilla Carbon kernel on a Raspberry Pi.
2. Run an enhanced Carbon kernel on a Pi and use it with the WSO2 Application Server.
3. Conduct load tests and use GPIO functionality to connect Pis into an application server cluster for monitoring and management.
The experiments involved setting up a Raspberry Pi power supply, rack prototypes, and network to run the application server with optimizations like reducing boot time. Other experiments explored running Linux Containers on Pis. No Pis were harmed, but a few capacitors were exploded
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
Как задать нужные для тестового прогона параметры, такие как имя браузера, имя или url сервера, передать ссылку на определенныый набор параметров через командную строку или конфиг файл. Как организовать параллельный прогон тестов на сыром Webdriver (JS) без использования вспомогательных фреймворков (protractor, parallel-cucumber etc.) используя child_process.
Рассмотрен вариант организации бесплатной среды автоматического тестирования веб-приложений на различных окружениях.
Одним кликом прогоняются тесты на комбинации всех известных браузеров со всеми возможными вариантами серверных окружений, в которых работает приложение.
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...Yandex
В докладе пойдёт речь о том, как использовать JS-библиотеки и фреймворки для достижения модульности, построения грамотной архитектуры и упрощения поддержки фронтенда веб-приложений. Мы также поговорим о многофункциональной библиотеке Backbone.js и о том, как навести порядок в application.js (main.js).
Тестируй это / Виктор Русакович (GP Solutions)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 18:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2625.html
Как писать тесты?
Как запускать тесты?
Кто все сломал?
Все три вопроса рассмотрены в докладе. Также будет демо интеграции проекта, покрытого тестами, и cloud-based-сервиса по запуску этих тестов (github+travis).
Кроме того, расскажу об опыте по сокращению времени прогона тестов; о том, как добавить тесты в случае, если у вас уже есть большое приложение, но все еще без тестов.
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.
Agile Java Development компания JazzTeam - Техническая презентация Xml2Seleniumjazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания, и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML, и многих других.
Горячко Дмитрий, Солигорск. Организатор конференции Solit. JazzTeam, Founder & CEO. Ведёт блог на http://www.zmicer.com
«Scrum/Agile для команд разного уровня: students, juniors, engineers, seniors, experts. Практические наблюдения и рекомендации». Development секция.
«Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium». Development секция.
Перспектива разработки мобильного приложения, которое не потребуется скачивать и ждать review из App Store, очень заманчива, ведь аналогов привычного ПО существует несколько: Progressive Web Apps (PWA), Android Instant Apps (AIA) и Accelerated Mobile Pages (AMP). Как сделать верный выбор, найти «серебряную пулю», ведь у каждой из перечисленных технологий своя специфика разработки, поддержки и тестирования, сильные и слабые стороны. В докладе мы, по возможности, детально рассмотрим каждую из платформ, проведем сравнительный анализ альтенратив “обычными” мобильными приложениями. Давайте все вместе подготовимся к грядущим вызовам обеспечения качества в столь «необычных», новых проектах.
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...COMAQA.BY
В рамках нашего сдвоенного доклада мы проговорим проблему построения Архитектуры решений Автоматизации «от обратного» - систематизируем классические Архитектурные недочеты, в том числе процессного происхождения, сформулируем варианты решения каждой рассмотренной проблемы, критерии выбора решения, и конечно условия перехода проблемы из не идеальной, но промышленно приемлемой, в потенциально опасный для проекта прецедент.
More Related Content
Similar to Automating Canvas: difficult but possible
Самодельная параметризация и параллелизация тестов на Webdriver (JS) COMAQA.BY
Как задать нужные для тестового прогона параметры, такие как имя браузера, имя или url сервера, передать ссылку на определенныый набор параметров через командную строку или конфиг файл. Как организовать параллельный прогон тестов на сыром Webdriver (JS) без использования вспомогательных фреймворков (protractor, parallel-cucumber etc.) используя child_process.
Рассмотрен вариант организации бесплатной среды автоматического тестирования веб-приложений на различных окружениях.
Одним кликом прогоняются тесты на комбинации всех известных браузеров со всеми возможными вариантами серверных окружений, в которых работает приложение.
Алексей Авдеев — Применение Backbone.js для рефакторинга фронтенда веб-прилож...Yandex
В докладе пойдёт речь о том, как использовать JS-библиотеки и фреймворки для достижения модульности, построения грамотной архитектуры и упрощения поддержки фронтенда веб-приложений. Мы также поговорим о многофункциональной библиотеке Backbone.js и о том, как навести порядок в application.js (main.js).
Тестируй это / Виктор Русакович (GP Solutions)Ontico
РИТ++ 2017, Frontend Сonf
Зал Дели + Калькутта, 5 июня, 18:00
Тезисы:
http://frontendconf.ru/2017/abstracts/2625.html
Как писать тесты?
Как запускать тесты?
Кто все сломал?
Все три вопроса рассмотрены в докладе. Также будет демо интеграции проекта, покрытого тестами, и cloud-based-сервиса по запуску этих тестов (github+travis).
Кроме того, расскажу об опыте по сокращению времени прогона тестов; о том, как добавить тесты в случае, если у вас уже есть большое приложение, но все еще без тестов.
(Seleniumcamp) Selenium RC for QA EngineerYan Alexeenko
The Selenium RC opportunities, problems and some features in work with it for cross-browser testing (Firefox, Internet Explorer, Safari, Google Chrome) are presented in the presentation. The issues, concerning testing automation start, the points of testing, performed data, test synchronization problems and different solutions of these problems are considered. Beside that, application testing problems, using Flash and Silverlight, file loading variants, XSS injections are discussed.
Agile Java Development компания JazzTeam - Техническая презентация Xml2Seleniumjazzteam
Продукт XML2Selenium - это расширяемая, плагинная платформа для создания и управления автоматизированными тестами на основе технологии Java.
XML2Selenium имеет интеграцию с JUnit, работает поверх Selenium (это изменяемо). XML2Selenim позволяет создавать автоматизированные тесты в простом и понятном обычному (без навыков программирования) QA инженеру формате. XML2Selenium позволяет также управлять всеми стадиями работы с автоматизированными тестами, начиная от стадии создания, и заканчивая управлением тестами.
Главными конкурентными преимуществами являются
- низкая стоимость вхождения. Начинающие автоматизаторы, и даже QA инженеры без навыков программирования создают качественные тесты, а значит легко поддерживаемые, легко изменяемые, с использованием DDT (Data Driven Testing) подходов, что увеличивает повторно-используемость тестов
- встроенные возможности структуризации тестов по папкам и файлам, а также по тегам, что позволяет качественно отобразить документацию на тесты. Внедряя эту платформу, вы автоматически улучшаете свои процессы управления тестами
- XML2Selenium это плагинная, расширяемая платформа, позволяющая кастомизировать процессы под ваши нужды, создать новые плагины, добавить интеграцию с нужными системами, и многое другое
- все повторно-используемые части (инклюды, плагины) могут помещаться в репозитории, откуда ими могут пользоваться QA инженеры с других проектов компании, тем самым распространяется опыт и знания в области автоматизации
- XML2Selenium имеет широкий спектр полезных свойств в области автоматизации, таких как поддержка создания видео, снепшотов и скриншотов страниц, Groovy и JS скриптинга, поддержки объектно-ориентированного программирования на XML, и многих других.
Горячко Дмитрий, Солигорск. Организатор конференции Solit. JazzTeam, Founder & CEO. Ведёт блог на http://www.zmicer.com
«Scrum/Agile для команд разного уровня: students, juniors, engineers, seniors, experts. Практические наблюдения и рекомендации». Development секция.
«Создание продукта для автоматизации тестировании. Что нужно учитывать, чтобы создать технологическую платформу. Разбор конкретного примера – продукта XML2Selenium». Development секция.
Перспектива разработки мобильного приложения, которое не потребуется скачивать и ждать review из App Store, очень заманчива, ведь аналогов привычного ПО существует несколько: Progressive Web Apps (PWA), Android Instant Apps (AIA) и Accelerated Mobile Pages (AMP). Как сделать верный выбор, найти «серебряную пулю», ведь у каждой из перечисленных технологий своя специфика разработки, поддержки и тестирования, сильные и слабые стороны. В докладе мы, по возможности, детально рассмотрим каждую из платформ, проведем сравнительный анализ альтенратив “обычными” мобильными приложениями. Давайте все вместе подготовимся к грядущим вызовам обеспечения качества в столь «необычных», новых проектах.
Anton semenchenko. Comaqa Spring 2018. Nine circles of hell. Antipatterns in ...COMAQA.BY
В рамках нашего сдвоенного доклада мы проговорим проблему построения Архитектуры решений Автоматизации «от обратного» - систематизируем классические Архитектурные недочеты, в том числе процессного происхождения, сформулируем варианты решения каждой рассмотренной проблемы, критерии выбора решения, и конечно условия перехода проблемы из не идеальной, но промышленно приемлемой, в потенциально опасный для проекта прецедент.
Vivien Ibironke Ibiyemi. Comaqa Spring 2018. Enhance your Testing Skills With...COMAQA.BY
Using real life test stories, I will present to you examples of mindset tools that I have identified, how I have used them to optimize collaboration in software development teams, become a valuable team member and a skilled tester. I will further propose a model that can help individuals develop their own mindset tools depending on the type of environment and product being developed.
Roman Soroka. Comaqa Spring 2018. Глобальный обзор процесса QA и его важностьCOMAQA.BY
Рассмотрим как используется QA в различных аспектах жизни. Поговорим о его основных целях и задачах. Рассмотрим примеры хороших и плохих подходов. Поговорим о рисках.
Roman Iovlev. Comaqa Spring 2018. Архитектура Open Source решений для автомат...COMAQA.BY
Мы поговорим о новых возможностях Open Source фреймворка JDI для Автоматизации UI Тестирования и не только на языках Java, C# .Net и Python. Архитектор проекта расскажет «всю правду» о своем детище, а мы послушаем, сделаем выводы и, возможно, используем это решение для нашего следующего проекта.
Vladimir Polyakov. Comaqa Spring 2018. Особенности тестирования ПО в предметн...COMAQA.BY
This document discusses software testing in the life sciences domain. It notes that life sciences data involves large volumes of data that can be represented in different ways. While there are engineering issues to consider when testing life sciences software, the principles of testing do not differ. Examples are given of types of life sciences software like genome browsers and molecular viewers. The document provides suggestions for test data sources and discusses tools and languages commonly used for automated testing of life sciences software like Java, Selenium, and Python. It also highlights some challenges in automating the testing of things like canvas elements and 3D models. Links are provided to open source projects and demos from EPAM as examples.
Kimmo Hakala. Comaqa Spring 2018. Challenges and good QA practices in softwar...COMAQA.BY
This presentation is based on Kimmo’s experiences in product component QA at Qvantel and it is aimed at everyone willing to know and understand, what are the challenges we’re facing in QA during software product development in BSS & Telco domain and, in the other hand, what are the good practices and success factors, so that we are able to 1. Test the product properly 2. Deliver smoothly and also 3. Continuously improve. The perspective of the presentation is “managerial”. However, we will also discuss about the technical and methodical aspects in component testing like different test levels, methods, test automation, test data management and testing tools. We also take a look at the different expectations towards testing personnel, like documentation, visibility of test activities, re-usable test assets etc. Finally we discuss about the key success factors in QA for software product development.
Дмитрий Лемешко. Comaqa Spring 2018. Continuous mobile automation in build pi...COMAQA.BY
В докладе я расскажу, как был организован запуск автоматических тестов (appium/javascript) в gitlab CI для нативного Android приложения на каждый Merge Request. Опишу, как можно встроить автотесты в существующий процесс сборки, как правильно настроить запуск тестов в docker image (тесты бегут в TestObject облаке), как произошла интеграция с клаудом и какие результаты это принесло. Tech stack: Gitlab CI, kubernetes, android, appium, javascript, testobject.
Ivan Katunov. Comaqa Spring 2018. Test Design and Automation for Rest API.COMAQA.BY
Чем тестирование RESTful API сервисов схоже и чем отличается от тестирования других типов приложений? Какое покрытие тестами является достаточным? Какие лучшие практики существуют для автоматизированного тестирования REST API? Эти и другие темы будут раскрыты в рамках доклада.
Vadim Zubovich. Comaqa Spring 2018. Красивое тестирование производительности.COMAQA.BY
Все, кто когда-либо сталкивался с тестированием производительности, прекрасно знают, как сложно сделать отчеты понятными, хорошо визуализированными и прозрачными для заказчика. Очень важно выбрать "правильные" метрики и разработать нужные профили нагрузки, но если в результате заказчик увидит скучные и непонятные кривые на белом фоне, он вполне может отказаться от тестирования производительности как такового, поскольку результат будет не вполне прозрачен. Давайте посмотрим, как можно улучшить впечатление от результатов тестирования производительности, на примере интеграции JMeter с мощным инструментом визуализации - Grafana.
Alexander Andelkovic. Comaqa Spring 2018. Using Artificial Intelligence to Te...COMAQA.BY
This document discusses using artificial intelligence to test levels in the Candy Crush Saga game. It describes King.com, the developer of Candy Crush, and their use of QA teams. It then covers using AI techniques like Monte Carlo tree search and neuroevolution to have automated bots play levels and provide feedback. This could help level designers, reduce human testing workload, and assist data scientists. Challenges include maintaining the bots and integrating them into King's development process.
Даже если вы - самый мирный человек, конфликты все равно случаются. Как и почему это происходит, можно ли их избежать и как вести себя, если конфликт уже случился - об этом мы поговорим в рамках доклада "Мое место в конфликте". Конфликт - интереснейшее явление, и то, какие он принесет плоды - разрушение или сотрудничество - зависит в том числе и от того поведения, которое мы реализуем. И напоследок вы узнаете о том, как защитить себя, даже если конструктивно выйти из конфликта уже не удалось.
Организация приемочного тестирования силами матерых тестировщиковCOMAQA.BY
Тестировщик и его взгляд на бизнес тестирование. Как охватить необъятное или совместить своё желание всё проверить как в обычном функциональном тестировании и проверку с точки зрения бизнеса. Организация такого тестирования, взаимодействие с командой разработки и тестирования. Какие плюсы и минусы от того, что в UAT тестировании участвуют матерые тестировщики, а не люди, которые эксплуатируют систему.
Развитие специалиста, менеджера - дело добровольное. Равно как и выживание. Приходите на доклад и мы обсудим: а надо ли развиваться, как развиваться, какие подходы и интструменты можно использовать, обсудим тепловую смерть специалиста.
Системный взгляд на параллельный запуск Selenium тестовCOMAQA.BY
Параллельный запуск тестов – не просто желание, но острая необходимость, стандартная задача, с которой рано или поздно столкнется каждый проект, за исключением, разве что, совсем небольших и краткосрочных. Порой, вопрос параллелизации тестов превращается в сложный или даже почти невыполнимый. Давайте поговорим о том, как избежать подобной ситуации: какие рекомендации и инструменты существуют, какую архитектуру стоит выбрать изначально, каких решений следует избегать. Антон попробует ответить на все эти актуальные вопросы и конечно приведет множество примеров для наглядности и практического подтверждения. Мы проговорим «хорошие» варианты параллельного запуска автоматизированных тестов, но так же рассмотрим ситуацию с противоположной стороны «от противного». Проанализируем десяток «плохих» решений по параллелизации на реальных примерах – сложных, медленных, дорогих, неэффективных. Фактически, беседа будет состоять из двух частей: «что такое хорошо и что такое плохо» в примерах, с аргументацией и рекомендациями.
Мы уделяем много внимания темам автоматизации тестирования. Но что, если мы посмотрим на сам процесс нашей работы? Сколько рутинных задач мы выполняем каждый день? Насколько эффективно мы их выполняем? Иван расскажет о своем опыте эффективной работы с подобными ежедневными задачами
A Senior automation engineer should be able to work independently on modules from start to finish and ask the right questions. Key areas for a Senior to focus on include processes, estimations, the Test Pyramid, programming languages, test automation frameworks, improvements, build tools, libraries, coverage, databases, design patterns, best practices, testing types, CI/CD, reporting, metrics, communication, Git, BDD, code review, coding standards, team leadership, conflict management, and business communication. Resources provided include books, presentations, documentation, and Epam webinars to learn about these topics.
В своей презентации я бы хотел рассказать о своем личном опыте в OpenSource. Начиная от контрибьюта в популярные проекты и публикации своих проектов на GitHub до участия в процессе отбора и развития OpenSource решений Презентация позволит взглянуть на OpenSource с разных сторон и понять зачем это нужно как для обычного инженера, так и для большой компании
Мы поговорим о новых возможностях Open Source фреймворка JDI для Автоматизации UI Тестирования. Архитектор проекта расскажет «всю правду» о своем детище, а мы послушаем, сделаем выводы и, возможно, используем это решение для нашего следующего проекта.
Out of box page object design pattern, javaCOMAQA.BY
Самая сложная часть в изучении новой дисциплины - разбираться с основами и базовыми понятиями. Давайте поговорим о самых популярных паттернах, которые используются в автоматизации тестирования UI - Page Object: использование статического и динамического решения, границы применимости и неприменимости, особенности реализации в зависимости от содержания, живые примеры.
2. Марта Веренчикова
Компания
Applied Systems Ltd.
Позиция
QA Engineer (веб-проекты)
Опыт
в IT: 1+
в автоматизации: курсы Академии ПВТ,
начата работа над первым тестовым проектом
Stack технологий
Java + Selenium WebDriver
О ДОКЛАДЧИКЕ
6. Canvas – «безDOM-ный» элемент
<canvas height="1256" width="3584" style="position: absolute; width: 1792px; height:
628px; left: -128px; top: -128px;"></canvas>
CANVAS: В ЧЕМ ПРОБЛЕМА?
7. визуализация
состояния складских
помещений
html5, canvas
(библиотека fabric.js)
до 170 «объектов» в 1
canvas-е
> 50 оттенков и текстур
сложное поведение
«объектов» в canvas-е
(click, hover и пр.)
СПЕЦИФИКА ПРОЕКТА (1)
9. СПЕЦИФИКА ПРОЕКТА (3): ТРЕБОВАНИЯ К
ИСПОЛЬЗОВАНИЮ ВЕБ-ПРИЛОЖЕНИЯ
OS
Разрешение
экрана
Браузер
Полноэкранный
режим
Windows 7
и выше
1920×1280 Google Chrome F11
10. ЦЕЛИ ИССЛЕДОВАНИЯ
Общие:
выбрать оптимальный
подход к поиску,
взаимодействию и
проверке объектов
внутри canvas
подобрать
инструментарий,
позволяющий выполнить
«поиск-взаимодействие-
проверку»
Проектные:
покрыть авто-тестами
наиболее сложный
«функционал»
Что интересовало:
трудозатраты на
разработку и поддержку
стабильность
выполнения
скорость выполнения
масштабируемость
11. координатный подход
Прототип #1
распознавание
изображений
Прототип #2
API библиотеки fabric.js
WebDriver API
Прототип #1 + Прототип #2
изменения в html-
верстке через
WebDriver API
Прототип #1 + Прототип #2
сравнение
изображений
Прототип #1 + Прототип #2
Поиск Взаимодействие Проверка
ПРОВЕРКА
РАЗРАБОТКА ПРОТОТИПА (1): ВЫБОР ПОДХОДА
ПОИСК ВЗАИМОДЕЙСТВИЕ
12. РАЗРАБОТКА ПРОТОТИПА (2): ВЫБОР ТЕСТОВЫХ
СЦЕНАРИЕВ
Тесты атомарны и полностью независимы
Общая часть Тест #1 Тест #2 Тест #3
1. Переход по URL
3. Проверка
состояния canvas
без
взаимодействия
3. Клик по
«целевой» ячейке
внутри canvas
3. Клик по
«целевой» ячейке
внутри canvas
2. Смена
цветового режима
4. Проверка
соответствия
параметров
внутри таблицы с
данными внутри
«целевой» ячейки
4. Проверка
состояния canvas
после
взаимодействия
15. РАЗРАБОТКА ПРОТОТИПА (4): ОТЛИЧИЯ ПРОТОТИПОВ
Прототипы разрабатывались
тестировщиками одного уровня
Действие Selenium SikLenium
Поиск «объектов» в canvas по координатам
по изображению
(класс Region, SikuliX)
Взаимодействие (click) WebDriver API (класс Actions)
Сравнение данных в
таблице WebDriver API
Получение «actual»
изображений интерфейс TakeScreenshot
–
(«на лету»)
Сравнение с «expected»
изображениями
класс PixelGrabber
(java.awt.image)
класс Region (SikuliX)
16. РАЗРАБОТКА ПРОТОТИПА (5): ТЕСТОВОЕ ОКРУЖЕНИЕ
Параметр Selenium SikLenium
Language Java (JDK v.1.8.9_92)
IDE Intellij IDEA 2016.2.4
Build-instrument Maven v.3.3.9
Browsers and Drivers
Google Chrome v. 54.0.2840
chromedriver.exe (v.2.25)
Plug-ins, add-ons FireBug + FirePath (Mozilla Firefox should be installed)
Test Framework TestNG (v.6.9.10)
External Libraries
(via POM-file dependencies)
selenium-java (v.2.53.1) selenium-java (v.2.53.1)
sikulixapi.jar (v.1.1.0)
Reporting Allure
17. РАЗРАБОТКА ПРОТОТИПА (6): ПОДГОТОВКА ДАННЫХ
Данные Selenium SikLenium
Координатная сетка + -
«Базовые» скриншоты
X шт.
(сравнение)
2X шт.
(поиск + сравнение)
html-локаторы общие локаторы (.property-файл)
Значения параметров в
таблице список констант (@DataProvider)
18. РАЗРАБОТКА ПРОТОТИПА (7): АРХИТЕКТУРА
ТЕСТОВОГО ПРОЕКТА
Prototype Selenium Prototype SikLenium
Отличия:
«статический» (Selenium) vs «динамический» (SikLenium) Canvas Page Element
дополнительные helper-классы (Selenium)
накопление «actual» изображений (Selenium)
19. РАЗРАБОТКА ПРОТОТИПА (8): ЗАПУСК ТЕСТОВ
mvn clean test site
последовательно, не
параллельно
конфигурирование –
через параметры
аннотации @Test
20. МЕТРИКИ (1): СРЕДНЕЕ ВРЕМЯ ВЫПОЛНЕНИЯ ТЕСТА, С
1 тест – 100 запусков
100% passed (оба прототипа)
время выполнения Test Suite: 41.23 мин (Selenium) и 41.82 мин (SikLenium)
21. МЕТРИКИ (2): ТЕНДЕНЦИЯ РОСТА ВРЕМЕНИ
ВЫПОЛНЕНИЯ ТЕСТОВ ПРИ УВЕЛИЧЕНИИ НАГРУЗКИ
С увеличением нагрузки на машину (CPU Usage, Physical
Memory) наблюдается тенденция к росту времени выполнения
тестов
22. Test Name Selenuim SikLenium
Test #1 Passed – 100% Passed – 100%
Test #3
Passed – 100% Passed – 20%
Failed – 80%
МЕТРИКИ (3): ПРОХОЖДЕНИЕ FALSE-POSITIVE
ПРОВЕРКИ
Test #1, Test #3
«ложный» expected image
1 тест – 100 запусков
similarity = 0.99
23. Test Name Selenuim vs Manual SikLenium vs Manual
Test #1
98.4% 98.4%
Test #2 67.2% 68.6%
Test #3 64.2% 60.9%
МЕТРИКИ (4): ВЫИГРЫШ ПО ВРЕМЕНИ ПРИ
ВЫПОЛНЕНИИ ТЕСТОВ (MANUAL VS AUTOMATION)
24. СРАВНЕНИЕ ПРОТОТИПОВ (1)
Параметр Selenium SikLenium
Время разработки прототипа (ч) X 2X
«Базовые» скриншоты X шт. 2X шт.
Расчет координатной сетки да нет
«Сторонние» библиотеки -
sikulixapi.jar (v.1.1.0)
Необходимость разработки
методов получения и сравнения
скриншотов
да нет
Скорость выполнения тестов схожие значения для обоих подходов
Стабильность выполнения все хорошо до определенных значений нагрузки
Надежность выполнения (false-
positive tests)
все «ложные» проверки пройдены
зависит от similarity, «ложного»
скриншота и «ожидалок»*
Трудозатраты на обновление
зависит от «изменяемой» части
(поведение, цвет, форма и расположение и пр.)
Масштабируемость (в рамках
приложения)
зависит от тестируемой страницы приложения*
25. СРАВНЕНИЕ ПРОТОТИПОВ (2)
Параметр Selenium SikLenium
Зависимость от разрешения
экрана да*
Зависимость от уровня
zoom браузера да
Формат скриншотов .png (по умолчанию), .jpg (также работает)
Глубина цвета изображения 24-bit (по умолчанию), 32-bit (также работает)
Размер изображения (в пк) 2 сравниваемых скриншота должны быть одного размера
Разрешение изображения
(dpi) 96 DPI (использовался для 2 прототипов)
Влияние наличия
«идентичных» элементов
на экране
нет
возможно*
Возможность управления
точностью сравнения
изображений
нет
да
(similarity)
26. setup необязателен (via
POM-файл)
«коварная» similarity
документация – хорошо,
но FAQ – порою лучше
название image-файлов
без символа «_» и пр.
driver.manage().window().
fullscreen() не работает
в ChromeDriver
настройки компа: front
size, DPI и пр.
SikuliX Selenium
WebDriver
General
GENERALSIKULIX SELENIUM
WEBDRIVER
НАБИТЫЕ ШИШКИ
27. Трудности Selenium:
разработка методов для
работы со скриншотами
координатная сетка
Трудности SikLenium:
дополнительные
зависимости (SikuliX,
OpenCV)
сложность работы с
similarity
1 2 3
ВЫВОДЫ (1)
Оба подхода:
имеют ряд недостатков
и ограничений
требуют заготовки (и
обновления) «expected»
изображений (! в разном
объеме)
28. Для условий нашего
проекта мы выбрали
прототип Selenium
(координаты +
взаимодействие via
WebDriver API +
сравнение скриншотов
и изменений в html).
Учитывая
возникшие сложности
(влияет на t разработки)
специфику сравнения
изображений с параметром
similarity (надежность
результатов ???)
общность проблем
(зависимость от screen
resolution и пр.)
отсутствие очевидного
выигрыша по времени у
какого-либо из подходов
возможность
переиспользования
координатной сетки (с/без
коэффициентов)
невозможность предугадать,
какие изменения наиболее
вероятны
ВЫВОДЫ (2)
29. ИСПОЛЬЗУЕМЫЕ МАТЕРИАЛЫ
Тестирование приложений на Canvas: рецепты на примере тестирования
API Яндекс.Карт (https://habrahabr.ru/company/yandex/blog/177163/)
Тестирование безDOMных объектов современных веб-интерфейсов. SQA
Days12 (https://www.youtube.com/watch?v=aLUXFcYKq2Y)
Тестируем Canvas c помощью Sikuli Script и Selenium WebDriver
(http://www.slideshare.net/ISsoft/html5-canvas-sikuli-selenium-2-web-driver)
Visual vs. DOM-Based Web Locators: An Empirical Study (14th International
Conference, ICWE 2014)
Visual GUI Testing: Automating High-Level Software Testing in Industrial Practice
(2015) (http://publications.lib.chalmers.se/records/fulltext/221145/221145.pdf)
Практическое применение Sikuli Script в автоматизации тестирования. SQA
Days16 (https://comaqa.by/2016/06/02/sikuli-script-sqadays16/)
Библиотека fabric.js (http://fabricjs.com/)
Информация о SikuliX (http://sikulix.com/ и http://sikulix-
2014.readthedocs.io/en/latest/index.html)