Перейти к содержимому

Фотография

@DataProvider или вытаскивание из БД?

selenium java testNG jdbc

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 12 мая 2015 - 15:12

Доброго времени суток!

Нужно мнение опытных тестировщиков.

Есть загрузка 10 изображений

Ссылки можно хранить в @DataProvider или хранить в БД.

Сам @DataProvider таков:

	@DataProvider(name = "showcase")
	public Object[][] showcaseLinks() {
		return new Object[][] {
			{"D:\\element1.jpg"},
			{"D:\\element2.jpg"},
			{"D:\\element3.jpg"},
			{"D:\\element4.jpg"},
			{"D:\\element5.jpg"},
			{"D:\\element6.jpg"},
			{"D:\\element7.jpg"},
			{"D:\\element8.jpg"},
			{"D:\\element9.jpg"},
			{"D:\\element10.jpg"}
		};
	}

Есть ли смысл хранить линки в БД?

Для работы с БД использую jdbc, но им можно доставать только построчно(насколько мне известно).

При построчном вытаскивании объем кода существенно увеличивается и есть дубликация, чего не хотелось бы.

 

Буду рад любым предложениям и примерам, заранее спасибо!

 


  • 0

#2 neman

neman

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Антон


Отправлено 12 мая 2015 - 20:21

Вопрос поставлен неправильно: DataProvider это способ разделения данных и логики тестов. Никто не мешает данные, которые возвращает датапровайдер, получать из БД. Итак, правильный вопрос - хранить тестовые данные в коде или получать их из БД? Для этого необходимо ответить на следующие вопросы:

  1. Эти данные часто меняются?
  2. Значения этих данных несущественны для понимания логики теста?
  3. При изменении этих данных тест будет работать на всем диапазоне допустимых значений?

Если все три ответа ДА - тогда имеет смысл получать данные из БД. Но самый главный тут конечно первый вопрос. Насчет jdbc ты не прав, он позволяет один раз достать все необходимые данные в RecordSet, затем их можно оттуда локально прочитать.


  • 0

#3 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 13 мая 2015 - 05:40

Благодарю за ответ.

Да, пожалуй неправильно поставил вопрос, хорошо что Вы поправили.

Данные не меняются и несущественны, в моем случае.

Может Вы имели ввиду не RecordSet а ResultSet ?


  • 0

#4 neman

neman

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Антон


Отправлено 13 мая 2015 - 08:57

Может Вы имели ввиду не RecordSet а ResultSet ?

 

Да, всё так.


  • 0

#5 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 13 мая 2015 - 10:48

Если выводить несколько значений, то вы выводите значение таким образом для каждой строки? 

while (rs.next()) {
  String city = rs.getString(2);
  String street = rs.getString(3);
}

  • 0

#6 neman

neman

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Антон


Отправлено 13 мая 2015 - 12:38

 

Если выводить несколько значений, то вы выводите значение таким образом для каждой строки? 

while (rs.next()) {
  String city = rs.getString(2);
  String street = rs.getString(3);
}

 

Признаться, сто лет не работал с jdbc, но да, это делается примерно так (хотя этот код конечно нерабочий из-за объявления внутри цикла). На мой взгляд лучше использовать названия столбцов.

while (rs.next()) {
  city = rs.getString("city");
  street = rs.getString("street");
}

Вообще существуют ORM для работы с бд, например hibernate, на будущее я бы постарался его изучить. При большом количестве разных запросов с большим количеством параметров их поддержка может превратиться в ад.


  • 1

#7 Tishka

Tishka

    Постоянный участник

  • Members
  • PipPipPip
  • 211 сообщений
  • ФИО:Ахрамеев Антон

Отправлено 13 мая 2015 - 15:09

Спасибо за совет.


  • 0



Темы с аналогичным тегами selenium, java, testNG, jdbc

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных