суббота, 13 ноября 2010 г.

Установка TestLink

Коллеги, отвечающие на мой предыдущий пост, помимо разных OpenSource TSS систем упомянули TestLink. Краем глаза мне удалось почитать документацию о нескольких из них, где-то даже попользоваться "демками".. В итоге из всего просмотренного решил более детально остановиться на TestLink. У этого проекта есть демо-версия, но она слишком медленно работает, заполнена кучей демо-данных со всех уголков мира ) и не дает реального представления о том, как система устроена изнутри. В общем, решил поставить и посмотреть. Забегая вперед, скажу , что процесс установки предельно прост и для многих его описание может показаться излишним, но , быть может, кому-то окажется полезным. Поэтому, опишу процесс инсталляции TestLink 1.9 на одном из имеющихся в моем распоряжении хостов:

OS: Debian Lenny9
web server: apache 2.0
php: 5.2.6 (требуется любая версия >= 5.2.0 )
mysql: Ver 14.12 Distrib 5.0.51a, for debian-linux-gnu (i486) using readline 5.2

1. Получение дистрибутива
Скачиваем дистрибутив с офсайта: прямая ссылка на архив
2. Виртуальный хост
  • создаем директорию для виртуального хоста. В моем случае:
    sudo -s
    mkdir /var/www/vhosts/testlink

  • распаковываем содержимое скачанного архива в созданную директорию
  • производим настройку виртуального хоста

    ...
    ServerName testlink:80
    DocumentRoot /var/www/vhosts/testlink
    CustomLog /var/www/vhosts/testlink/logs/access_log combined
    ErrorLog /var/www/vhosts/testlink/logs/error_log

    DirectoryIndex index.html index.phtml index.php
    &ltifmodule mod_php4.c&gt
    php_admin_flag engine on
    php_admin_flag safe_mode on
    &lt/ifmodule&gt
    &ltifmodule mod_php5.c&gt
    php_admin_flag engine on
    php_admin_flag safe_mode on
    &lt/ifmodule&gt
    AllowOverride All
    Options +Indexes FollowSymLinks +ExecCGI
    &lt/directory&gt
    &ltlocation ^/ &gt
    SetHandler mod_php5
    order allow,deny
    allow from all
    &lt/location&gt
    ...

    В моем случае конфиги виртуальных хостов располагаются в отдельных файлах и включаются в главный файл настроек апача.
  • перезапускаем апач чтобы новые настройки вступили в силу

    apache2ctl graceful



3. настраиваем /etc/hosts (для *nix машин) или %windows%\system32\drivers\etc\hosts (для виндовых машин) на клиентской машине для возможности указания teslink в url:
для этого достаточно в указанном файле достаточно прописать

testlink


4. тест url
проверяем доступность инсталляции testlink:
http://testlink/index.php

Должны увидеть форму инсталляции:



Переходим по ссылке New Installation и принимаем лицензионное соглашение.
TestLink распространяется под Gnu GPL. Так что используем на здоровье )

5. Проверка системных требований
После принятия соглашения открывается форма проверки сервера на соответствие требованиям TestLink
Если то или иное требование выполняется, то соответствующий пункт помечается зеленым цветом и магическим словом ОК. В противном случае, видим оранжевые сообщения о том, чего у нас нет и чем это чревато.
Двигаемся по порядку:

Системные требования:
Server Operating System (no constrains) Linux
PHP version OK ( 5.2.0 [minimum version] <= 5.2.6-1+lenny9 [your version] ) Здесь у меня все ок. Web and PHP configuration

Maximum Session Idle Time before Timeout 24 minutes and 0 seconds - (Short. Consider to extend.) - инсталлятор рекомендует мне увеличить пераметр Max Session Idle Timeout - пока не понятно для чего, потому пропускаем мимо ушей и смотрим дальше

Checking max. execution time (Parameter max_execution_time) 30 seconds - We suggest 120 seconds in order to manage hundred of test cases (edit php.ini) - эта рекомендация понятна, но пока некритична (нам еще далеко до "сотен" тест-кейсов ) - решаем проблемы по мере постуления и двигаемся дальше

Checking maximal allowed memory (Parameter memory_limit) OK (128 MegaBytes)
Checking if Register Globals is disabled OK
Checking MySQL Database OK
Checking Postgres Database Failed! Postgres Database cannot be used. - на моем сервере не установлен Postgres. Пока пропускаю этот ворнинг, надеясь, что MySql для корректной работы будет достаточно.

Checking GD Graphic library Failed! GD Graphic library not enabled.
Graph rendering requires it. This feature will be disabled. It's recommended to install it..

- вот тут уже надо вмешаться. Не установлена графическая либа для php. Подозреваю, что не смогу смотреть всякие там графики и отчетики. Хочу, чтобы было все красиво, потому ставим либу:

sudo aptitude install php5-gd

далее добавляем строку extenstion=gd.so в php.ini и перезапускаем Apache.
В результате должны увидеть:

Checking GD Graphic library OK

Checking LDAP library Failed! LDAP library not enabled. LDAP authentication cannot be used. (default internal authentication will works). - С этим предупредением поступаем как с предыдущим - ставим нужную библиотеку (для возможности ldap-аутентификации в будущем):


sudo aptitude install php5-gd


далее добавляем строку extenstion=ldap.so в php.ini и перезапускаем Apache.
В результате должны увидеть:
Checking LDAP library OK

Checking JSON library OK - тут изначально у меня все ок. Если , у кого соответствующая библиотека не установлена, то вы знаете теперь как поступить )

Read/write permissions

Checking if /var/www/vhosts/testlink/gui/templates_c directory exists OK
Checking if /var/www/vhosts/testlink/gui/templates_c directory is writable OK
Checking if /var/www/vhosts/testlink/logs directory exists OK
Checking if /var/www/vhosts/testlink/logs directory is writable OK
Checking if /var/www/vhosts/testlink/upload_area directory exists OK
Checking if /var/www/vhosts/testlink/upload_area directory is writable OK

В общем цель данной страницы визарда установщика: увидеть сообщение "Your system is prepared for TestLink configuration (no fatal problem found)." и нажать Continue. Что и делаем! (Если у кого возникли фатальные проблемы, пишите о них в комментариях, а также о том , как вы их обошли - буду признателен )
Двигаемся дальше...

6. Definition of DB access
О назначении этого шага нетрудно догадаться по его названию - на следующей странице визарда мы должны:

  • Выбрать тип бд - мой выбор "MySQL (5.0 and later)"

  • адрес сервера, где находится наша СУБД - я выбрал localhost (пока все на одном сервере)

  • Указать имя схемы бд (соответствующую схему надо будет создать) - оставляем "testlink"

  • Опционально указать префикс таблиц: оставляем незаполненным

  • В полях "Database admin login" и "Database admin password" указываем логин и пароль админа СУБД для того, чтобы инсталлятор смог автоматически создать нужную схему и все нужные объекты в ней

  • В полях "TestLink DB login" и "TestLink DB password" указываем логин и пароль пользователя схемы из-под которого будет вестись вся внутренняя работа с БД (полет фантазии в выборе логина и пароля =)


Далее убеждаемся что демон (служба) mysql запущена и жмем батон "Process TestLink Setup!"

После этого инсталлятор:
  • создает файл config_db.inc.php в DocumentRoot-дериктории сайта , поэтому убедитесь, что у пользователя, из-под которого у вас запущен apache есть w-права на соответствующую директорию

  • Удаляет все , что есть в бд testlink (внимание! на случай, если вы используете уже существующую бд)

  • Создает все нужные таблицы в бд заново



Видим два предупреждения, касающихся настройки почтовых уведомлений.
Пока пропускаем это.
Переходим по ссылке "Please Click Me" и радуемся тому, что все благополучно установилось.
Логинимся под учеткой admin/admin и приступаем к созданию первого проекта по тестированию.

Эту систему я только начинаю исследовать и осваивать, чтобы принять решение о том, буду ли использовать ее в повседневной деятельности или нет.. поживем - увидим, как говорится..

Всем удачи.

6 комментариев:

  1. Здравствуйте. у меня на Win установлен VertrigoServ, могу ли я таким же путём как описано установить testlink?

    ОтветитьУдалить
    Ответы
    1. Добрый день. Указанную вами сборку не использовал, но думаю, не должно быть проблем )
      Разворачивайте как обычный сайт на Php в виртуальный хост.
      Главное, чтобы php-шные расширения (gd, ldap) были.

      Удалить
  2. добрый день. подскажите пожалуйста, установил testlink и при попытке запустить допустим http://host/testlink/lib/execute/execNavigator.php
    выдает 500-ую ошибку как можно вылечить такое?
    система убунта тестлинк 1.9, попробовал поменять права на www-data, результата не получил

    ОтветитьУдалить
  3. Причиной 500 тки может быть что угодно.. и далеко не только права доступа. Посмотрите error-лог веб-сервера. Если у вас апач, то error_log апача.
    В логе должна быть понятна причина 500-тки.
    Если логов нет, то включите логгирование, перезапустите сервер и повторите эту ошибку.
    Если валится на каждом скрипте, то быть с бд какая проблема.. в общем, вся инфа должна быть в логе.

    ОтветитьУдалить
  4. Прошу прощения за поднятие поста 3-х летней давности =)
    Ставила TestLink и столкнулась с проблемой. Никак не могу добиться интеграции с AD для LDAP аутентификации. Если настраивали, подскажите, пожалуйста, как должны выглядеть правильные настройки? У меня Windows Server 2008 + IIS + PHP + MySQL. Неработающие настройки сейчас выглядят так:

    $tlCfg->authentication['method'] = 'MD5';

    $tlCfg->authentication['SSO_enabled'] = 'false';
    $tlCfg->authentication['SSO_method'] = 'CLIENT_CERTIFICATE';
    $tlCfg->authentication['SSO_uid_field'] = 'SSL_CLIENT_S_DN_Email';

    /** LDAP authentication credentials */
    $tlCfg->authentication['ldap_server'] = 'ldap://mycompany.lan';
    $tlCfg->authentication['ldap_port'] = '389'; //389 OR 3268
    $tlCfg->authentication['ldap_version'] = '3'; // 3 could be '2' in some cases
    $tlCfg->authentication['ldap_root_dn'] = 'DC=mycompany,DC=lan';
    $tlCfg->authentication['ldap_bind_dn'] = "cn=mylogin,DC=mycompany,DC=lan"; // Left empty for anonymous LDAP binding
    $tlCfg->authentication['ldap_bind_passwd'] = "mypassword"; // Left empty for anonymous LDAP binding
    $tlCfg->authentication['ldap_tls'] = false; // true -> use tls
    $tlCfg->authentication['ldap_organization'] = '(objectClass=*)'; // e.g. '(organizationname=*Traffic)'
    $tlCfg->authentication['ldap_uid_field'] = 'sAMAccountName'; // Use 'sAMAccountName' for Active Directory

    ОтветитьУдалить
    Ответы
    1. К сожалению такую схему настраивать не приходилось

      Удалить