testlink mysql配置_TestLink安装配置手册

TestLink安装配置手册

范围

本文仅作为安装和配置TestLink的参考文档。

本文的第一部分为TestLink的安装步骤,第二部分是TestLink的配置方法。

本文和其他相关文档可在中寻求帮助

一般TestLink安装的步骤如下:

1.下载TestLink

2.解压文件

3.创建数据库

4.导入缺省数据

5.编辑配置文件

6. PHP文件扩展

7.登录TestLink

系统需求

要使TestLink正常运行,需要安装以下软件:

MySQL 4.1.x及以上

php   4.3.x及以上

WebServer(Apache 1.3.x或2.0.x及以上,IIS 3及以上,等等,更详细的信息请参见/install.txt)

对于操作系统平台没有特别要求(TestLink已经在Linux和MS Win32平台上测试通过)

你也可以将数据库与TestLink分别安装在不同的服务器上,如下图:

593818.html

安装步骤

在安装TestLink之前应先完成以下步骤:

1.安装环境:Webserver、php4和MySQL,安装方法参见这些应用软件的安装文档。

我是在winXP下安装的,webserver是IIS,PHP5.1.2,MySql的版本是5.0.18

IIS的安装就不多说了,下面主要讲讲PHP

从5.0开始,PHP对MySql的支持需要手动配置

将php_mysql.dll 和libmySQL.dll 文件拷贝到winnt\system32目录里,这两个文件可以在PHP安装目录里找到。

编辑目录下php.ini,将;extension=php_mysql.dll前面的“;”去掉

2.将TestLink的安装文件复制到服务器上。

3.解压缩Testlink的安装文件。

数据库安装

自动安装(略)

手工安装

创建MySQL数据库

CREATE DATABASE testlink CHARACTER SET utf8 COLLATE utf8_general_ci

创建数据表

# mysql -u -p </install/sql/testlink_create_tables.sql

导入缺省数据

# mysql -u -p < /install/sql/testlink_create_default_data.sql

也可以使用mysql客户端工具进行创建数据库的操作。

在目录下创建config_db.inc.php文件

define('DB_TYPE', 'mysql');

define('DB_USER', 'root');

define('DB_PASS', 'root');

define('DB_HOST', 'localhost');

define('DB_NAME', 'testlink');

?>

配置

配置文件

/config.inc.php - 主要的配置文件,后面会做详细介绍

/config_db.inc.php - 包含访问数据库的所有配置参数。这个文件在安装或升级过程中产生。通常不必做手工修改

/cfg/.cfg.php

/cfg/bugzilla.cfg.php

/cfg/mantis.cfg.php

/cfg/jira.cfg.php

包含访问bugzilla、mantis或者jira等缺陷跟踪系统的配置参数。如果想从TestLink直接访问这些系统,需要手工修改这些文件,另外这个功能需要在config.inc.php文件中修改一个配置参数。

必须修改的参数

DB_SUPPORTS_UTF8

MySQL4.1以前的版本不支持utf8,因此所有的页面使用ISO-8859-1字符集而数据则以latin1字符集存入数据库,令DB_SUPPORTS_UTF8 = FALSE;

MySQL4.1及以后的版本,令DB_SUPPORTS_UTF8 = TRUE,使全部页面支持UTF-8而数据以utf8字符集存入数据库。

可能需要修改的参数

TL_LOG_LEVEL_DEFAULT

日志记录的缺省级别,日志级别有(NONE、ERROR、INFO、DEBUG)。DEBUG级别只在开发或者与bug系统集成时使用

TL_LOG_PATH

日志文件的文件名和路径

MAIN_PAGE_METRICS_ENABLED

这个参数控制矩阵表格是否显示在主页上,允许“TURE”和“FALSE”两个值

TL_INTERFACE_BUGS

设置testlink和缺陷跟踪系统的接口。允许的值为:“NO”、“BUGZILLA”、“MANTIS”

与BUGZILLA的接口配置参见cfg/bugzilla.cfg.php,支持0.19.1

与MANTIS的接口配置参见cfg/mantis.cfg.php,支持1.0.0.a3

TL_TREE_KIND

这个参数用于配置testlink所使用的树形菜单,允许的值为“LAYERSMENU”、“JTREE”、“DTREE”

LAYERSMENU 是缺省值;在这里,JTREE的性能最好;其他的两种树形菜单,可以记住上一次的位置。

TL_IMPORT_LIMIT

最大可以上传的文件的大小,单位是bytes。缺省值是200000。如果需要上传一个更大的文件,你可以加大这个值。另外还有一个参数:TL_IMPORT_ROW_MAX,用户规定导出文件一行最长可以有多长字符,10000字符已经足够了。

$g_fckeditor_toolbar

定义fckeditor工具条,你可以修改其内容。这个部件的更详细的信息参见fckeditor的主页(http://www.fckeditor.net/)

TL_TPL_CHARSET

中文用户只需要设置:define('TL_TPL_CHARSET','gb2312');这样就定义了正确的html字符集。其他的语言可以不必修改这个参数

TL_DEFAULT_LOCALE

置缺省语言,必须是$g_locales的一个值。缺省值是en_GB。

TL_COMPANY,TL_DOC_COPYRIGHT,TL_DOC_CONFIDENT

用于文档抬头,如果不用写抬头,就置这些参数为空。

自定义参数

级联样式表

可以编写你自己的级联样式表改变TestLink的外观。

你必须修改以下定义:

define('TL_LOGIN_CSS','gui/css/tl_login.css'); - 登录、登出的CSS文件

define('TL_TESTLINK_CSS','gui/css/testlink.css'); - 主页的CSS文件

define('TL_DOC_BASIC_CSS','gui/css/tl_doc_basic.css'); - 用于测试报告

重要:CSS文件的路径是相对于的路径,是相对路径

如果要使用自己的CSS文件,建议进行如下操作:

1. 在gui目录下创建一个新的目录,例如 “gui/css/my_css/”

2. 复制testlink原文件到新的目录

3. 按你的想法修改它们

4. 编辑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');

当产品、部件、分类、测试用例重名时的处理

当从一个已经复制一个产品、部件、分类、测试用例时,经常会发生重名的情况。

你可以配置如何处理复制:

如果你设置$g_check_names_for_duplicates=TRUE,那么系统就会进行以下的检查

1. 产品名是否唯一

2. 产品下的部件名是否唯一

3. 部件下的分类名是否唯一

4. 分类下的测试用例名是否唯一

一旦置$g_check_names_for_duplicates=TRUE,你可以配置如果进行操作,如果发现重名的情况,就使用$g_action_on_duplicate_name,选项如下:

'allow_repeat':允许重名(可以和1.0.4、1.5.x兼容)

'generate_new':生成新名称,将"$g_prefix_name_for_copy"的值和原名合并,成为一个新名字

'block':返回一个错误

例如:

$g_action_on_duplicate_name='allow_repeat';

$g_prefix_name_for_copy= strftime("%Y%m%d-%H:%M:%S", time());

允许重复,并将当前时间以(年月日-时分秒)的格式做为原来的名字的前缀。

测试计划和产品的关联

从1.6版开始,当创建一个测试计划(Test Plan)时,缺省情况下测试计划会和当前所选择的产品相关联。这意味着你可以以产品为关键字过滤测试计划(Test Plan)。在1.6版本之前,Test Plan没有和指定的产品相关联,当从1.5.x升级到1.6时,安装程序不能将测试计划和产品相关联从而将测试计划的product ID项置为0。这样做将导致老的测试计划将不能被看到。要解决这个问题,必须添加以下参数:

$g_show_tp_without_prodid=TRUE;

你也可以通过在数据库中手工关联,以便使用以前的数据。

通过产品过滤测试计划

使用以下参数:

$g_ui_show_check_filter_tp_by_product

你可以:

允许用户通过界面来使能测试计划过滤功能。$g_ui_show_check_filter_tp_by_product = TRUE时,在测试计划之前显示了一个复选框。

$g_ui_show_check_filter_tp_by_product = FALSE时。强制测试计划的过滤,并且用户不能修改

关键字管理

如果不想为同一个产品创建相同的关键字:

$g_allow_duplicate_keywords=FALSE;

日期和时间本地化

设置日期和时间的显示方式。使用两个关联的数组进行配置:$g_locales_date_format 和 $g_locales_timestamp_format.

$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", );

如果在上述数组中没有找到匹配的本地化格式,以下配置参数将被使用:$g_date_format 和 $g_timestamp_format

例如:

$g_date_format ="%d/%m/%Y";

$g_timestamp_format = "%d/%m/%Y %H:%M:%S";

从需求生成测试用例

在创建需求SRS之后,可以选择为每个测试需求创建测试用例(部件和分类也同时被创建)

使用配置参数:$g_reg_cfg,你可以配置:

创建的部件的名字:$g_req_cfg->default_component_name="Component Created by Requirement - Auto";

部件的范围:$g_req_cfg->scope_for_component="Component/Category/Test Cases generated from Requirements";

创建的分类的名字:$g_req_cfg->default_category_name="TODO";

分类的目标描述:$g_req_cfg->objective_for_category="Category/Test Cases generated from Requirements";

分类的名字可以作如下配置:

$g_req_cfg->use_req_spec_as_category_name=TRUE;

将需求名称做为分类名称

$g_req_cfg->use_req_spec_as_category_name=FALSE;

那么$g_req_cfg->default_category_name将做为分类的名称

使用自己的Smarty模板(GUI定义)

使用自定义模板,要用到以下参数:$g_tpl

$g_tpl['tcView']

$g_tpl['tcSearchView']

$g_tpl['tcEdit']

$g_tpl['tcNew']

$g_tpl['execSetResults']

允许创建新的模板,而且新的模板采用不同于原始TestLink模板的名字,以避免在下次升级过程中被覆盖

注意:不是所有的TestLink页面都可以进行这样的配置

标准配置如下:

$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";

FAQ

以下是常见问题,更多问题请查看TestLink的论坛

问1:我从老版本升级后,不能登录

答:你的原始数据库版本不支持不同字符集。从1.6版起,缺省的字符集是UTF-8。请在config.inc.php文件中置DB_SUPPORTS_UTF8=FALSE。

问2:登录页面显示Smarty error

答:Linux/unix 用户: 确认当前用户是否有临时目录的存取权限。缺省临时目录:/gui/template_c/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/551382.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python matlibplot绘制矩阵_matplotlib.pyplot.matshow 矩阵可视化实例

这是一个绘制矩阵的函数。用matshow绘制矩阵的例子&#xff1a;import matplotlib.pyplot as pltimport numpy as npdef samplemat(dims):"""Make a matrix with all zeros and increasing elements on the diagonal"""aa np.zeros(dims)for i …

如果有一个人在我创业之前告诉我这些

听别人的个人经历&#xff0c;并持保留态度&#xff0c;结合自己用来参考。 首先验证想法。不要浪费时间来建造无人需要的东西。扼杀你的自我。 创业内容不在于自我&#xff0c;而是关于用户。必须去想用户想要什么&#xff0c;而不是我想要什么的。不要盲目躺平顺从投资者&…

时分秒 java_JAVA 时分秒累加

一、简介有个需求是&#xff0c;累加通话时长&#xff0c;把上次通话时长加上本次通话时长&#xff0c;依次累加。二、实现Testpublic void TestA() throws ParseException {SimpleDateFormat myFormatter new SimpleDateFormat("HH:mm:ss");SimpleDateFormat forma…

python插件化设计_python - 插件化编程

引用2018-11-06 python插件式框架开发https://www.jianshu.com/p/a472f44c7161python 优雅地实现插件架构https://www.cnblogs.com/hhh5460/p/6681363.html一. classmethod function装饰器1.1 项目结构├─ project├─ run.py├─ app├─ __init__.py├─ main.py├─ platf…

java 如何实现对象克隆_Java对象克隆

Java不提供克隆(复制)对象的自动机制。克隆对象意味着逐位复制对象的内容。要支持克隆操作&#xff0c;请在类中实现clone()方法。Object类中的clone()方法的声明如下&#xff1a;protected Object clone() throws CloneNotSupportedExceptionclone()方法声明为protected。 因此…

python 默认配置文件_python各类配置文件写法

1. csv文件csv&#xff1a;Comma-Separated Values半结构化数据逗号分割值&#xff0c;可以使用office或者wps打开。模块&#xff1a;csvcsv.reader(csvfile,dialect’excel’,**fmtparams)csv.writer(csvfile,dialect’excel’,**fmtparams)返回一个DictWriter实例。主要支持的…

java mvc建包结构_Java SSM框架的配置方法、MVC结构的分析、响应的流程

今天头一次配置成功一个SSM框架&#xff0c;兴奋之余&#xff0c;还应该从使用的角度&#xff0c;将整个ssm配置的方法&#xff0c;配置的原因&#xff0c;认真的分析一下。在结束了对SSM框架简单的分析之后&#xff0c;就要开始回归基础&#xff0c;全面的认真复习。所以这个文…

英特尔显示器音频_英特尔也玩马甲?有关USB TypeC的冷知识你了解多少

随着Type-C接口的不断发展&#xff0c;这个接口也成为越来越多设备的标配&#xff0c;除了出现在手机、平板电脑和笔记本电脑等移动设备上&#xff0c;显卡这样的设备也开始配备Type-C接口了&#xff0c;本周末&#xff0c;小编为大家收集了一些有关Type-C接口的冷知识&#xf…

java drawingpanel_Java DrawingPanel.getHeight方法代码示例

import org.opensourcephysics.display.DrawingPanel; //导入方法依赖的package包/类/*** Paint the contour.* param g*/public synchronized void draw(DrawingPanel panel, Graphics g) {if(!visible||(griddatanull)) {return;}if(!autoscaleZ && showColoredLevel…

python激活虚拟环境source不是内部或外部_激活虚拟环境的问题

F:\sdk\imooc_request>virtualenv envname --no-setuptools --no-pip --no-wheelUsing base prefix f:\\编程\\pycharmNew python executable in F:\sdk\imooc_request\envname\Scripts\python.exeF:\sdk\imooc_request>source .env/bin/activatesource 不是内部或外部命…

如何允许网页中的编辑器访问剪切板_Vditor下一代的 Markdown 编辑器,为未来而构建...

❝Vditor 是一款浏览器端的 Markdown 编辑器&#xff0c;支持所见即所得(富文本)、即时渲染(类似 Typora)和分屏预览模式。它使用 TypeScript 实现&#xff0c;支持原生 JavaScript、Vue、React、Angular&#xff0c;提供桌面版❞Markdown背景随着 Markdown 排版方式的普及&…

java ocsp请求_java – 客户端证书上的OCSP吊销

如果仅使用客户端的java.security.cert.X509Certificate,如何使用OCSP手动检查java中的证书撤销状态&#xff1f;我看不清楚这样做的明确方法.或者,我可以让tomcat自动为我做,你怎么知道你的解决方案是真的&#xff1f;解决方法:我发现了一个最优秀的解决方案/**54 * This is a…

java模型给泛型_【一天一个基础系列】- java之泛型篇

java 5以后&#xff0c;java引入了“参数化类型”的概念&#xff0c;允许程序在创建集合时指定集合元素的类型java 7之前&#xff0c;如果使用带泛型的接口、类定义变量&#xff0c;那么调用构造器创建对象时构造器的后面也必须带泛型比如//java 7之前List list new ArrayList…

mpython掌控板作品_第1课 Arduino micro:bit 掌控板 创客教育常用的3类主控板

有很多朋友想学习创客&#xff0c;问我怎么学习。我建议他先百度一下“创客”&#xff0c;看看有什么感觉。结果还是很懵&#xff0c;五花八门&#xff0c;什么都有&#xff0c;找不到核心。简单理解&#xff0c;就是以前讲的DIY&#xff0c;自己动手&#xff0c;制作一个东西。…

redis启动没反应_Promethues如何针对Redis进行监控

需求&#xff1a;采用redis_exporter 收集数据&#xff0c;promethus采集redis_exporter数据&#xff0c;granfana展示数据一、简易安装redisyum install -y redisrpm -qa |grep redislsof -i :6379rpm -ql redissystemctl start redis找到配置文件/etc/redis.conf,修改 requir…

网上书店管理系统java部分代码_网上书店管理系统 java语言

【实例简介】整个系统&#xff0c;包括数据库&#xff0c;安装上就能用&#xff0c;非常适合做课程设计的作业或者毕业设计的作业【实例截图】【核心代码】OnLineBookStore└── OnLineBookStore├── WebRoot│ ├── META-INF│ │ └── MANIFEST.MF│ ├── W…

java自定义标签遍历_自定义标签 - CarlDing的个人页面 - OSCHINA - 中文开源技术交流社区...

EL的不足&#xff0c;由JSTL来加强 -> 自定义标签来实现。1&#xff1a;自定义标签1&#xff1a;自定义标签也是类。2&#xff1a;让用户在JSP页面使用&#xff0c;不引用Java代码的情况下&#xff0c;调用Java代码。2&#xff1a;标签开的类的继承关系3&#xff1a;快速的…

python宏替换_简单的宏替换

简单的宏替换1.宏定义必须写在第一次使用该宏定义的代码之前&#xff1b;2.宏定义不是以分号结束的3.#define string1 string2 之间至少要有一个空格4.string 1称为宏&#xff0c;string2 称为宏扩展5. 宏名用大写的字母表示是一个习惯6.使用宏的好处&#xff1a;a 简化程序的书…

python逆序数怎么求_怎么算逆序数?急~~~!!!

展开全部可使用直bai接计数法&#xff0c;计算一个du排列的逆序数的直接zhi方法是逐个dao枚举逆序&#xff0c;同时统计个内数。举个例子&#xff1a;标准列是容1 2 3 4 5&#xff0c;那么 5 4 3 2 1 的逆序数算法&#xff1a;看第二个&#xff0c;4之前有一个5&#xff0c;在标…

java解析xml中文字符乱码_Eclipse读取xml中文乱码问题解决

【mysql】高可用集群之MMM一.复制的常用拓扑结构 复制的体系结构有以下一些基本原则: (1) 每个slave只能有一个master: (2) 每个slave只能有一个唯一的服务器ID: (3) 每个maste ...公钥私钥 ssl&sol;tsl的概念一,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,…