Child pages
  • Pyforge Installation Guide
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

Pyforge setup:

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:

      install HomeBrew
      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:

      install HomeBrew error
        : 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

        HomeBrew reinstall
        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:

install python
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

      configure .bash_profile
      # 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

    setup pyforge
    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

    Prior hosts configuration
    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:

      test 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	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 functional tests sample with run-pybot.py:

    Test Pyforge install
      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):

    Running a Pyforge test
    # 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:
  • No labels