找回密码
 注册
搜索
查看: 1949|回复: 2

[讨论] TestLink 1.9 (Prague) 与 Bugfree 2.0.2的整合(附件含图解)

[复制链接]
发表于 2011-1-13 21:38:04 | 显示全部楼层 |阅读模式
TestLink 1.9 (Prague) 与 Bugfree 2.0.2的整合(含附件图解)
不好意思,编辑帖子没图片,至能上传附件了,支持免费!!!

之前整合Testlink和Bugfree,在网上找了很多资料都没有关于Testlink1.9版本跟bugfree整合的帮助,花了一段时间,以及部分过程中遇到的问题的解决,记录下来。给我们这些不懂mysql,不懂PHP,不懂服务器搭建的人最快捷的整合方式。
Testlink与Bugfree的安装环境
Testlink与Bugfree可以在相同的服务器环境下运行,这里选择最简单的XAMPP环境下的安装运行以及整合(在WINDOWS环境下)。
1. XAMPP的安装
首先安装XAMPP(Apache+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. Testlink与Bugfree的整合。
修改config.inc.php文件中的$g_interface_bugs = 'NO' 为$g_interface_bugs = 'BUGFREE'

Bugfree的config目录下添加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,然后修改一下里面的信息。
修改内容如下:
1.bugfreeInterface
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中有BugID为5的bug),这样就能看到由于这条用例导致fail的bug描述信息了,如下:

这样就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/目录下就可以了。其他中文字库也可以,一定要有中文。这样图标显示就会显示中文而非乱码了。

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

【文件名】:11113@52RD_Testlink1.9整合Bugfree.doc
【格 式】:doc
【大 小】:398K
【简 介】:
【目 录】:
[UseMoney=0]

[/UseMoney]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
发表于 2012-4-18 16:26:06 | 显示全部楼层
问题解决了,原来是我的bugfree数据库的密码和用户名填错了。[em10]
点评回复

使用道具 举报

发表于 2012-4-18 15:13:34 | 显示全部楼层
顶!我的也按照上面所说的进行了设置,但是还是没有缺陷管理那个图标出来啊,郁闷了!
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-9-22 19:42 , Processed in 0.048908 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表