Size: a a a

QA — Автоматизация

2020 October 26

М

Муслим in QA — Автоматизация
драг-н-дропаю остюда - сюда
источник

AD

Artem Dmitrienko in QA — Автоматизация
Доброго дня. Подскажи по аллюру, нужно собрать в один отчёт все отчёты сгенерированные team city в разных build configuration. Есть способ как то агрегировать результат? В идеале хотелось бы получить некий суммированный отчёт за срок к примеру в 3 дня.
источник

ИК

Иван Квашнин... in QA — Автоматизация
Используете ли вы Cypress ?
Анонимный опрос
11%
Да
58%
Не
31%
Что это такое ?!
Проголосовало: 176
источник

ДХ

Дмитрий Ходаковский... in QA — Автоматизация
Муслим
Что-то даже на шаге 2 у меня элемент не сдвинулся:
actions().moveToElement(status).clickAndHold().moveToElement(status , 250 , 10).build().perform();
actions().release().build().perform();

при этом статус является:
<div class="jss2336" draggable="true">Статус</div>
Добрался до кода
new Actions(driver)
.clickAndHold(driver.findElement(By.xpath("/html/body/div[1]/div/div/div/div[3]/div[1]/div[1]/div[2]/div/div/div/..")))
.moveByOffset(10,10)
.moveToElement(secondColumnStickers)
.release().perform();
источник

MO

Max Olsson in QA — Автоматизация
Вопрос по конкуретной работе с хром-драйвером в Java.
Понятно, что в общем случае один тест - один основной поток* - один экземпляр драйвера.

Но когда действие приводит к двум разным результатам, например сообщению об ошибке или сообщению об успехе, удобно пустить их в двух параллельных потоках* и вернуть первое же найденное сообщение (когда это сделано  разными div'ами в самой странице).

Так вот, нет ли никаких проблем с конкарренси у драйвера, если два потока будут искать элементы? Именно совершение действий, многопоточное естественно не будет.

* джавовые треды я естественно не использую, использую фьючи и тредпулы.
источник

EB

Evgenii B in QA — Автоматизация
Не очень понятно зачем один и тот же тест запускать в параллели
источник

MO

Max Olsson in QA — Автоматизация
Затем, чтобы параллельно искать разные элементы
источник

EB

Evgenii B in QA — Автоматизация
Почему запуск одного и того же теста ищет разные элементы?
источник

А

Алексей in QA — Автоматизация
Evgenii B
Почему запуск одного и того же теста ищет разные элементы?
он типа пытается экшены запаралелить внутри теста, чтобы быстрее искать.
источник

MO

Max Olsson in QA — Автоматизация
У меня есть например ClientsPage и действие deleteClient которое возвращает DeleteClientErrorDialog или DeleteClientConfirmDialog
Ну образно.
источник

MO

Max Olsson in QA — Автоматизация
Используя систему типов, я могу выразить, что deleteClient возвращает либо DeleteClientErrorDialog, либо DeleteClientConfirmDialog
источник

EB

Evgenii B in QA — Автоматизация
Так это 2 теста.
источник

MO

Max Olsson in QA — Автоматизация
Далее тест уже проверяет, что было возвращено
источник

MO

Max Olsson in QA — Автоматизация
это и так два теста, только метод в ClientsPage один
источник

SV

Stanislav Vasenkov in QA — Автоматизация
Max Olsson
У меня есть например ClientsPage и действие deleteClient которое возвращает DeleteClientErrorDialog или DeleteClientConfirmDialog
Ну образно.
Не усложняете на ровном месте?
источник

EB

Evgenii B in QA — Автоматизация
распараллелить тесты, взять selenoid
источник

MO

Max Olsson in QA — Автоматизация
Действие по удалению клиента я написал точно так же, как и написал бы обычный метод, в каком-нибудь репозитории.
Может быть либо успех, либо ошибка.
Помоему так проще.
источник

А

Алексей in QA — Автоматизация
давно селен не трогал но как я помню проблем с параллельной работой с деревом там не было каких то особых. Другое дело что особого буста по скорости это не давало
источник

MO

Max Olsson in QA — Автоматизация
Да это наверное больше не для скорости, а для выразительности.
Я просто надеюсь что хром драйвер не упадёт пока на одной и той же странице два потока искать будут. Пока вроде не падал.
Прочий весь инпут однопоточный естественно будет.
источник

EB

Evgenii B in QA — Автоматизация
1 тест:
- подгтоавливаем контекст успешно
- дергаем метода A.b()
- чекаем появление диалога

2 тест,
- подготавливаем контекст для появления ошибки
- дергаем A.b()
- чекаем появление ошибки

2 теста, параллелить через докер. остальное выглядит костыльно и не стоит свеч имхо
источник