Гоняя тесты на одних и тех же данных, мы каждый день видим зеленный билд. И что? Стабильность? Застой?
Верное утверждение, что тесты должны гоняться постоянно, т.е. круглосуточно, или 24*7. Но если тесты используют одни и те же данные, то они врядли будут падать, если не повторяются старые ошибки.
Что делать?
Многие тестировщики используют средства генерации данных для своих тестов - есть даже такой вид автоматизированного тестирования - Динамическое автоматизированное тестирование, - одна из статей Алексея Булата об этом. ссылка
Программы генерируют строки, даты, числа и даже картинки определенного размера (об этом мы уже писали раньше). И с этим все понятно. Но как сгенерировать url, так чтобы он был валидный, и чтобы вел к реальному ресурсу: картинке, видео, документу pdf или просто сайту.
Ответ напрашивается сам собой - использовать API поисковых систем.
Итак, что есть на "рынке":
Верное утверждение, что тесты должны гоняться постоянно, т.е. круглосуточно, или 24*7. Но если тесты используют одни и те же данные, то они врядли будут падать, если не повторяются старые ошибки.
Что делать?
Многие тестировщики используют средства генерации данных для своих тестов - есть даже такой вид автоматизированного тестирования - Динамическое автоматизированное тестирование, - одна из статей Алексея Булата об этом. ссылка
Программы генерируют строки, даты, числа и даже картинки определенного размера (об этом мы уже писали раньше). И с этим все понятно. Но как сгенерировать url, так чтобы он был валидный, и чтобы вел к реальному ресурсу: картинке, видео, документу pdf или просто сайту.
Ответ напрашивается сам собой - использовать API поисковых систем.
Итак, что есть на "рынке":
Из четырех этих сервисов, только гугл позволяет пользоваться своим апи без регистрации. Правда есть лимит на результат - 32 ссылки в одном овтете от сервера, но этого хватает.
Постановка задачи: реализовать получение случайной и валидной url для следующих источников.
- Случайная ссылка на картинку
- Случайная ссылка на видео
- Случайная ссылка на сайт
- Случайная ссылка на документ pdf
Язык реализации - C#.
Реализация:
Ссылка которая будет достаточной для поиска выглядит так
и содержит параметры
web - тип сервиса для поиска
Полный список сервисов
service address ------- ------------------------------------------------------ WEB http://ajax.googleapis.com/ajax/services/search/web VIDEO http://ajax.googleapis.com/ajax/services/search/video NEWS http://ajax.googleapis.com/ajax/services/search/news LOCAL http://ajax.googleapis.com/ajax/services/search/local IMAGES http://ajax.googleapis.com/ajax/services/search/images BOOKS http://ajax.googleapis.com/ajax/services/search/books BLOGS http://ajax.googleapis.com/ajax/services/search/blogs PATENT http://ajax.googleapis.com/ajax/services/search/patent
v - версия протокола
q - выражение для поиска
start - необязательный аргумент, задающий индекс для первого результата поиска (проще говоря номер страницы)
Полный список аргументов можно посмотреть в официальной документации (раздел Standard URL Arguments)
Ответ приходит в json формате из которого необходимо достать нужную информацию
{
- responseData:
- results:
- GsearchResultClass: "GwebSearch",
- visibleUrl: "www.aquaamerica.com",
- title: "<b>Aqua</b> America, Inc.",
- titleNoFormatting: "Aqua America, Inc.",
- content: "Headquarters for water utility group serving states between Maine and Texas. Includes information on service area, operating divisions, customer service, <b>...</b>"
- cursor:
- resultCount: "25,600,000",
- pages:
- estimatedResultCount: "25600000",
- currentPageIndex: 0,
- searchResultTime: "0.09"
- responseDetails: null,
- responseStatus: 200
}
В нашем случае это unescapedUrl.
Теперь алгоритм такой:
- Формируем строку для Get запроса подставляя слово для поиска и номер страницы
- Получаем ответ от сервера
- Парсим его и получаем значение unecapedUrl
- Используем url для своих нужд!
Конечно, все значения должны быть случайными:
Номер страницы - случайное число
unescapedUrl - случайный элемент из массива results
Слово для поиска - случайное слово из словаря.
Немного о поисковом выражении: Использовать случайно сгенерированную строку не очень хорошо, потому что можно получить строку для которой поиск не вернет результатов. Нам это не надо. Поэтому, лучше составить словарь из нормальных слов и брать оттуда случайное. Например, этими словами могут быть - самые часто используемые слова для поиска в гугле.
Полный листинг кода на GitHub
Комментариев нет:
Отправить комментарий