因公司测试部门的同事需要,需要搭建redmine3.3.1和testlink1.9.15,并且需要把testlink集成到redmine中。本次服务器为CentOS7,已安装epel源,本机IP192.168.42.15。
首先分别从官网下载软件包:
redmine-3.3.1.tar.gz
testlink-1.9.15.tar.gz
安装数据库
因为testlink对数据库版本要求很高,我们安装mysql官方的mysql5.7
rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum安装下:
yum install yum install mysql-community-server mysql-community-devel
mysql官方的源不像centos的默认的源那么多的加速镜像,所以下载起来很慢,请耐心等待。
启动mysql:
systemctl start mysqld.service
mysql首次启动时初始化,会生成一个12位的随机密码。
cat /var/log/mysqld.log | grep password
以后新建用户的时候,还会继续验证密码,可以选择关闭这个选项,在/etc/my.cnf文件最下方加上如下配置:
validate-password=OFF
例行的安全配置:
mysql_secure_installation
在此设置中,可以重新设置下root密码,大家务必牢记。
安装redmine
yum install gcc rubygems ruby-devel
创建redmine数据库:
先用mysql -uroot -p登录mysql控制台
CREATE DATABASE redmine CHARACTER SET utf8; CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'yourpasswd'; GRANT ALL PRIVILEGES ON redmine.* TO 'redmine'@'localhost';
密码设置成你自己用的密码。不要真设置成’yourpasswd’
安装Apache HTTPd:
yum install httpd
解压redmine安装包,重命名后并拷贝到/var/www目录下。
[root@template ~]# tar xf redmine-3.3.1.tar.gz [root@template ~]# mv redmine-3.3.1 redmine [root@template ~]# cp -avx redmine /var/www/
添加数据库配置文件:
cd /var/www/redmine/config cp database.yml.example database.yml
编辑vim database.yml,把production一栏改下:
production: adapter: mysql2 database: redmine host: localhost username: redmine password: "yourpasswd" encoding: utf8
redmine使用bundler处理gem依赖,我们先安装下:
gem install bundler
用bundle安装前,先安装下可能的依赖包:
yum install ImageMagick-devel
下面正式开始bundle安装:
[root@template ~]$ cd /var/www/redmine/ [root@template redmine]$ bundle install --without development test
产生一个session用的随机数,用户加密cookie:
[root@template redmine]$ bundle exec rake generate_secret_token
创建数据库结构:
[root@template redmine]$ RAILS_ENV=production bundle exec rake db:migrate
创建数据库初始数据:
[root@template redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
会出现提示,我们选择“zh”。
权限设置:
redmine用户必须对以下目录具备具备写的权限:
files (存储附件用)
log (存放日志文件production.log)
tmp and tmp/pdf (生成pdf用)
public/plugin_assets (安装插件用)
处理下:
[root@template redmine]# chmod -R 755 files log tmp public/plugin_assets [root@template redmine]# chown -R apache:apache /var/www/redmine/ [root@template redmine]# restorecon -Rv /var/www/redmine/
安装passenger:
安装passenger官方repo:
curl --fail -sSLo /etc/yum.repos.d/passenger.repo https://oss-binaries.phusionpassenger.com/yum/definitions/el-passenger.repo
正式安装:
[root@template ~]# yum install mod_passenger
在apache创建redmine用的虚拟主机配置文件:
vim /etc/httpd/conf.d/redmine.conf
<VirtualHost *:80> ServerName 192.168.42.15:80 DocumentRoot /var/www/redmine/public </VirtualHost>
防火墙设置下:
firewall-cmd --permanent --add-service=http firewall-cmd --reload
启动或者重启下httpd:
systemctl restart httpd.service
用浏览器打开http://192.168.42.15/ 可以看到redmine的页面,redmine的默认用户名和密码都是admin。初次进入admin控制台,系统会提示你修改admin用户密码。
testlink安装
先解压源码包:
[root@template ~]# tar xf testlink-1.9.15.tar.gz [root@template ~]# mv testlink-1.9.15 testlink [root@template ~]# cp -avx testlink /var/www/
简单配置下权限:
[root@template ~]# chown -R apache:apache /var/www/testlink/ [root@template ~]# restorecon -Rv /var/www/testlink/
testlink对数据库版本要求很高,对php版本也要求很高,我们从CentOS7默认的repo无法安装符合版本要求的php,所以我们安装remi仓库,来安装php7:
rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
启用remi的php7 的repo:
yum install yum-utils yum-config-manager --enable remi-php70
开始安装:
yum install php php-fpm php-mysqlnd php-gd php-xml
在Apache HTTPd中新建testlink虚拟主机,我们给它分配一个新的端口8080:
vim /etc/httpd/conf.d/testlink.conf
Listen 8080 <VirtualHost *:8080> ServerName 192.168.52.15:8080 DocumentRoot /var/www/testlink <Directory "/var/www/testlink"> Options Indexes ExecCGI FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
改下Apache的其他几个配置:
LoadModule mpm_event_module modules/mod_mpm_event.so # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
把mod_php的内容全部注释掉,改成这样:
<FilesMatch \.php$> SetHandler "proxy:unix:/var/run/php-fpm/php-fpm.sock|fcgi://localhost/" </FilesMatch> AddType text/html .php DirectoryIndex index.php
改成监听unix socket
listen = /var/run/php-fpm/php-fpm.sock listen.owner = apache listen.group = apache listen.mode = 0600
改变下php的配置:
vim /etc/php.ini
date.timezone = Asia/Shanghai cgi.fix_pathinfo=0 session.gc_maxlifetime = 2880 max_execution_time = 120
最后再设置下权限:
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/testlink/gui/templates_c(/.*)?" restorecon -Rv /var/www/testlink/gui/templates_c/ mkdir -p /var/testlink/logs mkdir -p /var/testlink/upload_area/ chown -R apache:apache /var/testlink chcon -t httpd_sys_rw_content_t /var/www/testlink/
防火墙开放8080端口:
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload
启动php-fpm,重启httpd:
systemctl start php-fpm.service systemctl restart httpd.service
浏览器中打开http://192.168.42.15:8080/install/ 开始安装基本上下一步,下一步,配置好数据库,就完成了。接下来打开http://192.168.42.15:8080/login.php 就可以登录了。默认的用户名和密码都是admin。
登录后,主页提示“There are security warnings for your consideration. See details on file: /var/testlink/logs/config_check.txt. To disable any reference to these checkings, set $tlCfg->config_check_warning_mode = ‘SILENT’;”
可以vim /var/www/testlink/config.inc.php,把216行的:
$tlCfg->config_check_warning_mode = ‘FILE’;改成:
$tlCfg->config_check_warning_mode = ‘SLIENT’;
重启php-fpm生效。
testlink与redmine的集成
cd /var/www/testlink cp custom_config.inc.php.example custom_config.inc.php vim custom_config.inc.php
在配置的最后加上:
$g_interface_bugs = 'REDMINE'
在cfg目录新建配置文件:
cd /var/www/testlink/cfg vim redmine.cfg.php
redmine.cfg.php内容如下:
<?php /** redmine数据库的主机名称 */ define('BUG_TRACK_DB_HOST', 'localhost'); /** redmine数据库的名称 */ define('BUG_TRACK_DB_NAME', 'redmine'); /** Redmine使用的数据库类型 * 可以查看Redmine安装目录下 config/database.yml 文件中关于数据库的信息 */ define('BUG_TRACK_DB_TYPE', 'mysql2'); /** Redmine数据库的用户名和密码 */ define('BUG_TRACK_DB_USER', 'redmine'); define('BUG_TRACK_DB_PASS', 'yourpasswd'); /** 定义链接数据库的字符集 **/ define('BUG_TRACK_DB_CHARSET',"UTF-8"); /* 链接Redmine问题列表的URL ** 注意最后的哪个 “/” 不能丢掉, 否则在TestLink测试用例中点击关联问题时,会出现404错误 */ define('BUG_TRACK_HREF', http://192.168.42.15/issues/); /** 链接缺陷跟踪系统(Redmine),新建问题的URL ** 该测试项目与Redmine中test项目关联。 */ define('BUG_TRACK_ENTER_BUG_HREF',http://192.168.42.15/projects/test/issues/new); // define('BUG_TRACK_ENTER_BUG_HREF',"http://localhost:3000/");
需要注意的是,testlink源码有bug,集成后会导致无法获取bug id的情况,需要改下源码(如果你是更新的版本,相信就不要更改了)。
vim /var/www/testlink/third_party/redmine-php-api/lib/redmine-rest-api.php ,在270行下加入如下内容:
// this can happens because if I save object on _SESSION PHP is not able to // save resources. if( !is_resource($this->curl) ) { $this->initCurl(); }
再次重启下php-fpm。
打开用管理员打开redmine,一次点击管理>>配置>>API,勾选启用REST web service,”启用JSONP支持”可以根据需要,选择是否勾选,点击保存。
点击“我的帐号”,在“API访问键”中点击“显示”,我这里的api key是7db39c5ad3bee72545e5e1ac7bca248d40cec148,每个人都不一样,待会下面的apikey不要照抄。
打开testlink主页的“问题跟踪系统”,选择好类型为redmine后,填入如下字段:
<issuetracker> <apikey>7db39c5ad3bee72545e5e1ac7bca248d40cec148</apikey> <uribase>http://192.168.42.15/</uribase> <uriview>http://192.168.42.15/issues/</uriview> <projectidentifier>test</projectidentifier> </issuetracker>
在测试项目管理中,勾选“集成问题跟踪系统”,选择redmine。
接下来添加测试计划、测试用例等工作,就交给测试人员,我们的主要配置工作已经结束。