Installation & Configuration Manual
TestLink 1.6
Copyright © 2004,2005,2006 TestLink Development Team
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. The license is available in "GNU Free Documentation License" homepage.
This document only serves as a reference document for the installation and configuration of TestLink. The first part includes the installation procedure and second part the configuration explanation.
The current and other documentation is available on TestLink homepage. You can also ask a help to solve your problems in an appropriate section of TestLink forum.
Summary of installation process:
Tranfer files
Uncompress files
Generate database tables
Transfer data or create default data
Edit configuration file
PHP File extensions
Login
TestLink requires these applications as background:
MySQL 4.1.x and higher (4.0.x could be used but doesnt support UTF-8)
php 4.3.x and higher (php5 is not supported but should work as well)
Webserver (Apache 1.3.x or
2.0.x and higher, IIS 3 and higher, etc.) See <php_root>/install.txt
for more information.
There is no requirement about your operating system (tested on Linux and MS Win32).
You can use also MySQL on different server than TestLink.

Do the next steps before installation:
Install environment: Webserver, php4 and MySQL. Refer to documentation of these products. You can also find installations package of all these products and install it together. E.g. XAMPP, EasyPHP, Uniform Server, etc.
Transfer the TestLink installation file to your webserver using whatever method you like best (ftp, scp, etc.). You will need to telnet/ssh into the server machine for the next steps.
Next, untar/gunzip it to the directory that you want. The usual command is (1 step):
# tar zxvf <filename.tar.gz>
or
# gunzip <filename.tar.gz>
# tar xvf <filename.tar>
Winzip, Stuffit, and other programs should also be able to handle decompression of the archive.
At this point you may want to rename the directory to something simpler like 'testlink'. You will use the mv command to rename a directory (Windows users substitute the "ren" command or use explorer).
# mv <directory_name> testlink
Continue Installation or Upgrade.
You can use automatic scripted installation or manual steps. If you are upgrading from a previous version of TestLink look at the Upgrading section.
The following details the basic steps for installation on any system. The instructions may seem unix-centric but should work fine on Windows systems. Barring complications, it should take you about 10-30 minutes to install, configure, and be using TestLink.
This installation process has changed with release 1.6. Next we will create the necessary database tables and a basic configuration file.
From your web browser access http://<yoursite>/testlink/install/index.php.
This page will walk through the following steps:
check basic parameters for the web server, php config and DB version.
prompt for the database type and location, and a database user/password pair. For installation, an administrative user/password pair can also be provided. The operating user requires ALTER, SELECT, INSERT, and UPDATE privileges. For installation, INDEX, CREATE, DELETE, and DROP privileges are also required.
create the database and tables.
Warning:
A DEFAULT ADMINISTRATOR level account is created.
The account name and password are: admin / admin. Use this when you first login to TestLink. Immediately go to Manage and create at least one administrator level account. Immediately after that DISABLE or DELETE the admin account. You can recreate it but you should delete the account to prevent the cookie_string from being used to trick the package. It would be even better to rename the account or delete it permanently. REMEMBER: After setting up the package, REMOVE the default admin account
perform some post installation checks on the system.
After a successful upgrade
you should remove the <directory for security reasons.testlinkwebdir>/install/
The next part involves configuring the installation to work with your specific setup. See configuration section for description of configurable parameter.
If you want to perform a Manual installation (not recomended) here are the steps needed for a successful installation. For installing the DB you can either choose the command line tools available in your MySQL installation or any MySQL Database Client (e.g. phpMyAdmin).
Prepare MySQL via command line tools:
Create a new empty MySQL database.
for MySQL >= 4.1 (with UTF8)
do CREATE DATABASE testlink
CHARACTER SET utf8 COLLATE utf8_general_ci
By choosing UTF8 you should also change the value of
DB_SUPPORTS_UTF8 to TRUE in your <testlinkdir>/config.inc.php
See Configuration
for more.
Create tables for the newly created database.
# mysql -u <user> -p<password> <dbname> < <testlinkdir>/install/sql/testlink_create_tables.sql
E.g. # mysql -u testlink -ppass testlink < /var/www/html/testlink/install/sql/testlink_create_tables.sql
Populate initial data for the newly created database (admin account, default roles).
# mysql -u <user> -p<password> <dbname> < <testlinkdir>/install/sql/testlink_create_default_data.sql
Alternatively you can use phpMyAdmin:
Create new database from main page (recommended UTF-8 character set).
Optionally create a new user and assign him correct rights for the created database.
Select the created database in the left pane.
Navigate to SQL window.
Upload SQL request from
files /install/sql/testlink_create_tables.sql
and run the script.
Upload SQL request from
files /install/sql/testlink_create_default_data.sql
and run the script.
Create a <testlinkdir>/config_db.inc.php file with the following data (example):
<?php //
Automatically Generated by TestLink Installer
define('DB_TYPE',
'mysql');
define('DB_USER',
'tl_16');
define('DB_PASS',
'tl_16');
define('DB_HOST',
'localhost');
define('DB_NAME',
'tl_16');
?>
(Optional) Create a DB user for connection from TestLink. Don't forget to assign a correct rights (at least SELECT, INSERT, UPDATE, DELETE) for the created database. The user must be defined in config_db.inc.php. Otherwise you can use any other user available in MySQL database with correct rights.
On Linux or UNIX you must
change the permissions of the templates_c
directory to be writable by the webserver. From the TestLink root
directory run
# chmod 777 gui/templates_c
Log into TestLink! Default credentials are:
user: admin; pass: admin
Changing this password is a good security practice. TestLink notifies if you don't do it.
After a successful upgrade
you should remove the <directory for security reasons.testlinkwebdir>/install/
The next part involves configuring the installation to work with your specific setup. See configuration section for description of configurable parameter.
Report any issues or feedback to TestLink Bug tracking system page.
Major version upgrade: You can upgrade either automatically (via script) or manually. There is a few changes in database against both TL 1.5 and 1.0.4. I.e. you are not able to use directly your original database.
Minor version (maintenance) upgrade is manual, but easy.
Maintenance (Bug fixing) release is for example 1.6.0 -> 1.6.1. Database schema doesn't changed in this case.
Save files of the previous version.
Remove the all files from directory.
Copy a new version to the same directory.
Copy config_db file to the new structure and modify configuration parameters acording your previous settings.
Now, it should work.
Follows preinstallation steps.
From a web browser run
http://<testlinkwebdir>/install/index.php
Choose 'Upgrade Installation' link. Run the scripts until you see that process is finished.
After a successful upgrade
you should remove the <directory for security reasons.testlinkwebdir>/install/
The next part involves configuring the installation to work with your specific setup. See configuration section for description of configurable parameter.
Report any issues or feedback to TestLink Bug tracking system page.
This process is not currently supported. You can do it of course after a study of changes in database (e.g. user password is encrypted now, added new fields and tables, etc.) and installation script.
This chapter describe changes in database against previous versions.
TL 1.0.4 has not this relation. The solution for the TL 1.6 table include field Product ID in the table. Test Plans could be available over all Products. Such Test Plan has Product ID value = 0.
Configuration within
<testlinkinstalldir>/config.inc.php:
$g_show_tp_without_prodid=1;
$g_ui_show_check_filter_tp_by_product
= 1;.
There are three new tables for requirements based testing.
requirements - list of requirements itself
req_coverage - store relation between REQ and TC
requirement_doc - organize requirements
TestLink 1.6 allows for UTF-8 encoded character
rendering, therefore any extended character data that may have snuck
into your database and didn't show up in 1.5 may start appearing in
1.6 UI. You can turn UTF-8 support off in testlink by modifying a
value in the <testlinkinstalldir>/config.inc.php
file, but then you will be missing out on the ability to use
characters beyond ASCII.
If you have the same problem I did and see lots of extended characters appearing in your data after upgrading to 1.6 and having UTF-8 support turned on, you should read through the following instructions. Be sure to practice this exercise on a test machine before performing on your deployment system.
The instructions will help you clear out any non-ASCII characters from your database and setup your database to support UTF-8.
First make a backup of your current database using the mysqldump utility.
# /usr/bin/mysqldump -u root testlink15 -p > testlink15.backup
Now edit testlink15.backup so schema definitions for EACH table has utf8 encoding specified. Change the CHARSET for each table from latin1 to utf8. For example the following line in the definition of 1 table which reads as follows :
ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='This table holds the bugs filed for each result';
should be changed to
ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='This table holds the bugs filed for each result';
Then ran testlink15.backup thru my the perl script below as follows:
/replaceScript.pl < testlink15.backup > testlink15.cleaned
replaceScript.pl is as follows :
#!/usr/bin/perl
while (<>) {
chomp;
tr/\000-\177/\040/cs;
print $_, "\n";
}
Created an empty testlink16 db with utf8 charset as follows:
CREATE DATABASE testlink16 CHARACTER SET utf8;
Install the tables into the new database
# mysql testlink16 -u root -p < testlink15.cleaned
You can verify your database's "Db characterset" is now set to utf8 by using the following command:
login to mysql
use testlink16
mysql> \s
--------------
mysql Ver 14.7 Distrib 4.1.11, for redhat-linux-gnu (i386)
Connection id: 26
Current database: testlink15
Current user: bugz@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 4.1.11
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: utf8
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 36 min 55 sec
Run the upgrade installation provided by Testlink 1.6.
Other resources:
what the heck is UTF-8 ?
http://www.joelonsoftware.com/articles/Unicode.html
octal table (you can see octal values 000 - 177 are "normal ascii" characters).
The perl script that is provided searches based on octal values.
http://web.cs.mun.ca/~michael/c/ascii-table.html
description of tr perl operation
http://www.unix.org.ua/orelly/perl/learn/ch15_05.htm
All configuration parameters are inside the file config.inc.php and included files. For this release (1.6) these are the configuration files:
<testlink
installation directory>/config.inc.php
<testlink
installation directory>/config_db.inc.php
<testlink
installation directory>/cfg/<bug_tracking_system>.cfg.php
config.inc.php
Main configuration file. See below for more.
config_db.inc.php
Contains configuration parameters to access the database. This file is created by the installer during the installation or upgrade process. Normally you don't need to change it manually.
/cfg/bugzilla.cfg.php
/cfg/mantis.cfg.php
/cfg/jira.cfg.php
Contains configuration parameters to access bugzilla, mantis or jira issue tracking system. You need to edit this file is you want to access issue information from testlink (bugtracking system integration feature). To enable this feature you need to change a configuration paramenter on the main configuration file (config.inc.php)
DB_SUPPORTS_UTF8
Set this to FALSE for MySQL-Versions prior to 4.1 (no utf8 support), so all pages have charset ISO-8859-1 and data will be stored with charset latin1 into the db. For MySQL-Versions >= 4.1 set it to TRUE to enable full UTF-8 support in pages and also data will be stored with charset utf8 into the db.
TL_LOG_LEVEL_DEFAULT
Set this to the default level of logging (NONE, ERROR, INFO, DEBUG). Note that TestLink doesn't verify a size of a created file. I.e. Use DEBUG level only for development or bug investigation.
TL_LOG_PATH
The filename and path for the logfile of TestLink. E.g. /tmp/testlink.log
MAIN_PAGE_METRICS_ENABLED
This parameter controls whether the metrics table is displayed on the main page. Accepts 'TRUE' or 'FALSE' values.
TL_INTERFACE_BUGS
This parameter sets the interface to a bugtracker system. Possible values are 'NO', 'BUGZILLA', 'MANTIS', 'JIRA' (TestLink >= 1.6)
For bugzilla configuration see
also the file cfg/bugzilla.cfg.php.
Supported version: 0.19.1
For mantis configuration see also
the file cfg/mantis.cfg.php.
Supported version: 1.0.0.a3
For JIRA configuration see also the
file cfg/jira.cfg.php.
Supported version: JIRA 3.1.1
TL_TREE_KIND
This parameter also is used to configure tree menu Component used in TestLink. Possible values are 'LAYERSMENU', 'DTREE', 'JTREE'. LAYERSMENU is default value. This Component JTREE has the best performance. The two others have the ability to remember the last position in addition.
TL_IMPORT_LIMIT
Maximum uploadfile size in bytes. Default is 200000. You could increase this value if you import a bigger file. There is also parameter TL_IMPORT_ROW_MAX for maximal size of one line of exported file. The value 10000 characters should be enough.
$g_fckeditor_toolbar
fckeditor Toolbar definition. You can modify fckeditor toolbar content. See fckeditor homepage for more information about this Component.
TL_TPL_CHARSET
Chinese users only: Set: define('TL_TPL_CHARSET', 'gb2312'); This defines a correct html charset. All other languages could leave this option unchanged.
TL_DEFAULT_LOCALE
Set this to your default locale, this must be one of $g_locales (defined in the same config). Default value is en_GB.
TL_COMPANY, TL_DOC_COPYRIGHT, TL_DOC_CONFIDENT
Strings are used in front of printed document (requirements specification only in 1.6 version). Left blank if not used.
You can change TestLink appearance writing you own CSS (Cascading Style Sheet) files.
You have to change the following constants:
define('TL_LOGIN_CSS','gui/css/tl_login.css');
- All Login/Logout pages CSS
define('TL_TESTLINK_CSS','gui/css/testlink.css');
- Main CSS
define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
- Used in Reports
Important: paths to CSS are relative to the <testlink installation directory>
If you want to use your own CSS files we suggest you to proceed as follow:
create a new directory inside the gui directory, example gui/css/my_css/
copy the testlink original files to the new directory (you can change the names if you want)
modify them at your will
edit config.inc.php
// Original
configuration
//define('TL_LOGIN_CSS','gui/css/tl_login.css');
//define('TL_TESTLINK_CSS','gui/css/testlink.css');
//define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css');
define('TL_LOGIN_CSS','gui/css/my_css/tl_login_acqua.css');
define('TL_TESTLINK_CSS','gui/css/my_css/testlink_acqua.css');
define('TL_DOC_BASIC_CSS','gui/css/my_css/tl_doc_basic.css');
As you know, is possible to create one of this objects (Products, Components, Categories, testcases) doing a copy of an existing one.
You can configure how to proceed when the copy is done:
if you set
$g_check_names_for_duplicates=TRUE
then the following checks will be done:
Product Name is unique
Component Name Inside Product is unique
Category Name Inside Component is unique
Test Case Name inside Category is unique
One you have set
$g_check_names_for_duplicates=TRUE, you can configure how to proceed,
if a duplicate name is found, using $g_action_on_duplicate_name.
The options are:
'allow_repeat'
: allow the name to be repeated (backward compatibility with version
1.0.4 and 1.5.x)
'generate_new' :
generate a new name using the value of $g_prefix_name_for_copy and
the original object name.
'block' :
return with an error .
$g_action_on_duplicate_name='allow_repeat';
$g_prefix_name_for_copy=
strftime("%Y%m%d-%H:%M:%S", time());
Starting with version 1.6 when you create a Test Plan, it's associated to the current selected Product as default. This is means you can filter Test Plans by Product.
Before Teslink 1.6 the Test Plans where not associated to an specific Product. When upgrading from 1.5.x to 1.6, it's not possible for the installer to know to which Product relates ogni test plan, then Product ID is set to 0. This results in a situation where you find you can't see any of your old Test Plans !!!. To solve this problem the following configuration parameter was added:
$g_show_tp_without_prodid=TRUE;You can also via DB administration assign this relation manual and use this feature for data from previous version.
As stated before the default
behavour for version 1.6, is to filter Test Plan by Product. Using
the following configuration parameter:
$g_ui_show_check_filter_tp_by_product.
You can:
Allow the user, through the user
interface , to enable/disable test plan filter by Product. A check
box is displayed over the test plan combo box.
($g_ui_show_check_filter_tp_by_product =
TRUE)
Force Test Plan filtering, without any user possibility to change it.
$g_ui_show_check_filter_tp_by_product
= FALSE;
If you don't want to create multiple times the same keyword for the same Product:
$g_allow_duplicate_keywords=FALSE;
For every defined locale, you can
set the format for date and time presentation. This is configured
using the following associative arrays: $g_locales_date_format
and $g_locales_timestamp_format.
At time of this writting the configuration is :
$g_locales_date_format
= array(
'en_GB' =>
"%d/%m/%Y", 'it_IT' => "%d/%m/%Y",
'es_AR' =>
"%d/%m/%Y", 'es_ES' => "%d/%m/%Y",
'de_DE' =>
"%d.%m.%Y", 'fr_FR' => "%d/%m/%Y",
'pt_BR' =>
"%d/%m/%Y" );
$g_locales_timestamp_format
= array(
'en_GB' =>
"%d/%m/%Y %H:%M:%S",
'it_IT' =>
"%d/%m/%Y %H:%M:%S",
'es_AR' =>
"%d/%m/%Y %H:%M:%S",
'es_ES' =>
"%d/%m/%Y %H:%M:%S",
'de_DE' =>
"%d.%m.%Y %H:%M:%S",
'fr_FR' =>
"%d/%m/%Y %H:%M:%S",
'pt_BR' =>
"%d/%m/%Y %H:%M:%S", );
If there is no entry in the
previous arrays, the value of the following configuration variables
will be used: $g_date_format
and $g_timestamp_format.
$g_date_format
="%d/%m/%Y";
$g_timestamp_format =
"%d/%m/%Y %H:%M:%S";
One of the unique features of Test Link is Requirement Management. After creating the Software Requirements Specifications (SRS), and populating it with requirements you can choose to create test cases for every requirement (Component and Category are also created).
Using the configuration object:
$g_req_cfg,
you can configure :
Name to give to the Component created:
$g_req_cfg->default_component_name="Component
Created by Requirement - Auto";
Component's Scope
$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";
Name to give to the Category created:
$g_req_cfg->default_category_name="TODO";
Category's Objective description:
$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";
For the Category name you can configure the following options:
$g_req_cfg->use_req_spec_as_category_name=TRUE;
Then REQuirement Specification Title is used a Category name.
$g_req_cfg->use_req_spec_as_category_name=FALSE;
Then $g_req_cfg->default_category_name is used a Category name.
If You want to test a different solution for the user interface, you can develop your own Smarty Templates. At the time of this writting we have defined the following configuration array:
$g_tpl
with the following entries:
$g_tpl['tcView']
$g_tpl['tcSearchView']
$g_tpl['tcEdit']
$g_tpl['tcNew']
$g_tpl['execSetResults']
This allows you to create templates with different names that the original Testlink, without the risk to overwrite them, during the next upgrade.
Important: Not all TestLink pages are ready for this kind of configuration.
The standard configuration:
$g_tpl['tcView'] =
"tcView.tpl";
$g_tpl['tcSearchView']
= "tcSearchView.tpl";
$g_tpl['tcEdit'] =
"tcEdit.tpl";
$g_tpl['tcNew'] =
"tcNew.tpl";
$g_tpl['execSetResults']
= "execSetResults.tpl";
There are listed often problems. Please, check also TestLink forum.
I upgraded from older version and I cannot login.
Your original database should be in different charset. The default from 1.6 version is UTF-8. Try to switch DB_SUPPORTS_UTF8 to FALSE in config.inc.php.
Smarty error is shown instead of login page.
Linux/unix users: Verify if
correct permissions are for temp directory (default:
<testlink_root>/gui/template_c/).
Revision History:
|
# |
Description |
Date |
Author |
|---|---|---|---|
|
1.0 |
Initial creation of the document in DocXML |
2005/03/12 |
A. Morsing |
|
1.1 |
Corrected title, updated structure and added new sections. |
2005/04/12 |
M. Havlat |
|
1.2 |
Added some words for MySQL 4.1, UTF8 support |
2005/06/27 |
A. Morsing |
|
1.3 |
Updated automatic installation part |
2005/09/12 |
F. Mancardi |
|
1.4 |
Updated for TL 1.6.; added configuration parameters; restructured (created pre-installation steps section); corrected layout; added phpMyAdmin steps description |
2005/09/13 |
M. Havlat |
|
2.0 |
Converted to OO2 format; added DB Charset update explanation from Kevin |
2005/12/04 |
M. Havlat |
|
2.1 |
Corrected layout for export to HTML and PDF |
2005/12/11 |
M. Havlat |
|
2.2 |
Some small changes |
2005/12/17 |
A. Morsing |
|
2.3 |
Minor layout and grammar update |
2006/02/14 |
M. Havlat |