хочу хранить параметры для теста отдельно от теста. Рассматриваю два варианта: xml и Excel. Пока склоняюсь больше к xml - так как, мне кажется, более гибко можно сделать файл параметров и более гибко, под себя, написать парсер, также дополнительный плюс - xml более универсальный формат - можно открыть на любом компьютере. Плюсом Excel является большое количество уже готовых примеров парсеров - можно легко накопипастить парсер за полчаса, для нетехнического пользователя легче пользоваться, сложнее “сломать”. Но вот, например, у меня на Маке Numbers не захотел открывать экселевский файл - поэтому мне сложнее его редактировать. Хотелось бы знать мнение сообщества.
И те кто использует xml - можете скинуть примеры файла параметров? не хотелось бы изобретать велосипед в структуре такого файла
Я бы использовал csv в большинстве случаев
а какая аргументация?
Простой текстовый файл, ничего лишнего. По сути - txt с delimeters. Можно открывать хоть Notepad, хоть Excel. Откроется везде, гарантированно. В куче фреймворков он поддерживается “из коробки”, практически стандарт в DDT.
это для каждого теста надо свой csv, правильно я понимаю?
1 набор данный = Отдельный файл. Если разные тесты используют тот же набор данных, можно юзать тот же файл.
посмотрите в сторону json, более читабельный чем xml, поддержка есть везде
а LibreOffice для мака не кошерно ? должен открывать MS Office.
Если файл будет храниться в CVS (git, svn), то однозначно не excel.
Писать свой парсер не надо, можно использовать например jackson.
Конфигурацию тестов в общем случае (не dataprovider) лучше хранить в .properties (как советует Levotsky_Vadim).
Если нужен dataprovider, то советую использовать json (более легко читаем чем xml)
Как реализовать можно посмотреть здесь.
Pojo классы можно генерить тут
мне только одному кажется что табличные форматы типа MS и Опен оффиса удобны своей структурой и наличием общепринятого доступного редактора ?
авторить данные в JSON YAML или XML весьма трудоемко. сохранять конфиги это да. а всякие keyword framework растут из / привязаны к экселя/ю…
CVS это по-моему немного hard core - попробуйте колонки поменять местами или удалить
Немножко не в тему:
использую .properties для хранения названий кнопок, заголовков и пр. Но вот проблема: например, в немецком языке много умляутов (символы с точками над буковками) и их надо в файлах .properties заменять на юникоды. Например,
вместо ä надо \u00E4
Понимаю, что можно написать шелл файлик “автозаменялку”. Но, вдруг, это уже сделано?
Если да, то поделитесь ссылочкой.
Никаких проблем с CSV, открываете в Excel и работаете с ним
Можно обойтись без всяких автозаменялок:
Имеем файл test.properties с содержимым
string=äääääääääääääää
Считываем проперти:
Properties properties = new Properties();
properties.load(Files.newBufferedReader(Paths.get("test.properties")));
Все считывается корректно:
Только нужно .properties в UTF-8 писать.
Json.
Создаете файл test.json. Заполняете его данными. После этого идете в проект, добавляете в зависимости gson, ставите плагин Json2Pojo для Intellij Idea. Генерите с помощью него Pojo (в пакете где надо тыкаете ПКМ -> New -> Generate POJOs from Json). Дальше юзаете сгенеренные классы с get/set методами в своих тестах. Чтобы поюзать несколько однообразных jsonов (подходящих к сгенерным Pojo) достаточно использовать gson.fromJson(BufferedReader, PojoClass).