Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Хранение стринговых значений в csv файлах

csv
testng
java
Теги: #<Tag:0x00007f7b64dd97a8> #<Tag:0x00007f7b64dd9668> #<Tag:0x00007f7b64dd9500>

(Denis Vovchenko) #1

В тестах проекта очень много данных которые нужно вводить в поля. Подумав, как сделать правильнее (просто вынесение в константы, думаю будет не совсем правильно, так как же писал что Очень много данных). Решил разобраться с таким вариантом:

  1. Создание csv файлов и внесение в него данных
  2. Создание моделей в которых будут переменные, сеты и геты для них
  3. и метод который будет парсить csv загонять его в модели, через сеты. Создание HashMap(Key, Model)
    А потом в тестах просто указывать Model.get Что-то
    Такой способ подсказал знакомый программист.
    Может у вас будут какие-то предложение?

(Maksim Smolyakov) #2

Можете использовать для этого DataProvider, в котором будете извлекать из csv информацию в нужном виде.


(Александр Шиповалов) #3

Если используется TestNG, можно и DataProvider.


(Sergey Korol) #4

DB + Models + DataProvider?
Саппорт csv-файлов разных версий вскоре превратится в ад.


(asolntsev) #5

Это ужасное переусложнение! Не надо возводить всех этих многоэтажных конструкций. Оставьте константы. В конечном итоге строк получится меньше и код проще. Вынесение в файлы ничего не упростит.

http://www.slideshare.net/orgeirIngvarsson?utm_campaign=profiletracking&utm_medium=sssite&utm_source=ssslideview


(Дмитрий Мирошник) #6

Если данные легко группируются в сущности (типа инвойс 1, инвойс 2 и т.д.), то эксель вполне может стать выходом. Редактировать и, главное, создавать набор тестовых данных, если он не случаен, на порядок легче в экселе, чем через notepad.
Как вариант, рассмотрите xls формат. в Java, есть библиотечки, которые позволяют легко работать с данным форматом.
Если данные слабо структурированы - я бы рекомендовал посмотреть в сторону xml.


(Stan) #7

Зачем изобретать велосипед?


(Дмитрий Мирошник) #8

Проще редактировать.


(Stan) #9

Проще чем что? Чем отличается открытие файла в IDE и экселя, кроме как неудобной поддержки и лишнего установленного софта?


(Denis Vovchenko) #10

Спасибо. Я уже одумался. Просто храню в константах.


(Дмитрий Мирошник) #11

Предположим, есть тест, создающий 100 сущностей с указанными параметрами. Предположим, каждая сущность использует 10 параметров, 3 из которых обязательны, 7 - опциональны.
Если указывать параметры сущностей в csv, создание такого csv станет адом. Заполните 1000 значений через запятую, я хочу это увидеть.
Если использовать xls, в 1-й строке которого указать имена параметров - жить сразу станет проще, не так ли?


(Stan) #12

А почему тогда не использовать hashmap или что-то подобное ?


(Дмитрий Мирошник) #13

Hashmap удобен для хранения данных в приложении. Я говорю о внешнем тестовом наборе данных, используемом в data driven testing.
Предположим, я хочу быстро посмотреть, в скольких тестовых сущностях я использую параметр № 9, например и какие значения он принимает.
В экселе я это сделаю в 2 клика: отфильтрую список по данному параметру, а принимаемые значения я вообще увижу в списке допустимых значений для фильтра. Таким образом, если я знаю, что данный параметр может принимать 10 возможных значений, например, я легко узнаю, покрывает ли мой набор данных все возможные значения для данного параметра или нет.