Skip to content

Instantly share code, notes, and snippets.

@jachym
Last active March 20, 2016 21:31
Show Gist options
  • Save jachym/51d5d71d0df6d11e58a2 to your computer and use it in GitHub Desktop.
Save jachym/51d5d71d0df6d11e58a2 to your computer and use it in GitHub Desktop.
# Integration testing of Web Mapping applications (including web mapping server) using Python
Authors: Jáchym Čepický, Magdalena Kabátová, Alžběta Gardoňová, Eva Jelínková
Keywords: Python, Integration testing, Continuous integration, Selenium
Abstract:
A unit test is a test written by the programmer to verify that a relatively small piece of code is doing what it is
intended to do. They are narrow in scope, they should be easy to write and execute. The tests are intended for the use
of the programmer.
An integration test is done to demonstrate that different pieces of the system work together. Integration tests cover
whole applications, and they require much more effort to put together. They usually require resources like database
instances and hardware to be allocated for them. The integration tests do a more convincing job of demonstrating the
system works (especially to non-programmers) than a set of unit tests can, at least to the extent the integration test
environment resembles production.
When you are developing applications, you need to write tests. Can you ship what’s on Master right now? If not, it's not
agile. Screw unit tests. Unit tests can be great but they tightly couple your tests to your code, making it really
fragile and anti Agile.
We will show integration testing of web mapping applications using Python bindings to Selenium browser automation tool.
In this way, we can test JavaScript application from Python environment, using standard `unittest` module.
Since Python is very easy to be used and it's very universal language, it'se easy to be lerned by non-programming
coworkers, who can automate application tests and help the developers with testing.
Using integration tests in continuous integration development, enables us to be more agile, making sure that both parts
- frontend and backend remain integrated even bigger refactoring occures.
Testing the application itself is one step, but how to make sure, the background data load well? For this task, we developed
WMSChecker project: based on configuration file containing list of servers and desired layers, final report is constructed
about how the service and each layer published via OGC WMS is performing. This is used in our Jenkins environment, so that
system administrator can have overview about current status of running custom nad 3rd party services.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment