Как реализовать в тестовом сценарии условие if

Да не заморачивайся. Сделай чтобы было НЕ passed

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

у меня может быть такое состояние системы но крайне редко. Я вот и хотел обработать такую “ошибку”. Хотя по сути да можно пересмотреть этот вариант. Хотелось просто решить такую задачу на таком конкретном примере =)

Стандартными средствами в процессе выполнения теста нельзя его пометить skipped (если не прав - поправьте). Если важно помечать тест именно как skipped, и если Вы используете TestNG, для этого тест нужно разбить на более мелкие тесты и установить между ними зависимости.
Пример:

@Test
public void test1()
{
  // some actions
}

@Test(dependsOnMethods="test1")
public void test2()
{
 // some actions
}

В данном случае тест test2() будет выполнен в том случае, если тест, от которого он зависит (test1()), будет успешно выполнен. Иначе - тест test2() будет помечен как skipped.

Можно Listenter-ы в TestNG свои повесить. Но тут надо очень четко понимать для чего это делается. Как правильно написал выше @vmaximv, в данном случае skipped будет скорее вреден, чем полезен

Спасибо всем =) кстати depends насколько я знаю не совсем удачно потому как тесты должны быть независимы друг от друга.

Для меня они важны и очень помогают. Нужно пробовать конкретно для своего случая.

Делать if / else для того, чтобы уйти в logout без единого assert’a -> тест который, ничего не тестирует. Писать тесты, основанные на случайных кондишенах, - моветон, ибо expected result будет совсем unexpected.
Ваш вариант: приведение системы в пригодное для тестирования состояние аля precondition, либо assertTrue(getElementsCount() > 0); -> Other steps.

По поводу skip - у testNg есть SkipException. Кидаете его - и тест будет помечен как скипнутый.
Аналог в junit - assumeTrue с передачей ему false.

2 лайка