Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Current »

Что тест содержит

  • dbStart
  • Etalon
  • feature.params.xml

dbStart 

Стандартный, перечисляем в нем все нужные таблички БД — folk, device. 

Etalon

Эксель со страницами:

  • Search – соответствует обычному поиску.
  • Extended Search – соответствует расширенному поиску.
  • Sorting – сортировка.
  • ByField – фильтрация по колонкам (Field — наименование поля из java-класса).

Пример страницы "Поиск":





Q_1Q_2...Q_N
ФИО...Автор измененийIDЕЛЕНАТест... Query N
Морозова Елена Викторовна

11

1
Галкина
Тест211
1

Пример страницы "Сортировка"




S_1S_2...S_N
ФИО...IDsurname ASCpatronymic DESC...Пол
Морозова Елена Викторовна
121
 1
Галкина
212
 1


  • ID - поле, по которому будет сравнение, ID party.
  • Слева от него - вся вспомогательная информация, которая может помочь при составлении кейсов.
  • Query N - некий запрос, например, "Морозова". В тех ячейках, party которых запрос должен вернуть, ставится значение 1, в остальных пусто — запрос не возвращает этих контрагентов.
  • Q_ID - уникальный идентификатор запроса в рамках всего теста. То есть первая строка в эталоне — это просто названия тестов. Они нужны, если что-то упадет, чтобы понять, что именно развалилось. Правила наименования — без русских букв и пробелов. А в остальном как хотите, главное, чтобы название было уникально

ID записей в Etalon и в dbStart совпадают.

feature.params.xml

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

Пример файла:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    <bean id="toComplexSearchDescriptor.test_51_01_complex_search" parent="toComplexSearchDescriptor.party">
        <constructor-arg index="0" value="BySurname:RegExp_All + ByActualityDate:EMPTY"/>
    </bean>
</beans>

При запуске теста с таким конфигом будут проверены не все комбинации, а только конкретная – запрос с Q_ID = RegExp_All с листа BySurname + запрос с Q_ID = EMPTY с листа ByActualityDate

Как работает тест

  1. Однократно загружает все записи из dbStart, в котором информация представлена в обычном для БД виде.
  2. Проверяет все одиночные запросы для каждой страницы из etalon, сравнивая полученные записи с ожидаемыми (напротив которых для данного запроса стоят единички в Etalon).
  3. Генерирует сложные тест-кейсы для всех возможных парных комбинаций функций поиска, фильтрации и сортировки. (Единственная невозможная пара - это одновременное использование Поиска и Расширенного Поиска). Пример: "Поиск" + "Фильтрация" или "Расширенный поиск" + "Фильтрация по полю". 
  4. Рассчитывает на основе эталона ожидаемое значение результата поиска для сгенерированных кейсов.
  5. Для сложных кейсов есть ограничения:
    1. Максимальное количество кейсов для пар поисковых запросов – 80% от общего числа кейсов. 
    2. Максимальное количество кейсов для троек поисковых запросов – 50% от общего числа кейсов. 

Логирование

Для каждого тест-кейса тест пишет в лог:

  • Для одиночных запросов – "Q_ID".
  • Для комбинированных запросов – "SheetName1:Q_ID1 + SheetName2:Q_ID2".
  • Результат проверки запроса (ожидалось X записей, получено Y записей).
  • В случае проверки сортировки записи выводятся в том порядке, в котором их ожидали получить и рядом в порядке, как они реально получены.
  • В случае возникновения эксепшена в процессе поиска/фильтрации сортировки тест должен падать и выводить стектрейс эксепшена в лог.

Алгоритм для генерации кейсов

  1. Берем декартово произведение для каждой колонки каждого листа с каждой колонкой каждого листа.
  2. Случайным образом выбираем 80% и 50% результирующих кейсов в качестве пар и троек.

Опции для фильтрации по колонкам

Фильтрация по текстовому полю:

  1. EMPTY – поле пустое.
  2. NOT_EMPTY – поле непустое.
  3. RE[] – аналог фильтрации "Выражение" в интерфейсе, в квадратных скобках указывается поисковый запрос вида [Иванов %].

Фильтрация по дате:

  1. EMPTY – поле пустое.
  2. NOT_EMPTY – поле непустое.
  3. DEQ[] – проверка на совпадение с конкретной датой, в квадратных скобках указывается дата вида [01.01.2012].
  4. DIN[] – проверка на то, что дата находится в указанном интервале, в квадратных скобках указывается интервал дат вида [01.11.2011;02.12.2011].

Фильтрация по булевскому значению (да/нет):

  1. EMPTY – поле пустое.
  2. NOT_EMPTY – поле непустое.
  3. BV[] – проверка на значение флага, в квадратных скобках указывается значение вида [true] или [false].

Фильтрация по enum-полю:

  1. EMPTY – поле пустое.
  2. NOT_EMPTY – поле непустое.
  3. E[] – проверка на значение поля, в квадратных скобках указываются литеры вида [MALE,FEMALE].
  • No labels