If you want to test subscription-manager or cockpit plugin in real life there is a few players in this game:
It is necessary to clone candlepin
repo.
cd ~/src
git clone https://github.com/candlepin/candlepin.git
cd candlepin
export CANDLEPIN_VAGRANT_NO_NFS=1
export CANDLEPIN_DEPLOY_ARGS="-gTa"
vagrant up
See README.md
in the repo for more details.
An URL of this server is candlepin.example.com
by default.
There is an env variable SUBMAN_WITH_SYSTEM_TESTS
that enables system tests when a VM is provisioned.
cd ~/src/subscription-manager
export SUBMAN_WITH_SYSTEM_TESTS=1
vagrant up
An URL of this VM is centos7.subman.example.com
by default.
This is an optional player. If you want to run test cases when a proxy is used it is necessary to use some proxy server.
There is a vagrant box in Vagrantfile to make VM with squid auth proxy server.
See in vagrant/roles/proxy-server/default/main.yml
for username, password and more details.
An URL of this server is proxy-server.subman.example.com
and squid
is listening on a port 3128
.
cd ~/src/subscription-manager
vagrant up proxy-server
RHSM services is a bunch of websocket services that offers a way to perfom some task inside a tested machine.
The service is provisioned once you set a variable SUBMAN_WITH_SYSTEM_TESTS=1
for vagrant up
.
See previous comment.
A base URL of the services is ws:/centos7.subman.example.com:9091
.
There are a few services at the moment implemented:
-
a monitor of file changes
what? that's it! base url ws://centos7.subman.example.com:9091/monitor/
an example ws://centos7.subman.example.com:9091/monitor//etc/rhsm/rhsm.conf
ws://centos7.subman.example.com:9091/monitor/etc/rhsm/rhsm.conf
if you send something back to the connection it gives you back an actual content of the file
-
an execution of some command
what? that's it! base url ws://centos7.subman.example.com:9091/execute/
an example ws://centos7.subman.example.com:9091/execute//usr/bin/subscription-manager
ws://centos7.subman.example.com:9091/execute/usr/bin/subscription-manager
it is necessary to send args of the command after a connection is openned to execute the command
for example:
register --username TEST --password PSWD --auto-attach
See /etc/systemd/system/rhsm-services
for more details.
You can see a status of the services:
systemctl status rhsm-services
The tests live in its own repo actually. They fire up firefox and play with Cockpit Subscription Plugin.
cd ~/src
git clone https://github.com/RedHatQE/rhsm-cockpit-qe.git
cd rhsm-cockpit-qe
npm install
npm run e2e-setup
It is important to install npm
since it uses nodejs ecosystem
.
cd rhsm-cockpit-qe
npm run test
If you want to run just one test specification:
./node_modules/.bin/wdio wdio.conf.js test/spec/proxy-dialog.js
Configuration follows a style of The Twelve-Factor App
cd rhsm-cockpit-qe
cp env-example .env
vim .env
See env2 repo for more details.
If you want to stop running of a test at the right moment
you can set browser.debug()
in the code line whatever you want.
WDIO executer stops running and offers you a REPL console.
See Debugging of WebdriverIO test for details.
There are page objects that describe the main parts of Cockpit Subscription web application.
see rhsm-cockpit-qe/page_objects
.
Each page object desribes main parts and main operations on a proper web dialog, web page. This kind of separation of concern help developers to write well readable tests. See http://webdriver.io/guide/testrunner/pageobjects.html for more details.