Python - Matplotlib and Numpy on Debian/Ubuntu
There are `python-matplotlib` and `python-numpy` packages in the Debian/Ubuntu repos.
However, if you want to run in a virtualenv (with no-site-packages), and pip install these packages from PyPI, you need some system dependencies installed first to build with:
$ sudo apt-get install build-essential python-dev libfreetype6-dev libpng-dev python-virtualenvThen, you can create a virtualenv, and the installers for Numpy and Matplotlib will work:
$ virtualenv env $ cd env $ source bin/activate (env)$ pip install numpy matplotlib ... ... Successfully installed numpy matplotlib Cleaning up...(tested on Ubuntu Oneiric 11.10 and Ubuntu Precise 12.04 alpha)
Officially Introducing "SST" (Python Web Test Framework)
"SST (selenium-simple-test) is a framework built on Selenium WebDriver, using Python to make writing functional web tests easier with code."
Since early 2011, I have been working for Canonical on the Infrastructure Systems Development team (Core Dev Ops).
[pic of canonical-isd-hackers at UDS-P-Orlando]
A by-product of our recent development efforts is a web testing framework. It has been available on Launchpad for a while, but I've never really announced it in public. We are using SST internally, and I want to expose it to a wider audience.
What is Selenium WebDriver?
Selenium (WebDriver) is a popular open-source library for automating browsers. It can be used to create functional/acceptance tests of a web application. The Selenium client bindings provide API's that allow you to programatically drive a browser and access web content/elements. The bindings are available and supported for many languages and platforms.
While working directly with Selenium API's from code is fine for ad-hoc browser interaction, it is rather low-level and lacks things necessary for creating suites of automated web tests. For larger-scale testing, you will soon want to use a framework to help organize, execute, and report.
Introducing SST...
SST aims to keep things simple.
Tests are made up of scripts, created by composing actions that drive a browser and assert conditions. You have the flexibility of the full Python language, along with a convenient set of functions to simplify web testing.
SST framework consists of:
- user actions and assertions (API) in Python
- test case loader (generates/compiles scripts to unittest cases)
- console test runner
- data parameterization/injection
- selectable output reports
- selectable browsers
- headless (xvfb) mode
- screenshots on errors
Test output can be displayed to the console, saved as an HTML report, or JUnit-compatible XML for compatibility with CI systems.
SST is free open source software (Apache Licensed). SST is primarily being developed on Linux, specifically Ubuntu. It should work fine on other platforms, but any issues (or even better - patches) should be reported on the Launchpad project:
I just uploaded SST 0.1.0 to PyPI:
go ahead, give it a try:
- `$ [sudo] pip install sst`
documentation and more info:
a sample test script in SST:
from sst.actions import * go_to('http://www.ubuntu.com/') assert_title_contains('Ubuntu homepage')Here is the development progress of SST (shown as a code_swarm visualization) over the past 8 months:
Special thanks to all the SST code committers so far:
- Danny Tamez
- Julien Funk
- Kenneth Koontz
- Leo Arias
- Lukasz Czyzykowkski
- Rick McBride
- Sidnei da Silva
Extra special thanks to SST's initial creator:
- Michael Foord
Happy New Year!
-Corey Goldberg
Python - Headless Selenium WebDriver Tests using PyVirtualDisplay
I need to integrate my functional UI tests (Selenium/WebDriver) with my Jenkins CI system. The problem is that my Jenkins CI server has no display, so I must run my GUI tests in a headless X-server.
A colleague pointed me to PyVirtualDisplay, a Python wrapper for Xvfb and Xephyr.
This makes running headless Python Selenium/WebDriver tests very easy.
Here is some Python code showing WebDriver with a virtual display provided by Xvfb:
#!/usr/bin/env python from pyvirtualdisplay import Display from selenium import webdriver display = Display(visible=0, size=(800, 600)) display.start() # now Firefox will run in a virtual display. # you will not see the browser. browser = webdriver.Firefox() browser.get('http://www.google.com') print browser.title browser.quit() display.stop()install PyVirtualDisplay on Ubuntu/Debian:
$ sudo apt-get install xvfb python-pip $ sudo pip install pyvirtualdisplay"Web Performance Testing night" in Boston/Cambridge - Python Meetup Dec. 19
I will be speaking at: "Web Performance Testing, lightning talks, and beers" at the Boston Python User Group.
Event Info: http://meetup.bostonpython.com/events/36664122/
Date: Monday, December 19, 2011, 7:00 PM
Location: Microsoft NERD, Cambridge, MA
"Corey Goldberg of Canonical and Dan Kuebrich of Tracelytics will tag-team to tell us about web performance testing, and a few interesting tools they've built."
Free pizza and beer!
Come Join!
Edit/Update:
Thanks to all who attended! The night was a big success.
The slides from my portion of the presentation are posted here:
webperf.html