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

Публикации checo

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



#172450 Имитация авторизации с разных имейлов (Jmeter)

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

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

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

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




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

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

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




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

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

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

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




#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 изначально не задан.)




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

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

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




#172082 Составление схемы состояний системы

Отправлено автор: checo 07 мая 2019 - 16:34 в Начинающему тестировщику

 

Так вот, есть ли в дисциплине тестирования ПО какие-то методики, позволяющие постепенно составить схему развития состояний системы, чтобы максимально

покрыть все варианты развития событий?

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

 

Что можно сделать:

- Для начала, отделить те проверки, которые не относятся к "развитию событий", а проверяют единовременное влияние каких-то условий ("Сама сумма предоплаты (полная/частичная) зависит от суммы заказа", "от места нахождения товара и суммы заказа зависит, включена ли в стоимость доставка" и т.п.)

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

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

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




#174593 Jmeter отправляет меньше запросов чем должен по настройкам Thread grou

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

Может быть, вот этот доклад чем-то поможет.




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

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

Привет!

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

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

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




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

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

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

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




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

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

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

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

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




#171358 Внезапное зависание страницы

Отправлено автор: checo 19 марта 2019 - 15:18 в Свободное общение

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

 

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




#172734 Как избежать повторяющихся проверок и шагов в тестировании

Отправлено автор: checo 26 июня 2019 - 09:27 в Тест-дизайн и ручное тестирование

Дайте угадаю, у вас много тестировщиков и единое на всех тестовое окружение?

Если проблема переиспользования данных не в этом, то тогда в чём? База данных очищается при деплое или что-то подобное?

 

Мы проблему с одним порталом на команду так, что каждый создает свои личные группы объектов (на тестируемом портале такое было), и никто в чужие не лезет. Соответственно, всегда можно переиспользовать свои исходные данные. Или можно как-то имена/номера резервировать.

 

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




#171348 RESTfull Api Автотесты. IDE java.

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

Когда передаете в body объект, он автоматически пытается преобразовать его в XML с помощью JAXB. JAXB требует определенных аннотаций.

 

Если хотите форматировать строку самостоятельно, так и пишите: dc.toString().getBytes()




#175747 Где искать?! Помогите, пожалуйста!

Отправлено автор: checo 02 марта 2020 - 15:49 в Круглый стол о работе в тестировании ПО

В аудитории Хабра электронщики есть. Сходите на Тостер.




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

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

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




#173327 Тестирование локализации

Отправлено автор: checo 15 августа 2019 - 08:27 в Про тестирование обо всём подряд

Статья - прекрасный пример того, что проверять перевод с носителями языка не менее важно, чем разметку. Speichere? Accuell? Вы серьёзно? И это я еще языки плохо знаю - просто то, что в глаза бросилось. Что уж говорить о переводах на какие-нибудь азиатские языки со своими системами письма, в которых даже просто сверить слова с образцом уже непросто.




#172698 Selenium + Winium.Desktop.Driver получить данные формы

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

Да, здесь та проблема, что динамическому контенту в списке ID не задашь заранее.

 

Можно найти сам список по ID и перебором отыскать элемент с нужными свойствами.

 

Можно придумать хитрый поиск по XPath. Там хитрость в том, что имена нодов задавать часто бесполезно, и приходится использовать звёздочку, а условия поиска задавать в атрибутах. Пример есть тут: https://github.com/2...ts/FindTests.cs




#173088 Подскажите как в Jenkins ставить запуск определенного тега

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

Потому что надо добавлять не в виде

--tags "@production"

а в виде

-Dcucumber-options="--tags '@production'"

(Попробовать сам сейчас не могу, пишу по своим старым докам. Может быть, не сработает - тогда кавычки как-то по-другому надо поставить, или действительно cucumber.options с точкой, а не с дефисом.)

 

UPDATE:

Нашел еще такой вариант: всё, передаваемое кукумберу, стоит в кавычках. И да, там с точкой.

"-Dcucumber.options= --tags @T5555 --tags ~@longRunning"



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

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


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

 

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




#172702 Selenium WebDriver - Не получается выбрать элемент в выпадающем меню

Отправлено автор: checo 24 июня 2019 - 16:37 в Selenium - Functional Testing

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

 

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

 

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

 

Еще локаторы с div, конечно, малочитаемые. Сложно понять, тот ли элемент они находят. Если еще не видели, рекомендую посмотреть доклад.




#172162 При вызове метода current_url подтягивается url до redirect

Отправлено автор: checo 15 мая 2019 - 15:43 в Selenium - Functional Testing

Добрый день!

Задача проверить, что кейс выполнен успешно и перешел по успешному url. Стек webrdriver+python

Есть страница, после заполнения и отправки данных, если все ок, то браузер переходит на success_url

Я сохраняю текущий url, нажимаю кнопку отправить и жду перехода на новую страницу. В проверке сравниваю страницы

Скрытый текст

 

Тест не проходит. Смотрю в отладчике и почему-то в current_url сохранена ссылка до редиректа. А в driver.current_url хранится нужный url. Почему так происходит? Что нужно сделать, чтобы страница взяла верный url. Может нужно изменить ожидание? 

Смотрим реализацию в гитхабе:

@property
def current_url(self):
    return self.execute(Command.GET_CURRENT_URL)['value']

https://github.com/S...te/webdriver.py

 

Т.е., в отладчике, когда смотрите driver.current_url, команда драйверу посылается заново, и видно обновленное значение.

Почему оно не обновляется сразу после ожидания? Возможно, ожидание срабатывает на какую-то другую, более раннюю смену ссылки.

Что делать? Ну, например, написать своё ожидание. Explicit is better и всё такое.




#174789 WebTours Jmeter корреляция

Отправлено автор: checo 05 декабря 2019 - 10:55 в JMeter - Тестирование производительности

Действительно ли в теле ответа на первый запрос есть такой элемент? (Может быть, там идет редирект, или value заполняется скриптом.)

Соответствует ли то, что приходит, регулярке на 100% (пробелы и т.д.)?




#174792 WebTours Jmeter корреляция

Отправлено автор: checo 05 декабря 2019 - 12:01 в JMeter - Тестирование производительности

vugen - это vugen. Может, он полностью движок браузера имитирует.

Вы смотрите, что в Jmeter в response приходит.




#174808 WebTours Jmeter корреляция

Отправлено автор: checo 06 декабря 2019 - 14:46 в JMeter - Тестирование производительности

Это на самом деле может быть ошибка на сайте. Если то же самое делать в браузере (естественно, с открытой вкладкой Network), можно увидеть, выдает ли этот запрос 404 в нормальном состоянии.




#174795 WebTours Jmeter корреляция

Отправлено автор: checo 05 декабря 2019 - 12:55 в JMeter - Тестирование производительности

Что и требовалось доказать. Куча редиректов, и настоящая разметка приходит по факту совсем с другого адреса.

 

Теперь вопрос: а к чему в этом дереве применяется постпроцессор?

Видимо, не к тому, что подсвечено на скриншоте, а только к первому запросу.

Если настройка "Apply to sub-samples" не поможет, тогда делайте запрос именно на тот адрес, с которого приходят данные.