0x01 什么是TestLink

TestLink是一个基于web的测试管理系统,有助于软件质量保证。它由Teamtest开发和维护。该平台提供对测试用例、测试套件、测试计划、测试项目和用户管理的支持,以及各种报表和统计数据。

0x02 使用Docker部署TestLink工具

选用bitnami构建好的镜像,使用如下配置,可以直接启动一个完整功能的TestLink容器,Bitnami构建的镜像非常好用其自包含Maridb数据库容器构建过程,省心省力。

新建一个构建目录,创建以下文件并填写内容:

docker-compose.yml
version: '2'
services:
  mariadb:
    image: docker.io/bitnami/mariadb:10.3
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - 'mariadb_data:/bitnami/mariadb'
  testlink:
    image: docker.io/bitnami/testlink:latest
    ports:
      - '80:8080'
    environment:
      - TESTLINK_DATABASE_HOST=mariadb
      - TESTLINK_DATABASE_PORT_NUMBER=3306
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - TESTLINK_USERNAME=admin
      - TESTLINK_PASSWORD=admin
      - TESTLINK_SMTP_HOST=smtp.gmail.com
      - TESTLINK_SMTP_PORT=587
      - TESTLINK_SMTP_USER=your_email@gmail.com
      - TESTLINK_SMTP_PASSWORD=your_password
    volumes:
      - 'testlink_data:/bitnami/testlink'
    depends_on:
      - mariadb
volumes:
  mariadb_data:
    driver: local
  testlink_data:
    driver: local

然后运行如下命令

docker-compose up -d

格外注意docker-composer.yml中几个外部变量的定义

  • TESTLINK_USERNAME=admin #管理员用户名
  • TESTLINK_PASSWORD=admin #管理员密码
  • TESTLINK_SMTP_HOST=smtp.gmail.com #SMTP主机
  • TESTLINK_SMTP_PORT=587 #SMTP端口
  • TESTLINK_SMTP_USER=your_email@gmail.com #SMTP用户
  • TESTLINK_SMTP_PASSWORD=your_password #SMTP密码

这样访问 http://your-host:8080/ 就可以看到TestLink的登录界面了。

0x03 Bitnaimi镜像可用环境变量

用户和TestLink站点配置
APACHE_HTTP_PORT_NUMBER: 容器内Apache http端口. 默认: 8080
APACHE_HTTPS_PORT_NUMBER: 容器内Apache https端口. 默认: 8443
TESTLINK_USERNAME: TestLink 管理员用户. 默认: user
TESTLINK_PASSWORD: TestLink 管理员密码. 默认: bitnami
TESTLINK_EMAIL: TestLink 管理员邮箱. 默认: user@example.com
TESTLINK_LANGUAGE: TestLink 默认语言. 默认: en_US
TESTLINK_SKIP_BOOTSTRAP: 是否在TestLink进入时启用向导. 默认: no

使用MariaDB数据库
TESTLINK_DATABASE_HOST: MariaDB 服务器主机地址. 默认: mariadb
TESTLINK_DATABASE_PORT_NUMBER: MariaDB 服务器端口. Default: 3306
TESTLINK_DATABASE_NAME: TestLink 连接 MariaDB的数据库名称. 默认: bitnami_testlink
TESTLINK_DATABASE_USER: TestLink连接MariaDB数据库的用户. 默认: bn_testlink
TESTLINK_DATABASE_PASSWORD: TestLink连接MariaDB数据库的密码. 没有默认值.
ALLOW_EMPTY_PASSWORD: 是否允许空密码. 默认: no

使用mysql-client为TestLink创建数据库
MYSQL_CLIENT_DATABASE_HOST: MariaDB 服务器主机地址. 默认: mariadb
MYSQL_CLIENT_DATABASE_PORT_NUMBER: MariaDB 服务器端口. Default: 3306
MYSQL_CLIENT_DATABASE_ROOT_USER: Database admin user. Default: root
MYSQL_CLIENT_DATABASE_ROOT_PASSWORD: Database password for the database admin user. No defaults.
MYSQL_CLIENT_CREATE_DATABASE_NAME: New database to be created by the mysql client module. No defaults.
MYSQL_CLIENT_CREATE_DATABASE_USER: New database user to be created by the mysql client module. No defaults.
MYSQL_CLIENT_CREATE_DATABASE_PASSWORD: Database password for the MYSQL_CLIENT_CREATE_DATABASE_USER user. No defaults.
MYSQL_CLIENT_CREATE_DATABASE_CHARACTER_SET: Character set to use for the new database. No defaults.
MYSQL_CLIENT_CREATE_DATABASE_COLLATE: Database collation to use for the new database. No defaults.
MYSQL_CLIENT_ENABLE_SSL_WRAPPER: Whether to force SSL connections to the database via the mysql CLI tool. Useful for applications that rely on the CLI instead of APIs. Default: no
MYSQL_CLIENT_ENABLE_SSL: Whether to force SSL connections for the database. Default: no
MYSQL_CLIENT_SSL_CA_FILE: Path to the SSL CA file for the new database. No defaults
MYSQL_CLIENT_SSL_CERT_FILE: Path to the SSL CA file for the new database. No defaults
MYSQL_CLIENT_SSL_KEY_FILE: Path to the SSL CA file for the new database. No defaults
ALLOW_EMPTY_PASSWORD: It can be used to allow blank passwords. Default: no

SMTP 邮箱服务配置
To configure TestLink to send email using SMTP you can set the following environment variables:
TESTLINK_SMTP_HOST: SMTP host.
TESTLINK_SMTP_PORT: SMTP port.
TESTLINK_SMTP_USER: SMTP 用户名.
TESTLINK_SMTP_PASSWORD: SMTP 账号 密码.
TESTLINK_SMTP_PROTOCOL: SMTP 协议. (tls, ssl).

PHP 配置
PHP_ENABLE_OPCACHE: 是否启用PHP Opcache. No default.
PHP_EXPOSE_PHP: Enables HTTP header with PHP version. No default.
PHP_MAX_EXECUTION_TIME: php脚本最长运行时间. No default.
PHP_MAX_INPUT_TIME: Maximum input time for PHP scripts. No default.
PHP_MAX_INPUT_VARS: php最大输入数量限制. No default.
PHP_MEMORY_LIMIT: php脚本内存限制. Default: 256M
PHP_POST_MAX_SIZE: php脚本post最大限制. No default.
PHP_UPLOAD_MAX_FILESIZE: php最大上传文件限制. No default.

0x04 查看TestLink日志

The Bitnami TestLink Docker镜像将容器日志发送到stdout。要查看日志:

$ docker logs testlink

或者使用 Docker Compose:

$ docker-compose logs testlink

可以使用 --log-driver 指定容器的日志驱动,默认是json-file的日志驱动

0x05 维护

1)备份镜像
需要在用于创建备份的容器中装入两个数据卷:一个在主机上用于存储备份的目录,另一个是刚停止的容器中的卷,用来访问数据。

$ docker-compose stop testlink
$ docker run --rm -v /path/to/testlink-backups:/backups --volumes-from testlink busybox \
  cp -a /bitnami/testlink /backups/latest

2)恢复备份
恢复备份非常简单,只需将备份装载为容器中的卷即可。
对数据库容器

 $ docker run -d --name mariadb \
   ...
-  --volume /path/to/mariadb-persistence:/bitnami/mariadb \
+  --volume /path/to/mariadb-backups/latest:/bitnami/mariadb \
   bitnami/mariadb:latest

对TestLink容器

 $ docker run -d --name testlink \
   ...
-  --volume /path/to/testlink-persistence:/bitnami/testlink \
+  --volume /path/to/testlink-backups/latest:/bitnami/testlink \
   bitnami/testlink:latest

0x06 更新镜像

1) 获取更新镜像

$ docker pull bitnami/testlink:latest

2)停止运行容器

$ docker-compose stop testlink

3)数据备份
上面一个章节中有提到如何备份和恢复数据

4)移除当前镜像

docker-compose rm -v testlink

5)运行新镜像

$ docker-compose up -d

0x07 总结

TestLink是一款非常简洁易用的开源测试管理软件,采用BS架构,受到很多中小型公司的欢迎。后面会持续发布几篇基础的入门使用介绍,敬请关注。

Tags: testlink, 测试管理, 软件测试

Related Posts:
  • [尚无相关文章]

Leave a Comment