Client

Gallery

Installation

Option #1 – Installing from source, see https://github.com/perfguru87/perftracker-lib/blob/master/README.md

Option #2 – Installing the latest version from github:

easy_install git+https://github.com/perfguru87/perftracker-lib.git

Option #3 – Installing the latest pre-built version from pypi.org

pip install perftrackerlib

Features set

  • PerfTracker client (examples/pt_suite_example.py)
    • suite example
    • customizable upload options
  •  The UI crawler library (examples/pt-wp-crawler.py)
    • selenium-based framework (on top of Chrome and Firefox browsers)
    • python-based browser simulators
    • export results to the perftracker server
    • browser memory consumption tracking
    • automatic login/logout with customizable:
      • login, password and submit buttons xpath/id/class names
    • automatic menu items recognition with customizsable:
      • menu item xpath
      • sub-menu item xpath
    • page rendering phases recognition:
      • browser timing interface support
      • ajax request completion based on browser logs and pending HTTP requests
      • HTTP requests whitelisting to bypass websockets and long polls completion wait
    • advanced reporting:
      • waterfall based requests view with information about requests size, compression, duration, status, etc
      • pages summary
      • HTML report with pages screenshot
  • The Artifacts management library (tools/pt-artifact-ctl.py):
    • see ptArtifact class in the perftrackerlib/client.py
  • Helper libraries
    • Large log file range parser (bi-sect)
    • Timelines visualization library (Py + HTML + JS)
    • HTTP pool library
    • Base benchmark class library with automatic data upload to perftracker server
    • Text table generation library
    • ‘Tee’ library (to copy stdout/stderr to a file)

Sources

https://github.com/perfguru87/perftracker-lib

Release Notes

  • 0.0.44 Feb 6, 2019
    • change: rename –remote_connstring to –remote-connstring
  • 0.0.43 Feb 6, 2019
    • feature: Add –remote_connstring option to UI crawler to run the tests on the remote selenium grid
  • 0.0.42 Dec 6, 2018
    • bugfix: Fix cpus count and topology detection
  • 0.0.41 Dec 3, 2018
    • feature: pt-suite-uploader.py – support the perftacker job json format as input (-j option)
    • feature: perftrackerlib/client.py – added ptEnvNode.cpus_topology
    • change: change -j option behaviour: was ‘-f my.json -j’, now ‘-j my.json’
    • bugfix: encode HTTP response message if upload failed
    • bugfix: helpers/ptshell.py – fix CPUs calculation on Mac
  • 0.0.40 Nov 13, 2018
    • bugfix: fix ptEnvNode().hw_info.ram_kb type to int
  • 0.0.39 Nov 9, 2018
    • feature: add addGrafanaLink method for ptSuite
    • feature: ptSuite().addTest() – now it is possible to use addTest to add iterations (if tag, category and group matches)
  • 0.0.38 Oct 20, 2018
    • feature: pt_suite_example_ab.py – added –time option to limit tests by time
    • feature: pt_suite_example_ab.py – added -f option to parse requests from file
    • bugfix: add missed requirements in requirements.txt
    • bugfix: fix server API errors encoding
  • 0.0.37 Oct 10, 2018
    • feature: helpers/shell.py – new library for local/remote process execution and basic OS/HW info collection
    • feature: perftrackerlib/browser/cp_crawler.py – added browser name and CPU GHz when calcullate automatic job title
    • feature: examples/pt_suite_example_ab.py – new suite example based on ab (apache benchmark)
  • 0.0.36 Oct 7, 2018
    • feature: helpers/timeline.py – added a custom data_id parameter to ptTask
  • 0.0.35 Oct 6, 2018
    • feature: timeline.py – ptDoc() – added add_body() method to add custom html body
    • feature: timeline.py – ptTimeline() – added the ‘cluster’ parameter to disable events clustering on zoom out
    • bugfix: client.py – fix error handling on job upload
  • 0.0.34 Oct 4, 2018
    • feature: client.py – ptSuite() – enable autocompression for stdout/stderr output logs in the –pt-log-upload mode
    • feature: timeline/timeline.js – smooth item text redraw while user scrolls the items
  • 0.0.33 Oct 2, 2018
    • feature: improve autotests and code coveragate in test.py
    • feature: perftrackerlib/client.py – ptSuite now has –pt-log-upload and –pt-log-ttl options to upload stdout & stderr to the server and link it to the job
    • feature: pt-artifact-ctl.py – added ‘dump’ command support to download and print an artifact to stdout
    • bugfix: pt-artifact-ctl.py – fix artifact name in the ‘list’ mode
  • o.0.32 Oct 1, 2018
    • feature: artifacts management (tools/pt-artifact-ctl.py, and ptArtifact class in the client.py)
  • 0.0.31 Sep 22, 2018
    • bugfix: browser/page.py – fix page size in the summary (print in KBytes, not in Bytes)
    • bugfix: browser/cp_engine.py – strip menu item title
  • 0.0.30 
    • perftracker-lib.spec – fix problem with /bin/pt-suite-uploader.py removal after ‘yum update’ or ‘rpm -ihv’. You have to delete (rpm -e) and then install (rpm -ihv) new version (>= 0.0.30) to resolve the issue 
  • 0.0.29 
    • examples/pt-suite-uploader.py – fix parsing of ‘less_better: false’
  • 0.0.28 
    • perftracker-lib.spec – added libjpeg-devel, zlib-devel requirements needed for Pillow installation
  • 0.0.27 
    • browser/cp_crawler.py – fix broken compatibility in crawl() return value
    • perftrackerlib/client.py
      • added project name validation on first upload
      • do not hardcode default project name anymore
      • fix ‘addOptions(pt_url=…) is deprecated’ message if crawler override pt portal URL
      • fix json serialization on old python2
  • 0.0.26 
    • perftrackerlib/client.py – automatically add http:// prefix if not specified in the –pt-url command line
    • perftrackerlib/client.py – fix –pt-product-name option handler
  • 0.0.25 
    • perftrackerlib/client.py – fix serialization to json for utf-8 members
    • perftracker-lib.spec – remove /bin/pt-suite-uploader.py on uninstall
  • 0.0.24 
    • deploy pt-suite-uploader.py to /bin (or python home bin/ dir path)
  • 0.0.23 
    • examples/pt-suite-uploader.py – a tool to parse tests results directly from text/json and upload to the server
  • 0.0.22 
    • perftrackerlib/client.py – fix missed fractional part of the scores below 100
  • 0.0.21 
    • perftrackerlib/client.py – fix exception in –pt-project option
  • 0.0.20 
    • examples/
      • new pt_suite_example_minimal.py
    • client.py
      • set correct defaults and make command line arguments optional
  • 0.0.19
    • installation
      • added MANIFEST.in to fix installation from pypi.org (missed requirements.txt)
  • 0.0.18
    • examples/pt-wp-crawler.py
      • fix exceptions in cp_skip_menu_item()
    • browser/
      • clear the user/password form field if it is not empty
      • fix page title in HTML report
      • optimize uncached pages retrival a bit since now this is frequent operation
      • use -g option to generate HTML report with pages details
      • fix problem with wrong link assignment to a menu item
      • fix cp_init_context() before the first login attempt
      • added sbmt_xpath parameter to specify submit button xpath
    • helpers/timeline.py
      • added the ‘groups_title’ parameter
      • timeline.js – set min group height to 25px
      • timeline.css – improve timeline event alignment
      • fix JS deprication warning
      • ptTimeline ‘title’ is now optional
      • timeline.js – fix initial range if ‘start’ and ‘end’ was passed to the Timeline constructor
    • installation
      • added missed *.js and *.css files to the list of installed artefacts
      • added perftracker-lib.spec
      • requirements.txt – exclude psycopg2
  • 0.0.17
    • let it be initial version…

ToDo