...
Pyforge is a python-based functional testing framework used by IG QA. It is also very useful in quickly configuring an environment representing a particular use-case.
To install:
Install HomeBrew:
Code Block |
---|
language | bash |
---|
title | install HomeBrew |
---|
collapse | true |
---|
|
15:10:05 2 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install: |
If this error occurs, sadly you will have to install xcode (1hr?), open and accept licence:
Code Block |
---|
language | bash |
---|
title | install HomeBrew error |
---|
collapse | true |
---|
|
: No such update
No updates are available.
==> /usr/bin/sudo /bin/rm -f /tmp/.com.apple.dt.CommandLineTools.installondemand.in-progress
==> /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools
xcode-select: error: invalid developer directory '/Library/Developer/CommandLineTools'
Failed during: /usr/bin/sudo /usr/bin/xcode-select --switch /Library/Developer/CommandLineTools |
You will then need to reinstall after xcode licence acceptance
Code Block |
---|
language | bash |
---|
title | HomeBrew reinstall |
---|
collapse | true |
---|
|
15:37:23 16 $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
...
==> Installation successful!
==> Homebrew has enabled anonymous aggregate user behaviour analytics.
Read the analytics documentation (and how to opt-out) here:
https://docs.brew.sh/Analytics.html
==> Next steps:
- Run `brew help` to get started
- Further documentation:
https://docs.brew.sh |
Install python
...
Code Block |
---|
language | bash |
---|
title | install python |
---|
collapse | true |
---|
|
15:40:24 18 $ brew install python
...
Pip and setuptools have been installed. To update them
pip2 install --upgrade pip setuptools
You can install Python packages with
pip2 install <package>
They will install into the site-package directory
/usr/local/lib/python2.7/site-packages
See: https://docs.brew.sh/Homebrew-and-Python.html
==> Summary
?? /usr/local/Cellar/python/2.7.14: 6,344 files, 87.5MB, built in 2 minutes 20 seconds
|
Update bash
Code Block |
---|
language | bash |
---|
title | configure .bash_profile |
---|
collapse | true |
---|
|
# update .bash_profile
15:43:03 19 $ vi ~/.bash_profile
15:44:48 20 $ source ~/.bash_profile
15:44:53 21 $ which python
/usr/local/opt/python/libexec/bin/python
15:45:00 22 $ which pip
/usr/local/opt/python/libexec/bin/pip |
Set-up Pyforge
Code Block |
---|
language | bash |
---|
title | setup pyforge |
---|
collapse | true |
---|
|
15:45:28 24 $ cd ~/dev/pyforge/
15:45:31 25 $ ls
PyBot configure.py run-pybot.py
README.md docs run-rebot.py
archives lib scripts
cleanup.py requirements sonar-project.properties
config results
# configure and see archiving
15:45:32 26 $ ./configure.py
15:46:04 26 $ ls archives/
[empty]
15:46:30 29 $ ./configure.py
********************************************************************************
configure.py
********************************************************************************
--------------------------------------------------------------------------------
Checking if pip is installed...
--------------------------------------------------------------------------------
pip (9.0.1) is correctly installed
--------------------------------------------------------------------------------
Checking if unzip is installed...
--------------------------------------------------------------------------------
unzip is correctly installed
--------------------------------------------------------------------------------
Checking if gcc is installed...
--------------------------------------------------------------------------------
gcc is correctly installed
--------------------------------------------------------------------------------
Installing requirements...
--------------------------------------------------------------------------------
pip install --no-cache-dir --upgrade --user -r "/Users/wayne.morrison/dev/pyforge/requirements/PyForge.txt"
All requirements in PyForge.txt have been installed.
--------------------------------------------------------------------------------
Installing selenium drivers...
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
Selenium driver : chromedriver installation
--------------------------------------------------------------------------------
chromedriver is correctly installed
--------------------------------------------------------------------------------
Selenium driver : geckodriver installation
--------------------------------------------------------------------------------
geckodriver is correctly installed
--------------------------------------------------------------------------------
Generating config/config.cfg...
--------------------------------------------------------------------------------
Generate config file "/Users/wayne.morrison/dev/pyforge/config/config.cfg"
Cannot find fqdn in 'waynemorrisons-MacBook-Pro.local', reverting to 'localhost' |
Confirm localhosts has entries as expected for products
Code Block |
---|
language | bash |
---|
title | Prior hosts configuration |
---|
collapse | true |
---|
|
15:49:22 30 $ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost waynemorrisons-MacBook-Pro
255.255.255.255 broadcasthost
::1 localhost waynemorrisons-MacBook-Pro |
...
Change to:
Code Block |
---|
language | bash |
---|
title | test hosts |
---|
collapse | true |
---|
|
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost waynemorrisons-MacBook-Pro waynemorrisons-MacBook-Pro.local openam.example.com openig.example.com opendj.example.com app.example.com openidm.example.com sp.example.com sp1.example.com sp2.example.com
255.255.255.255 broadcasthost
::1 localhost waynemorrisons-MacBook-Pro waynemorrisons-MacBook-Pro.local |
Configure config/config.cfg for your host names and product versions
Run Pyforge tests
Run functional tests sample with run-pybot.py:
Code Block |
---|
language | bash |
---|
title | Test Pyforge install |
---|
collapse | true |
---|
|
15:55:49 38 $ ./run-pybot.py -s Sample.Basic ig
********************************************************************************
run-pybot.py
********************************************************************************
cmd: run-pybot.py -s Sample.Basic ig
While the tests are running you may tail the debug log at:
/Users/wayne.morrison/dev/pyforge/results/20170926-155641/debug.txt
================================================================================================================
OpenIG
================================================================================================================
OpenIG.Functional :: Functional Tests Root
================================================================================================================
OpenIG.Functional.Sample
================================================================================================================
OpenIG.Functional.Sample.Basic
================================================================================================================
Missing_Config | PASS |
----------------------------------------------------------------------------------------------------------------
Wrong_Config | PASS |
----------------------------------------------------------------------------------------------------------------
Pure_Proxy_Config | PASS |
----------------------------------------------------------------------------------------------------------------
OpenIG.Functional.Sample.Basic | PASS |
3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
================================================================================================================
OpenIG.Functional.Sample | PASS |
3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
================================================================================================================
Products Full Version
OpenDJ: 5.5.0-SNAPSHOT 8c159b9cf44
OpenIG: 5.5.0-SNAPSHOT 8a9898b5688
OpenIG.Functional :: Functional Tests Root | PASS |
3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
================================================================================================================
OpenIG | PASS |
3 critical tests, 3 passed, 0 failed
3 tests total, 3 passed, 0 failed
================================================================================================================
Debug: /Users/wayne.morrison/dev/pyforge/results/20170926-155641/debug.txt
Output: /Users/wayne.morrison/dev/pyforge/results/20170926-155641/output.xml
Log: /Users/wayne.morrison/dev/pyforge/results/20170926-155641/log.html
Report: /Users/wayne.morrison/dev/pyforge/results/20170926-155641/report.html
# check results/latest for logs etc
16:02:01 40 $ ls results/
20170926-155641 data latest
16:02:05 41 $ ls results/latest
Sample config debug.txt log.html output.xml report.html tmp |
Run a long-lived manual test (to install products ready to configure):
Code Block |
---|
language | bash |
---|
title | Running a Pyforge test |
---|
collapse | true |
---|
|
# running a manual test - long-lived
#
# - ManualTest configured to run ig and am only
# - failures may occur if port taken (or pybot version still running)
09:47:25 58 $ ./cleanup -f
...
09:47:45 59 $ ./run-pybot.py -s ManualTest -n ig
# Check debug.log for errors. |
Docs
...