白盒测试 [质量提升之道]-Phabricator 的安装

扫地僧 · 2018年04月09日 · 最后由 程明远 回复于 2018年06月06日 · 3575 次阅读

文章系列
[质量提升之道]-Code Review
[质量提升之道]-UT&Coverage
[质量提升之道]-测试左移动&提测质量管控

前言

上一篇介绍了测试左移动&提测质量管控,本篇将介绍 Phabricator 的安装和使用,作为对Code Review话题的补充。

Phabricator 简介

Phabricator 是 Facebook 一个开源可视化的代码审查工具,支持代码托管(git/svn/mercurial),支持两种代码审查工作流:Review(提交前审查)和 Audit(提交后审查)。

为什么要使用代码审核工具

传统的代码审核是这样的:组织者协调相关人员集中到会议室,通过多媒体设备浏览代码进行多方评审,会议纪要列出修改点,会后逐一修改。

这种方法的缺点很明显,主要有以下几点:
1.组织成本高,要考虑到与会者是否有空,占用各方时间;
2.会议时间有限,如果会前没有做好充分的准备,容易遗漏问题,很难达到代码审核的预期;
3.发现问题后的修改效果和后续跟踪,往往难以落实、追溯。

引入代码审核工具,就是为了解决传统模式的痛点:
1.有利于时间的碎片化管理,发起审核流程后,每个参与者可以充分利用碎片时间处理;
2.没有时间限制上的压力,每个参与者都可以自由从容的审核代码;
3.每个发起的工作流都可以跟踪、追溯,直至达成目标。

Phabricator 安装部署

请参阅官方安装文档
安装过程中,难免会踩坑,以 CentOS7.0 + MySql + Phabricator 为例,大致流程如下:

1.安装 mysql

# 安装wget命令
[root@master ~]# yum -y install wget
# 下载mysql的repo源
[root@master ~]# wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
# 安装mysql-community-release-el7-5.noarch.rpm包
[root@master ~]# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# 验证,会获得两个mysql的yum repo源
[root@master ~]# ls -1 /etc/yum.repos.d/mysql-community*
/etc/yum.repos.d/mysql-community.repo
/etc/yum.repos.d/mysql-community-source.repo
# 安装mysql-server
# 注意:如果没有以上的yum repo源,会报没有可用包的错误
[root@master ~]# yum install mysql-server

2.安装 Phabricator,执行官方安装文档提供的脚本

[root@master ~]# cd /opt/
[root@master ~]# chmod 755 install_rhel-derivs.sh
[root@master ~]# ./ install_rhel-derivs.sh

3.安装 APC

[root@master ~]# sudo yum install pcre-devel
[root@master ~]# sudo yum install php-pear

[root@master ~]# mv /opt/arcanist /var/www/html
[root@master ~]# mv /opt/libphutil /var/www/html
[root@master ~]# mv /opt/phabricator /var/www/html

4.Apache 配置,Apache 2.4+ 版本

[root@master ~]# vim /etc/httpd/conf/httpd.conf
<VirtualHost *>
  # Change this to the domain which points to your host.
  ServerName phabricator.example.com

  # Change this to the path where you put 'phabricator' when you checked it
  # out from GitHub when following the Installation Guide.
  #
  # Make sure you include "/webroot" at the end!
  DocumentRoot /var/www/html/phabricator/webroot

  RewriteEngine on
  RewriteRule ^/rsrc/(.*)     -                       [L,QSA]
  RewriteRule ^/favicon.ico   -                       [L,QSA]
  RewriteRule ^(.*)$          /index.php?__path__=$1  [B,L,QSA]
</VirtualHost>
<Directory "/var/www/html/phabricator/webroot">
  Require all granted
</Directory>

5.关闭 SELinux

# 临时关闭SElinux
[root@master ~]# setenforce 0
# 修改SELINUX=disabled,重启后永久关闭
[root@master ~]# vi /etc/selinux/config
# 查看SELinux状态
[root@master ~]# getenforce

6.防火墙设置

# 关闭防火墙(如果防火墙允许关闭)
# 临时关闭防火墙
[root@master ~]# service iptables stop
# 永久关闭,开机不启动
[root@master ~]# chkconfig iptables off
# 查看防火墙状态
[root@master ~]# service iptables status
# 修改防火墙配置(如果防火墙不允许关闭)
# 修改配置
[root@master ~]# vi /etc/sysconfig/iptables
# 添加以下端口:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 重启防火墙
[root@master ~]# service iptables restart

7.添加中文支持

# 进入phabricator/src/extensions/目录下,rm -rf README,再执行下面git命令,然后在客户端设置里,选择语言中文即可
[root@master ~]# git clone https://github.com/wanthings/phabricator-zh_CN.git ./

8.启动服务

[root@master ~]# service mysqld restart
[root@master ~]# service httpd restart

Phabricator 登陆授权

1.设置登录授权方式;

# 若未设置用户名/密码登录方式,退出后登录不了,执行:
[root@master ~]# cd <path2phabricator>
[root@master ~]# ./bin/auth recover <管理员账号>

2.根据提示打开网址(默认端口 80,直接输入 host 访问),登录后,进入 auth 菜单

3.添加一个登录授权方式

4.支持多种登陆授权方式,根据具体需求选择,一般选择用户名/密码登录方式

5.添加登陆授权方式完毕,退出后可以看到登陆界面了

后话

Phabricator 的功能十分丰富,时间和精力有限,不再深入解读,关于 Phabricator 的使用,读者可以参考官方文档慢慢领悟。

至此,测试左移的部分已分享完毕。下一次,会介绍接口测试。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 2 条回复 时间 点赞

期待接口测试的文章

扫地僧 [质量提升之道]-接口测试 中提及了此贴 12月06日 00:30
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册