TestLink 1.9 (Prague) 与 Bugfree 2.0.2的整合

2011-01-14  杨培 

TestLink 1.9 (Prague) Bugfree 2.0.2的整合

之前整合TestlinkBugfree,在网上找了很多资料都没有关于Testlink1.9版本跟bugfree整合的帮助,花了一段时间,以及部分过程中遇到的问题的解决,记录下来。给我们这些不懂mysql,不懂PHP,不懂服务器搭建的人最快捷的整合方式。

TestlinkBugfree的安装环境

TestlinkBugfree可以在相同的服务器环境下运行,这里选择最简单的XAMPP环境下的安装运行以及整合(在WINDOWS环境下)。

1 XAMPP的安装

首先安装XAMPPApache+MySQL+PHP+PERL)到D盘根目录(可以自己选择安装路径),只需要下载,解压缩,安装后启动即可。我安装的XAMPP版本是2.5.8

2 安装Testlink

下载Testlink。我下载安装的Testlink版本是TestLink 1.9 (Prague),这个版本好像是1.9版本Release前的最后一个版本,也不是很记得了,如果是1.9,应该都是没有问题的。

1.9的最后一个Release版本介绍地址如下:

http://testlink.sourceforge.net/docs/testLink.php

 

下载地址如下:http://sourceforge.net/projects/testlink/files/TestLink%201.9/TestLink%201.9.0/testlink-1.9.0.zip/download

 

将下载的文件加压后Copy Testlink目录到D:\xampp\htdocs目录下(自己XAMPP的安装目录)

 

IE地址栏中输入本地的Testlink地址:http://127.0.0.1:8080/testlink/

 

出来的界面就是Testlink工具配置的界面了。

选择New installation

Continue

Process Testlink Setup

 

这样就OK了,如果中途创建数据库出错,可以确认一下Mysql的用户名和密码,最好保证一致就可以了,我变过很多次,都不记得了,重新配置也配不出来了,配置OK后进入登录界面如下:

登录admin,密码admin就可以进主界面了。

3 安装Bugfree

将下载的文件加压后Copy bugfree目录到D:\xampp\htdocs目录下(自己XAMPP的安装目录)

IE地址栏中输入本地的Testlink地址:http://127.0.0.1:8080/bugfree/

Bugfree官方网站http://www.bugfree.org.cn/

下载地址:http://www.bugfree.org.cn/download/bugfree2.0.2.tar.gz,最新的都到2.1.2了,不过应该没什么影响

出来的界面就是bugfree工具配置的界面了。这个配置相对简单很多,就不介绍了,配置OK后输入http://127.0.0.1:8080/bugfree/ 就可以登录了。

使用用户名admin,密码admin登录

4 TestlinkBugfree的整合。

修改config.inc.php文件中的$g_interface_bugs = 'NO' $g_interface_bugs = 'BUGFREE'

 

Bugfreeconfig目录下添加bugfree.cfg.php文件,该文件可以直接从Bugzilla的文件改一改即可,Testlink1.9带了很多缺陷管理工具的配置文件,但是没有bugfree,不知道为什么。

添加的文件内容如下:

 

<?php

/**

* TestLink Open Source Project - http://testlink.sourceforge.net/

* $Id: bugfree.cfg.php,v 1.10 2008/11/04 19:58:22 franciscom Exp $

*

* TestLink uses Bugfree to check if displayed bugs resolved, verified,

* and closed bugs.

*

*/

 

//Set the bug tracking system Interface

/** DB host to use when connecting to the Bugfree db */

define('BUG_TRACK_DB_HOST', 'localhost');

 

/** name of the database that contains the Bugfree tables */

define('BUG_TRACK_DB_NAME', 'bugfree2');

 

/** charset of the database that contains the Bugfree tables */

define('BUG_TRACK_DB_CHARSET', 'UTF-8');

 

/** useful if you have several schemas see BUGID 1444*/

// define('BUG_TRACK_DB_SCHEMA', '[CONFIGURE_BUG_TRACK_DB_SCHEMA]');

 

/** DB type used for the bugtracking db */

define('BUG_TRACK_DB_TYPE','mysql');

 

/** DB user and password to use for connecting to the Bugfree db */

define('BUG_TRACK_DB_USER', 'root');

define('BUG_TRACK_DB_PASS', 'pass');

 

 

 

/** link of the web server */

define('BUG_TRACK_HREF', "http://172.16.20.12/Bug.php?BugID=");

 

/** link to the bugtracking system, for entering new bugs */

define('BUG_TRACK_ENTER_BUG_HREF',"http://172.16.20.12/");

?>

 

 

Bugzilla配置文件bugzilla.cfg.php中的原始信息如下:

 

//Set the bug tracking system Interface

/** DB host to use when connecting to the Bugzilla db */

define('BUG_TRACK_DB_HOST', '[CONFIGURE_BUG_TRACK_DB_HOST]');

 

/** name of the database that contains the Bugzilla tables */

define('BUG_TRACK_DB_NAME', '[CONFIGURE_BUG_TRACK_DB_NAME]');

 

/** charset of the database that contains the Bugzilla tables */

define('BUG_TRACK_DB_CHARSET', '[CONFIGURE_BUG_TRACK_DB_CHARSET]');

 

/** useful if you have several schemas see BUGID 1444*/

// define('BUG_TRACK_DB_SCHEMA', '[CONFIGURE_BUG_TRACK_DB_SCHEMA]');

 

/** DB type used for the bugtracking db */

define('BUG_TRACK_DB_TYPE','[CONFIGURE_BUG_TRACK_DB_TYPE]');

 

/** DB user and password to use for connecting to the Bugzilla db */

define('BUG_TRACK_DB_USER', '[CONFIGURE_BUG_TRACK_DB_USER]');

define('BUG_TRACK_DB_PASS', '[CONFIGURE_BUG_TRACK_DB_USER_PASS]');

 

 

 

/** link of the web server */

define('BUG_TRACK_HREF', "http://[bugzillaserver]/bugzilla/show_bug.cgi?id=");

 

/** link to the bugtracking system, for entering new bugs */

define('BUG_TRACK_ENTER_BUG_HREF',"http://[bugzillaserver]/bugzilla/");

?>

 

添加好就OK了,可以参照自己的服务器信息配置一下bugfree.cfg.php这个文件。

 

再一个就是修改int_bugfree.php这个文件,前提是要在lib\bugtracking这个目录下添加这个文件,原始版本是不带这个文件的,我试了使用原来的1.8版本的也不好用,那可以将目录下Bugzilla的配置文件复制后改名为int_bugfree.php,然后修改一下里面的信息。

修改内容如下:

1bugfreeInterface

Bugzilla

define('BUG_INTERFACE_CLASSNAME',"bugzillaInterface");

Bugfree

define('BUG_INTERFACE_CLASSNAME',"bugfreeInterface");

 

2.配置

将文件中所有bugzillaInterface都改为bugfreeInterface

 

3.修改查询语句

查询语句的修改设计到所有的这个文件中的函数功能。

function getBugStatus($id)函数

Bugzilla中的查询语句:

$query = "SELECT bug_status FROM {$this->dbSchema}.bugs WHERE bug_id='" . $id."'";

修改为bugfree中的查询语句:

$query = "SELECT BugStatus FROM bugfree2.bf_buginfo WHERE BugID='" . $id."'";

这里查询语句中直接用到了bugfree数据库的名字进行查询而没有使用$this->dbSchema这种格式,太麻烦。

如果大家不知道自己的bugfree数据库叫什么,可以到xampp的安装目录mysql目录下去看一下,D:\xampp\mysql\data\bugfree2,这个就是bugfree的目录,数据库名就叫bugfree2 bf_buginfo是数据库里的前缀信息,bf_buginfo.frm这个文件包含了数据库的一些Item信息,比如BugID

Bugfree中的bug状态字段名叫   'BugStatus',所以要修改int_bugfree.php文件中的

$status = $status['bug_status']; $status = $status['BugStatus'];

 

其他函数查询语句的修改原理相同。

function getBugSummaryString($id) 函数

$query = "SELECT short_desc FROM {$this->dbSchema}.bugs WHERE bug_id='" . $id."'";

$query = "SELECT BugTitle FROM bugfree2.bf_buginfo WHERE BugID='" . $id."'";

 

function getBugStatusString($id) 函数

if('Resolved' == $status || 'Active' == $status || 'Closed' == $status)

if('RESOLVED' == $status || 'VERIFIED' == $status || 'CLOSED' == $status)

 

function checkBugID_existence($id) 函数

$query = "SELECT BugID FROM bugfree2.bf_buginfo WHERE BugID=".$id."";

$query = "SELECT bug_status FROM {$this->dbSchema}.bugs WHERE bug_id=".$id."";

 

以上信息修改好之后就OK了。只需要修改这些信息。

 

4 修改bugfree的数据库访问权限

修改lib\bugtracking\int_bugtracking.php这个文件的如下信息:

$btslist = array('BUGZILLA','MANTIS','JIRA', 'JIRASOAP', 'TRACKPLUS',

                          'EVENTUM','TRAC','SEAPINE','REDMINE','GFORGE','FOGBUGZ','YOUTRACK');

增加一个BUGFREE即可,修改后如下:

$btslist = array('BUGFREE','BUGZILLA','MANTIS','JIRA', 'JIRASOAP', 'TRACKPLUS',

                          'EVENTUM','TRAC','SEAPINE','REDMINE','GFORGE','FOGBUGZ','YOUTRACK');

访问权限在class bugtrackingInterface这个定义下面

原始信息如下:

       var $dbHost = null;

       var $dbName = null;

       var $dbUser = null;

       var $dbPass = null;

       var $dbType = null;

       var $showBugURL = null;

       var $enterBugURL = null;

       var $dbCharSet = null;

       var $tlCharSet = null;

 

修改后:

       var $dbHost = 'localhost';

       var $dbName = 'bugfree2';

       var $dbUser = 'admin';

       var $dbPass = 'admin';

       var $dbType = 'mysql';

       var $showBugURL = 'http://172.16.20.12/Bug.php?BugID=';

       var $enterBugURL = 'http://172.16.20.12/';

       var $dbCharSet = 'latin1';

       var $tlCharSet = NULL;

 

上面分别是访问bugfree数据库权限的密码和Testlink中显示bug超链接的地址。

 

这样就OK了,然后登陆Testlink,创建用例,创建构建和测试计划,指派到测试计划,执行,之后界面会显示如下:

看到没,多了一个小虫的图标,这个就是添加bugfree关联的图标,点击图标,出来如下对话框:

 

添加问题编号5(需保证bugfree中有BugID5bug),这样就能看到由于这条用例导致failbug描述信息了,如下:

这样就OK了。。。

Bugfree中的bug信息:

大家有问题可以问我哦。

 

PS

其他bug的修改

1.       查询图标界面中文显示乱码:

config.inc.php文件中

$tlCfg->charts_font_path = TL_ABS_PATH . "third_party/pchart/Fonts/tahoma.ttf";

修改为:

$tlCfg->charts_font_path = TL_ABS_PATH . "third_party/pchart/Fonts/ARIALUNI.TTF";

ARIALUNI.TTF为中文字库,将这个字库复制到third_party/pchart/Fonts/目录下就可以了。其他中文字库也可以,一定要有中文。这样图标显示就会显示中文而非乱码了。

 

关于导入导出的大小限制,基本与前面版本一致,大家可以查询一下,按照相同的方法改就可以了。

450°/4506 人阅读/0 条评论 发表评论

登录 后发表评论
杨培
访客 10014
杨培 的其他博文 更多