- This is the instruction to upgrade qTest v7.7.3 to v8.1 and qTest Sessions v.2.2.7 to v.3.0.1
- If you are using older versions, you will need to upgrade to qTest v.7.7.3 and qTest Sessions v2.2.7 first before proceeding to our latest versions
- From qTest version 8.1, we will be using PostgreSQL instead of MySQL for qTest database. Please migrate your qTest database using this instruction
- Important! Please make sure you have a JIRA administrator upgrade the qTest plugin for JIRA(the previous version is deprecated).
Before you begin
- Please thoroughly review the instructions below to upgrade qTest to the latest version, before starting the upgrade process. We recommended to use copy & paste for the code scripts
- For qTest Premium and Elite editions, you will need to upgrade qTest and then qTest Sessions
- For qTest Pro and Pro + eXplorer editions, you will only need to upgrade qTest
- Please check qTest's recommended hardware requirements
- Prerequisite packages must be running prior to upgrading qTest and qTest Sessions
- PostgreSQL v9.4
- RabbitMQ v3.5+ (only if using a load balancer)
- Redis v2.8+
- Elasticsearch v1.7 - v2.4.0
- Please follow these instructions back up your data prior to the upgrade process
- Download qTest upgrade package and qTest Sessions upgrade package
$ wget https://qtest-storage.s3.amazonaws.com/linux-package/8.1/qtest-linux-8.1.5.tar.gz $ wget https://qtest-storage.s3.amazonaws.com/linux-package/8.1/sessions-linux-3.0.1.tar.gz
- The instructions below use the scenario of upgrading qTest from v7.7.3 to v8.1 and the base installation is directory /usr/local. As you copy & paste the scripts provided, please make sure to adjust the file names and directory according to your current qTest version and install directory
- If qTest has been deployed with load balancing, you will need to upgrade the notification server first, and then upgrade all application servers
- Login as root user on command shell of your Linux server
$ sudo su # cd /usr/local
- Access the installation directory of your current qTest. In this example,
# cd /usr/local/qtest-linux-7.7.3
- Shut down qTest v7.7.3
- Once qTest upgrade packe has been downloaded, extract the download package and access to the extracted folder
# tar -zxf qtest-linux-upgrade-8.1.5.tar.gz # cd qtest-linux-upgrade-8.1.5
- View and modify qtest_env.sh
# vim qtest_env.sh
- Enter the information to connect to your PostgreSQL server which qTest database has been migrated to
DB_HOST=[IP of PostgreSQL server] DB_PORT=[Port number of PostgreSQL server] DB_USER=[username of PostgreSQL server] DB_PASSWD=[password to log in to PostgreSQL server] DB_NAME=[schema name of qTest database]
- Ensure that value of the following keys in qtest_env.sh is upgrade, or you will lose your qTest data
- Enter the information to connect to your PostgreSQL server to create new Poseidon database
POSEIDON_DB_HOST=[IP of PostgreSQL server] POSEIDON_DB_PORT=[Port number of PostgreSQL server] POSEIDON_DB_USER=[username of PostgreSQL server] POSEIDON_DB_PASSWD=[password to log in to PostgreSQL server] POSEIDON_DB_NAME=[schema name of new Poseidon database] //The schema does not need to be created beforehand POSEIDON_DB_MODE="install"
- For the other keys in qtest_env.sh, please keep them the same as in file /usr/local/qtest-linux-7.7.3/qtest_env.sh
- Save the file after you have done modifying it
- Execute this command to upgrade qTest
- After the command is executed successfully, copy data from qTest v7.7.3 to v8.1.5
# cp -r /usr/local/qtest-linux-7.7.3/.tc/ .
- Start qTest
NOTE: These instructions provide scripts using the example where the base install directory is /usr/local and you are upgrading qTest Sessions v2.2.7 to 3.0.1
- Download qTest Sessions' upgrade package
- Login as root on a command shell in your Linux server
$ sudo su
- Stop qTest Sessions
# service explorerd stop
- Once qTest Sessions upgrade package has been downloaded, extract it and access the the extracted folder
# tar -zxf sessions-linux-3.0.1.tar.gz # cd sessions-linux-3.0.1
- Run the upgrade command, specify the directory in which the old version of qTest Sessions was installed. The current conf/configurer.properties file will be renamed to configurer.properties.old. A new conf/configurer.properties file will be created under that directory
# ./installer -t upgrade -d /usr/local/sessions-linux-2.2.7
- Open file conf/configurer.properties
# cd /usr/local/sessions-linux-2.2.7 # vim conf/configurer.properties
- Review the file content and edit the following information (you can refer to the configuration of qTest Sessions v2.2.7 in configurer.properties.old):
# Configuration Description 1 Database configuration
Specify information to connect to your PostgreSQL server; including host, port number, credentials and the schema name.
IMPORTANT: Please make sure to set db.action=1
# database configuration db.host=[PostgreSQL_IP_Address] //eg: 192.168.74.77 db.port=[PostgreSQL_Port] //it is 5432 by default db.user=[PostgreSQL_super_user] db.password=[PostgreSQL_super_user_password] db.schema=[database_schema] //make sure that the schema is created //before the installation. Refer to the instructions for CentOS or Ubuntu. db.action=1 //Please set this property to 1
2 Redis configuration Specify information to connect to Redis server; including host and port number
# redis configuration redis.host=[Redis_IP_Address] //eg: 192.168.55.63 redis.port=[Redis_Port] //it is 6379 by default
3 qTest configuration
Specify the URL and the Master Token to connect to your qTest instance.
NOTE: Access to Resources page in your qTest application to get the Master Token. Click here for instructions.
# qtest configuration qtest.url=[qTest_URL] qtest.master_token=[token]
4 ElasticSearch configuration
Specify the information of your Elasticsearch server. qTest support one cluster and multiple nodes.
If you have more than one nodes, assign an ordinal to each node using property es.nodes.
NOTE: Click here for instructions to get your ElasticSearch's cluster name.
# elastic search configuration es.http.host=[ElasticSearch_IP_Address] //eg: 192.168.74.67 es.http.port=[ElasticSearch_HTTP_Port] // it is 9200 by default es.cluster.name=[Cluster_Name] es.nodes=1 es.tcp.1.host=[Node1_IP_Address] //eg: 192.168.74.67 es.tcp.1.port=[Node1_Port] //it is 9300 by default es.nodes=2 es.tcp.2.host=[Node2_IP_Address] //eg: 192.168.74.68 es.tcp.2.port=[Node2_Port] //it is 9300 by default
5 Application configuration
Specify which ports qTest Sessions will use. Set web.ssl.required=true if it will be using SSL connections (HTTPS).
# application information. web.http.port=[HTTP_Port] web.https.port=[HTTPS_Port] web.shutdown.port=[Shutdown_Port] web.ajp.port=[AJP_Port] web.ssl.required=false //put "true" if you want to enable SSL connection
- Please make sure the ports you have specified above are not blocked by your firewsall
- Please make sure the selected ports are all available. Click here for instructions to check which ports are in use
Declare qTest Sessions's URL
If it is left blank, the installer will use the default http://[IP]:[port]/, in which IP is the host where qTest Sessions is installed, and port is the HTTP port number.
# declare eXplorer API url to use. web.url= http://sample.org:8080
7 Storage configuration
Specify where session data will be stored in:
# storage configuration # storage.type suitable value (disk | s3 | riakcs) storage.type=disk
If disk is chosen, specify the storage path:
# disk storage configuration storage.rootPath=[Storage_Path_On_Local_Machine] //make sure that the directory is created before the installation
Otherwise, specify the following information:
# s3 | riak storage configuration storage.url= storage.bucketName= storage.accessKey= storage.secretKey= storage.diable-dns-buckets=[true|false]
8 Do not modify Please do not modify the following section:
# account configuration. account.username=admin account.password=51ca5dff068c393899233251450d95e2
- Save the above file after you have done modifying
- Execute configurer.sh to start the upgrade process. The progress is logged in explorer-installer-cli.log
- You will see the installation process on your console. If you have enabled SSL connections (HTTPS), you would be prompted to provide your certificates
[ * ] Generate installation tasks. [ PASSED ] Private key path: //path to your key file (eg: /usr/local/cert/server.key) Private key password: Certificate path: //path to your certificate file (eg: /usr/local/cert/server.crt) Chain certificate path (optional): Generates SSL keystore successfully! [ * ] Public session URL to qTest ... [ PASSED ] /usr/local/build-release-15-1/sessions-linux-1.0.0/explorer-api/webapps/ROOT/WEB-INF/db /usr/local/build-release-15-1/sessions-linux-1.0.0 Unable to locate tools.jar. Expected to find it in /usr/local/build-release-15-1/sessions-linux-1.0.0/tools/java/lib/tools.jar Buildfile: /usr/local/build-release-15-1/sessions-linux-1.0.0/explorer-api/webapps/ROOT/WEB-INF/db/liquibase.xml dbPrepare: dbInit: [lb:updateDatabase] Starting Liquibase. [lb:updateDatabase] Successfully acquired change log lock [lb:updateDatabase] Dropping Database Objects in schema: explorer-api-67.public [lb:updateDatabase] Creating database history table with name: public.databasechangelog [lb:updateDatabase] Successfully released change log lock [lb:updateDatabase] Successfully acquired change log lock [lb:updateDatabase] Creating database history table with name: public.databasechangelog [lb:updateDatabase] Reading from public.databasechangelog [lb:updateDatabase] /usr/local/build-release-15-1/sessions-linux-1.0.0/explorer-api/webapps/ROOT/WEB-INF/db/changelog-master.xml: changelogs/changelog-init-db.xml::release-0.9.0::trongle: SQL in file sql/init-schemas.sql executed [lb:updateDatabase] /usr/local/build-release-15-1/sessions-linux-1.0.0/explorer-api/webapps/ROOT/WEB-INF/db/changelog-master.xml: changelogs/changelog-init-db.xml::release-0.9.0::trongle: SQL in file sql/init-data.sql executed [lb:updateDatabase] /usr/local/build-release-15-1/sessions-linux-1.0.0/explorer-api/webapps/ROOT/WEB-INF/db/changelog-master.xml: changelogs/changelog-init-db.xml::release-0.9.0::trongle: ChangeSet changelogs/changelog-init-db.xml::release-0.9.0::trongle ran successfully in 1005ms [lb:updateDatabase] Successfully released change log lock BUILD SUCCESSFUL Total time: 6 seconds /usr/local/build-release-15-1/sessions-linux-1.0.0 ========================================================================== >>> BEGIN CHECKING REDIS SERVER. ========================================================================== [ * ] Server host: 192.168.74.67 [ * ] Server port: 6379 [ * ] Redis health check ... [ PASSED ] [ * ] Redis read-write check ... [ PASSED ] [ * ] Configure DB cluster ... [ PASSED ] [ * ] Configure ES cluster ... [ PASSED ] [ * ] Configure redis cluster ... [ PASSED ] [ * ] Configure file storage ... [ PASSED ] [ * ] Configure qTest account ... [ PASSED ] [ * ] Configure admin account ... [ PASSED ] ========================================================================== >>> END CHECKING REDIS SERVER. [ PASSED ] ========================================================================== ========================================================================== >>> BEGIN INITIATE ELASTICSEARCH SERVER. ========================================================================== [ * ] Server host: 192.168.74.67 [ * ] Server port: 9200 [ * ] Server protocol: HTTP [ * ] ElasticServer heath check ... [ PASSED ] [ * ] Create ElasticSearch Index ... [ PASSED ] [ * ] Create session mapping ... [ PASSED ] [ * ] Create application info mapping ... [ PASSED ] [ * ] Create system info mapping ... [ PASSED ] [ * ] Create coverages mapping ... [ PASSED ] [ * ] Create time line mapping ... [ PASSED ] [ * ] Create screen mapping ... [ PASSED ] [ * ] Create note mapping ... [ PASSED ] ========================================================================== >>> END INITIATE ELASTICSEARCH SERVER. [ PASSED ] ========================================================================== Configures eXplorer API successfully. ...
- When the upgrade process is complete, you can start qTest Sessions service
# service explorerd start