Как я уже писал в предыдущей статье, приложение для тестирования 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 строк в таблице. Воспользовавшись бесплатным вариантом - получил:
- 1000 записей (https://www.mockaroo.com/65fcd830)
- 50 авторов (https://www.mockaroo.com/ab227010)
- 100 категорий (https://www.mockaroo.com/eeeb2610)
- 1000 связей "запись - категория" (https://www.mockaroo.com/944dbba0)
- 10 типов записей (https://www.mockaroo.com/0d1858a0)
по ссылкам представлены настройки для генерации каждой таблицы.
Сервис интересен тем что в нем очень много готовых типов данных (Адреса, Имена, Даты, Деньги и много прочих). Кроме этого при генерации можно использовать регулярные выражения и конструкции из языка руби. Подробнее.
Кроме этого в сервисе есть возможность получить данные по api. Например curl "https://www.mockaroo.com/ab227010/download?count=50&key=24c35200" > "authors.sql".
Чуть позже наткнулся на другой сервис http://generatedata.com/ - тут есть скрипт, который можно загрузить себе на сервер и нагенерировать сколько угодно данных без ограничений. Но его еще не опробовал. Есть подробная статья по его использованию.
Хочу сначала посмотреть что будет с тестами на основе полученного небольшого кол-ва данных.
Итог.
У нас есть структура простейшего приложения и набор данных для тестирования.
Получается что в первом варианте приложения будет только отображение простой выборки информации. В дальнейшем буду вводить больше функционала и взаимодействия. Например планирую выборку по дате, постраничный просмотр, генерацию новых данных при тесте и может сообщество что нибудь подскажет.
ps:
Приложение с использование фреймворка phalcon уже почти готово. Ждет финальной проверки и тестов. Подписывайтесь чтобы не пропустить результаты.
@semasping Поздравляю! Вы добились некоторого прогресса на Голосе и были награждены следующими новыми бейджами:
Награда за количество полученных голосов
Вы можете нажать на любой бейдж, чтобы увидеть свою страницу на Доске Почета.
Чтобы увидеть больше информации о Доске Почета, нажмите здесь
Если вы больше не хотите получать уведомления, ответьте на этот комментарий словом
стоп
Голосуя за это уведомление, вы помогаете всем пользователям Голоса. Узнайте, как здесь.