Перейти к содержимому

Публикации checo

71 публикаций создано checo (учитываются публикации только с 28 сентября 2023)



#174923 Perfomance тестирование web-сайта на Selenium?

Отправлено автор: checo 20 декабря 2019 - 15:07 в Автоматизированное тестирование

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

Вы рискуете написать тесты, на которые потратите кучу сил, и которые не будут давать нужной информации: что именно фиксить?

 

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

 

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




#172716 Сборка Maven проекта в jar файл

Отправлено автор: checo 25 июня 2019 - 14:41 в Автоматизированное тестирование

Этого всего писать не нужно. Maven сам умеет запускать тесты и подсчитывать результаты.

Если честно, пытался вспомнить, когда и где я его начинал изучать, но не вспомнил. Явно не по документации - она слишком мутная для начального этапа.

Ищите в сети уроки и статьи по ключевым словам "maven surefire junit" - их там много.




#172735 Сборка Maven проекта в jar файл

Отправлено автор: checo 26 июня 2019 - 09:30 в Автоматизированное тестирование

 

но всё равно он не запускается(((

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




#173814 О количестве проверок функциональности

Отправлено автор: checo 20 сентября 2019 - 13:03 в Начинающему тестировщику

В адекватных конторах цель одна: посмотреть, как кандидат будет рассуждать.

Если возникают варианты, так и напишите, что в разных условиях будут разные варианты.

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




#172033 Как проверить правильность генерируемого страницей html

Отправлено автор: checo 01 мая 2019 - 18:50 в Selenium - Functional Testing

Сохранить во временную папку и открыть как URI "file:///..."?

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

 

Если еще актуально.

Я не знаю всех тонкостей настройки протрактора. Но вот такой хеллоуворлд у меня заработал:

var my_html = '<html><body><h1>MY PERFECT PAGE</h1><pre>1\n2\n3</pre></body></html>';
browser.waitForAngularEnabled(false);
browser.get('about:blank');
browser.executeScript('document.write(arguments[0]);', my_html);



#172697 Сборка Maven проекта в jar файл

Отправлено автор: checo 24 июня 2019 - 13:38 в Автоматизированное тестирование

Что такое "при сборке"? Таргет какой вызываете? (по логу не видно).

Idea, может быть, просто compile делает, а надо package.




#171955 Как проверить правильность генерируемого страницей html

Отправлено автор: checo 25 апреля 2019 - 14:34 в Selenium - Functional Testing

Сохранить во временную папку и открыть как URI "file:///..."?




#171614 java selenium яндекс карты

Отправлено автор: checo 08 апреля 2019 - 13:40 в Автоматизированное тестирование

Не работал, но автоматизируя чужую разработку, стабильных тестов никогда не напишете. Сами работники Яндекса писали, что тестируют через сранение скриншотов, но они-то могут проконтролировать, когда у них представление карт поменяется, или подкладывать тестовые данные. А вы будете работать с "живыми" картинками, где объекты будут появляться и исчезать непредсказуемо при обновлении публичных карт.

 

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




#175269 Скопировать пин код из письма и вставить

Отправлено автор: checo 21 января 2020 - 12:18 в Selenium - Functional Testing

Тогда как корректно скопировать в буфер и потом вставить с "paste"?

Вот тут есть пример, как нажимать сочетания клавиш:

https://selenium-pyt...Chains.key_down




#171805 Не могу получить данные из инпута через getText();

Отправлено автор: checo 15 апреля 2019 - 10:07 в Автоматизированное тестирование

Скорее всего, нужен не getText(), а getValue().




#171867 Не могу получить данные из инпута через getText();

Отправлено автор: checo 18 апреля 2019 - 10:01 в Автоматизированное тестирование

Забавно, в Python прекрасно работает вот это:

from selenium.webdriver import Chrome

d = Chrome()
d.get('http://software-testing.ru/forum/index.php?/topic/37942-ne-mogu-poluchit-dannye-iz-inputa-cherez-gettext/')
main_search = d.find_element_by_id('main_search')
main_search.send_keys('12345')
print('Value=' + main_search.get_property('value')) # Value=12345
d.quit()

А в Java реализии аналогичной команды в интерфейсе WebElement не нашел. Хотя до сих пор думал, что реализация на Java наиболее полная.

 

(Поправочка: get_attribute тоже работает. Это при том, что атрибут в DOM изначально не задан.)




#175233 Скопировать пин код из письма и вставить

Отправлено автор: checo 20 января 2020 - 08:42 в Selenium - Functional Testing

Для этого и привложу к str: str(),+ это значение добавляю в буфер

А где в документации pyperclip сказано, что copy что-то возвращает?




#174666 Как грамотно построить архитектуру автотестов?

Отправлено автор: checo 29 ноября 2019 - 11:52 в Автоматизированное тестирование

Всем доброго времени суток! Не первый раз слышу от многих (более опытных) коллег в сети, что нужно строить архитектуру автотестов так же как и архитектуру основного ПО, в том смысле, что (внезапно) автотесты - это точно такое же ПО (только более узкоспециализированное) и оно подвержено точно таким же проблемам и особенностям как и обычное ПО. Есть наиболее распространенные паттерны проектирования, такие как, например, PageObject'ы, DataProvider'ы, etc. Как это всё более-менее грамотно объединить/построить, чтобы через N лет не выбросить автотесты совсем или потом не хвататься за голову при внесении незначительных изменений в один тест?

 

Рассмотрим альтернативу выбрасыванию :wink:

Если ПО развивается, тесты придется развивать параллельно с ним. Тесты, работаюшие через N лет - это фантастика.

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

А если по теме вопроса - "Как это всё более-менее грамотно построить", то этого не рассказать на форуме.

Читайте книги, например Р. Мартин "Чистый код" и "Чистая архитектура", и черпайте из них то, что кажется уместным для тестирования.




#173376 как продолжить выполнение скрипта, если 1 тест кейс упал

Отправлено автор: checo 20 августа 2019 - 10:33 в Selenium - Functional Testing

Давайте начнем с того, что называется скриптами, а что кейсами.

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

 

Тут можно предположить, например, такие варианты:

  • Вы называете кейсами что-то другое
  • Вместо вызова раннера у вас написан просто последовательный вызов тестов в main (не надо так)
  • Настроена остановка после первой ошибки



#172717 Winium Desktop Driver не находит окно

Отправлено автор: checo 25 июня 2019 - 14:48 в Автоматизированное тестирование

Смутно помню, что поиск по классу тоже сбоил. Попробуйте поискать по XPath ".//*[@ClassName='TfrmMain']". По крайней мере, в моем проекте остались локаторы именно такого вида. Если никак, то придется искать другие признаки для поиска.




#173336 Поиск удивительного софта

Отправлено автор: checo 15 августа 2019 - 14:50 в Инструменты и технологии

Не обязательно руководство. Я вполне готов понять такое стремление у тестировщика.

 

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

Мысль красивая, но есть проблемы:

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

- Очень быстро столкнетесь, что придется описывать сложное поведение системы, и поддержка такого решения обойдется дорого.

- И да, насчет извращений: я знаю очень похожий инструмент, и он у нас сих пор жив (правда, он закрытый и сделан для очень специфичного софта). Но почему-то он оказался востребован у очень малой доли людей на проекте. Большинство пишут руками. Дело в ограниченности поддержанных функций, а добавлять туда новое и нестандартное поведение действительно дорого.




#172708 Winium Desktop Driver не находит окно

Отправлено автор: checo 25 июня 2019 - 10:31 в Автоматизированное тестирование

На скриншоте не видно, что за ошибка, и в каком месте она появляется.

Если в том месте, которое помечено комментарием ("//Здесь проверяем, что элемент mainWindowBy существует"), то зависит от того, было уже окно на экране или только что появилось.




#175234 Как прикрутить WebdriverManager к Splinter?

Отправлено автор: checo 20 января 2020 - 09:02 в Selenium - Functional Testing

Документация для Splinter какая-то бедная.

 

Конструктор для Browser выглядит так:

def Browser(driver_name="firefox", retry_count=3, *args, **kwargs)

Почему вы пытаетесь вставлять путь вместо driver_name или retry_count, непонятно.

Но и в документации добавочные аргументы нигде толком не описаны.

Покопавшись, можно найти, что путь к браузеру надо вставлять с именем аргумента executable_path.




#175295 Не получается составить работающий css

Отправлено автор: checo 22 января 2020 - 12:33 в Про тестирование обо всём подряд

В первом случае @class="..." - четкое совпадение. Во втором - может быть больше классов в атрибуте, или другой порядок классов.




#172931 Как писать тест-кейсы для автотестов или как сделать так, чтобы они пи

Отправлено автор: checo 15 июля 2019 - 16:14 в Автоматизированное тестирование

  1. а. Вы не отказываетесь от тест-кейсов. В стандартном подходе автоматизация - это те же тест-кейсы, только в виде скрипта.
    б. С гуглотаблицами может быть проблема. Это не общепринятый формат, придется клепать свои адаптеры или договариваться с заказчиком, чтоб принял ваш формат.
  2. Наверное, вот именно. Даже на моем текущем сильно забюрократизированном проекте считается, что автоматические кейсы могут служить документацией сами для себя.
  3. Непонятно. Вы собрались делать 100% автоматизацию? Так обычно не делают, хотя зависит от специфики продукта.

Есть известные подходы, и это:

  • BDD (или keyword-driven, с использованием тех же инструментов)
  • Allure
  • Robot Framework

Из личного опыта: на одном проекте писали на Gherkin, и был самописный скрипт по импорту-экспорту этих скриптов между репозиторием и системой управления проектом. Не прижилось: в итоге решили, что можно всё оставить в репозитории и не синхронизировать.

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




#171573 ImplicitWait не ждет больше 60 сек

Отправлено автор: checo 05 апреля 2019 - 09:03 в Selenium - Functional Testing

Возможно, это и правда дефект в драйвере или в браузере.

 

Но это совершенно неважно. Неявные ожидания по минуте никто не использует. Что у вас за софт такой, где каждый, абсолютно каждый элемент нужно ждать по минуте? С таким софтом просто невозможно работать.

 

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




#174594 Экзамен ISTQB в России

Отправлено автор: checo 25 ноября 2019 - 18:12 в Свободное общение

@checo привет, спасибо за ответ! прислали уже мейл, я спокойна :) экзамен в субботу. как давно ты сдавал? сложный был экзамен?

Сдавал уж несколько лет как. Насчет сложности - очень субъективно могу сказать, что да, сложнее, чем образец. Во-первых, психологически напряжение больше. Во-вторых, некоторые задачки были сложнее, чем в пробниках (просто более объемные кейсы для тестирования). В-третьих - теоретические вопросы неожиданные: тренируешься на одном наборе, а выпадают из разряда "точно помню, что это было в силлабусе, но именно это не помню".




#174576 Экзамен ISTQB в России

Отправлено автор: checo 23 ноября 2019 - 11:50 в Свободное общение

Привет!

Они присылают извещение за 5 дней. То есть, если экзамен в субботу, то письмо будет только в понедельник.

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

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




#172733 Selenium. Chromedriver. user-data-dir. Java. Как хранить Cookies?

Отправлено автор: checo 26 июня 2019 - 09:15 в Selenium - Functional Testing


Так а почему вот этот код то не работает????

 

Так а где в этом коде собственно сохранение и восстановление куки, то есть "Блок-2"?




#175267 Save screenshot on test failure in python with 'splinter'

Отправлено автор: checo 21 января 2020 - 12:07 в Selenium - Functional Testing

падения нет, но и скриншот нигде не появляется

Так это же логично, правда? Откуда он должен появиться без падения?