Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
semasping
7 лет назад

Тестирование PHP фреймворков. Часть 2. Описание тестируемого приложения. Генерация данных.

Как я уже писал в предыдущей статье, приложение для тестирования php фреймворков будет не сложным.

Итак первый вариант приложения.

Как правило основная задача 90% сайтов - вывод информации собранной из различных таблиц. Так мы и поступим.
Начальное приложение будет представлять из себя аналог платформы блогов. Т.е. будут авторы, посты, категории. Такое приложение реализуется на любом фреймворке из коробки.
Страницы для тестирования:

  • /posts - записи с информацией об авторе и категориях
  • /authors - список авторов с подсчетом записей по каждому автору
  • /categories - список категорий с кол-вом записей в каждой.
  • /index - простой hello world для сравнения
  • /all - Вывод на одной странице всей информации с предыдущих страниц. Для созданий большей нагрузки.
    Кол-во записей планируется порядка 1000. Авторов и категорий по 50-100 штук.

Рассмотрим схему таблиц и полей нашей базы данных.

Схема таблиц и полей нашей базы данных
У нас есть таблица авторов(authors) содержащая идентификатор(id) и фио(name_f_l) автора.
Таблица записей(posts) содержит идентификатор(id), заголовок(title), текст записи(body), служебное имя(slug), идентификатор автора и идентификатор типа записи.
Таблицы категорий(categories) и типов(post_types) записей похожи - состоят из идентификатора(id), названия(name) и служебного имени(slug).
Как видно из схемы - категорий у записей может быть несколько. И только один автор и тип записи.
Ситуация с категориями позволяет нам усложнить задачу для выборки и вывода данных. Как же отразится это на результатах теста?
К примеру возьмем страниц /posts. На ней отображаются записи с информацией об авторе, типе записи, категориях.
Для этого используются все 5 таблиц.
А для страницы /authors используется всего две таблицы: authors, posts.

Приступим к генерации данных для тестирования.

В начале мне попался сервис генерации который позволяет сгенерировать не более 1000 записей на бесплатном аккаунте. За 50$ в год можно генерировать до 100 000 строк в таблице. Воспользовавшись бесплатным вариантом - получил:

Сервис интересен тем что в нем очень много готовых типов данных (Адреса, Имена, Даты, Деньги и много прочих). Кроме этого при генерации можно использовать регулярные выражения и конструкции из языка руби. Подробнее.
Кроме этого в сервисе есть возможность получить данные по api. Например curl "https://www.mockaroo.com/ab227010/download?count=50&key=24c35200" > "authors.sql".

Чуть позже наткнулся на другой сервис http://generatedata.com/ - тут есть скрипт, который можно загрузить себе на сервер и нагенерировать сколько угодно данных без ограничений. Но его еще не опробовал. Есть подробная статья по его использованию.
Хочу сначала посмотреть что будет с тестами на основе полученного небольшого кол-ва данных.

Итог.

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


ps:
Приложение с использование фреймворка phalcon уже почти готово. Ждет финальной проверки и тестов. Подписывайтесь чтобы не пропустить результаты.

3
0.020 GOLOS
На Golos с February 2017
Комментарии (1)
Сортировать по:
Сначала старые