Тестирование расширений
Этот контрольный список поможет вам организовать работу при тестировании расширения перед отправкой его на публикацию.
Тестирование функциональности расширения
-
Удостоверьтесь в том, что расширение можно корректно установить, обновить и удалить. Для нового расширения обновление можно протестировать путем повторной загрузки расширения.
-
Чтобы посмотреть все ошибки расширения, измените настройки отчетов об ошибках PHP по умолчанию. Для этого убедитесь, что директива
error_reporting
в файлеphp.ini
Plesk имеет следующее значение:error_reporting = E_ALL & ~E_STRICT & ~E_DEPRECATED
Файл
php.ini
расположен по следующему адресу:- (Plesk для Linux)
/usr/local/psa/admin/conf/php.ini
- (Plesk для Windows)
%plesk_dir%admin\conf\php.ini
- (Plesk для Linux)
-
Удостоверьтесь в том, что расширение проверяет, поддерживается ли используемая операционная система. Если нет – расширение должно явно сообщить об этом администратору с помощью удобочитаемого сообщения.
-
Проверьте, что все функции расширения работают, как ожидается, расширение не зависает и не падает.
-
Если расширение использует базу данных SQLite, проверьте, что она корректно работает с объектами Plesk, защищена от SQL-инъекций и правильно ведет себя при обновлении расширения.
-
Если расширение использует файл
panel.ini
для хранения каких-либо настроек, удостоверьтесь в том, что эти настройки работают правильно, и проверьте, что удаление расширения не нарушает остального содержимого файлаpanel.ini
. -
Если ваше расширение использует длительные задачи, удостоверьтесь в том, что они не мешают выполнению других длительных задач, и что расширение корректно останавливает длительные задачи. Удостоверьтесь в том, что выполнение длительных задач не снижает производительности сервера.
Тестирование интерфейса и взаимодействия с пользователем
- Удостоверьтесь в том, что персональные кнопки, которые ваше расширение добавляет к интерфейсу Plesk, расположены правильно и доступны тогда, когда нужно.
- Если расширение имеет свой персональный интерфейс, проверьте, что в нем все работает правильно, и что он правильно интегрирован в интерфейс Plesk без нарушения структуры, навигации, стилей и т.п. Время отрисовки персонального интерфейса должно быть оптимизировано.
- Содержимое информационных промо-блоков должно отображаться корректно, включая значки и локализованный текст. Ссылки должны работать.
- Удостоверьтесь в том, что интерфейс расширения предоставляет достаточно информации, чтобы помочь пользователю, когда это необходимо. Он может включать в себя описания, подсказки, ссылки на файлы справки, инструкции по получению поддержки и т.д.
Тестирование поддержки функциональности расширения для различных типов доменов
- Создайте домены разных типов и протестируйте на них функциональность расширения.
- Протестируйте функциональность расширения на различных типах доменов: подписки (основные домены), дополнительные домены, субдомены с собственной зоной DNS, субдомены с родительской зоной DNS, подстановочные субдомены, псевдонимы доменов, перенаправления доменов, домены без хостинга.
- Протестируйте расширение на доменах в разных статусах: активен, отключен, приостановлен.
- Протестируйте расширение на доменах с различными характеристиками, например: на доменах с IDN; на доменах, использующих IPv6; на доменах, имена которых содержат символы в разном регистре; на доменах с веб-приложениями, установленными в папках, отличных от корневой, или с несколькими веб-приложениями.
- Проверьте, что персональные кнопки расширения недоступны для типов доменов, которые не поддерживаются расширением.
- Удостоверьтесь в том, что все операции с доменами корректно поддерживаются расширением, и внешней службой, с которым оно интегрировано, в частности: добавление и удаление домена, отключение и активация, приостановка и активация, редактирование настроек хостинга домена.
Тестирование доступа пользователей к функциональности расширения
- Удостоверьтесь в том, что пользователи с различными ролями (администратор, реселлер, клиент) имеют доступ к тем и только к тем функциям и данным, к которым должны его иметь.
- Удостоверьтесь в том, что клиенты и реселлеры не могут получить доступ к функциям и данным администратора, вводя URL-адреса страниц напрямую.
- Удостоверьтесь в том, что у реселлеров есть доступ к доменам, принадлежащим им и их клиентам, но нет доступа к доменам, принадлежащим клиентам других реселлеров.
- Расширение должно определять, когда администратор работает от имени реселлера или клиента, и работать в этом случае корректно. Например, если администратор выполняет вход от имени реселлера, у него должны быть права реселлера (а не администратора) управления подписками, доменами и прочими объектами реселлера.
- Когда удаляется учетная запись пользователя, все связанные с ней настройки и данные, хранимые расширением, должны быть также удалены. Необходимо предотвращать возможные проблемы безопасности в случае, когда учетная запись пользователя с таким же именем создается повторно.
Тестирование лицензирования
Когда расширение использует инфраструктуру лицензирования Plesk, применимы следующие инструкции. Их также можно применять с некоторыми изменениями в случае персонального лицензирования.
- Удостоверьтесь в том, что кнопка или ссылка для покупки лицензии в интерфейсе расширения доступна администратору и только администратору.
- Проверьте, что в файле meta.xml корректно записан URL-адрес магазина, и что для получения URL-адресов для покупки и обновления лицензии используются нужные методы SDK.
- Запросите и установите тестовый лицензионный ключ.
- Проверьте, что данные и функции, к которым предоставляет доступ лицензия, недоступны без ее установки. Проверьте, что данные и функции, к которым предоставляет доступ лицензия, доступны после ее установки.
- Если у расширения есть пробный период, проверьте, что оно работает во время этого пробного периода и перестает работать, когда он заканчивается. Удостоверьтесь в том, что пользователи видят корректное сообщение, сообщающее о действии пробного периода.
- Расширение может предоставлять различные комбинации функций и данных как разные продукты, доступные с разными лицензиями. Проверьте, что разные лицензии дают доступ к соответствующим продуктам.