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

Подготовка к сертификации ISTQB FL
онлайн, начало 10 августа
Тестирование REST API
онлайн, начало 10 августа
Автоматизация функционального тестирования
онлайн, начало 7 августа
Тестирование веб-приложений 2.0
онлайн, начало 7 августа

Petrov.Sergey

Регистрация: 11 июл 2013
Offline Активность: 05 окт 2017 14:54
-----

Мои сообщения

В теме: Что проще: найти хорошего автоматизатора или вырасти своего?

12 апреля 2016 - 15:38

На личном небольшом опыте выяснилось, что вырастить своего автоматизатора проще и дешевле, чем искать готового обученного

В теме: Тестирование метода с нативными функциями (phpunit)

07 января 2016 - 07:42

метод - это чёрный ящик.

Есть что-то на входе и есть что-то на выходе.

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

 

Поэтому используй тест-анализ:

- какими могут быть входные данные? Есть ли "граничные" значения? Не забудь проверку на NULL. Не забудь про нетипизированность РНР.

- какими могут быть выходные данные? Разбей на классы эквивалентности и реализуй те тесты, которые на выходе дают объекты из каждого класса эквивалентности.

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

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


В теме: Ожидание изменения текста в элементе

01 декабря 2015 - 18:05

 

Попробуйте сделать ожидание на существование элемента с конкретным текстом или значением.
Например - ждем ссылку с текстом Save. Для этого просто пишем соответствующий локатор (Как написал все, заметил что Petrov.Sergey это и предлагает :smile:):

WebDriverWait waitLinkSave = new WebDriverWait(driver, TimeSpan.FromSeconds(30));//Ждем 30 секунд, например
waitLinkSave.Until(ExpectedConditions.ElementExists(By.XPath(//a[contains(text(), 'Save')])));//Указываем что ждем ссылку с текстом "Save"

Хотите прикол? Вы ищете по ключевому слову contains(...)

Строка "10568" содержит строку "1".

То есть "10568".contains("1") = true

В Вашем примере ссылка с текстом "Save text" будет найдена (ожидание сработает), но это будет совершенно не тот элемент, который нужен.

 

Топикстартеру нужно точное совпадение.

 

Ну, возможно, я нечётко описал. У меня значения выдёргиваются из базы. Произвожу поиск, в основном, там 1 (но бывает 2 и 3). Элемент после первого появления есть всегда и не исчезает, меняю критерий, появляется большее число. Т.к. элемент не меняет никаких атрибутов, то я использую ожидания, чтобы убедиться, что поиск вернул результат, а потом проверяю. Время поиска 2-40 секунд.

 

1) "произвожу поиск, в основном, там 1 (но бывает 2 и 3)"

Вопрос: как производите поиск?

 

2) "Элемент после первого появления есть всегда и не исчезает. Меняю критерий, появляется большее число."

Вопрос: какой критерий меняете? На что? Откуда появляется большее число? На основании чего оно появляется?

 

3) "Т.к. элемент не меняет никаких атрибутов, то я использую ожидания".

Знаете, со стороны это звучит как "В огороде бузина, а в Киеве дядька"

 

4) "я использую ожидания, чтобы убедиться, что поиск вернул результат"

Ожидание может и не найти элемент, вылетев по таймауту. А точнее, по времени IMPLICITLYWAIT

 

5) "я использую ожидания, чтобы убедиться, что поиск вернул результат, а потом проверяю".

Что проверяете? Что поиск вернул результат? Так за Вас это уже сделало ожидание - либо вернёт найденный элемент (значит, результат есть), либо вылетет (значит, результата нет).

 

6) "Время поиска 2-40 секунд"

40 секунд время поиска?!  :shok:

Переписывайте тест!


В теме: Нафига вы спрашиваете на чем написан был продукт?

30 ноября 2015 - 18:27

@#$% чувак, ты огонь! Кланюсь в пол =))))

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

Нет, это не единичный случай.

Я тоже на 80-90% бэкендщик. И у меня тоже случаются различные детективчики.

 

А вопрос "на чём было написано тестируемое Вами приложение", например, может иметь такой подтекст: сумеешь ли ты читать код, чтобы получше разобраться в ошибке?

Или: Если знаешь, на чём было написано ПО, значит можешь знать тонкости языка => сможешь бить по "больным местам".

 

Например, РНР нетипизированный, в котором '' == null == 0 == false. И я своих коллег поначалу не раз на этом ловил.

Любой вопрос, даже если Вы не понимаете его смысла или "зачем его задали" имеет свою какую-то подоплёку.


В теме: Ожидание изменения текста в элементе

30 ноября 2015 - 17:28

Предложение:

Фактически, топикстартер ожидает, что на странице через какое-то время будет конкретный элемент с текстом.

Повторюсь: не "элемент изменит текст на «...»", а "появится элемент с текстом «...»"

То есть достаточно в локатор передать дополнительное условие, что text() = '1', и использовать presenceOfElementLocated(By locator)

 

И не надо изобретать свои велосипеды — главное правильно задать вопрос.


Яндекс.Метрика
Реклама на портале