Skip to main content

Automated smart testing strategies for web services.

Project description

Agilkia: AGILe (K)Coverage with Intelligence Artificial

A Python toolkit for building smart testing tools for web services and web sites.

Key Features:

  • Automated testing of SOAP web services with WSDL descriptions.
  • Manage sets of traces (load/save to JSON, etc.).
  • Convert traces to Pandas DataFrame for data analysis / machine learning.
  • Generate random tests, or 'smart' tests from an ML model.
  • Split traces into smaller traces (sessions).
  • Cluster traces on various criteria, to see common / rare behaviours.
  • Visualise clusters of tests.

About the Name

Apart from the clumsy acronym, the name Agilkia was chosen because it is closely associated with the name 'Philae', and this tool came out of the Philae research project.

Agilkia is an island in the reservoir of the Aswan Low Dam, downstream of the Aswan Dam and Lake Nasser, Egypt.
It is the current location of the ancient temple of Isis, which was moved there from the islands of Philae after dam water levels rose.

Agilkia was also the name given to the first landing place of the Philae landing craft on the comet 67P/Churyumov–Gerasimenko, during the Rosetta space mission.

This 'agilkia' library is part of the Philae research project:

http://projects.femto-st.fr/philae/en

It is open source software under the MIT license. See LICENSE.txt

People

  • Architect and developer: AProf. Mark Utting
  • Project leader: Prof. Bruno Legeard

Example Usage

Here is a simple example of initial random testing of a web service running on the URL http://localhost/cash:

import agilkia

# sample input values for named parameters
input_values = {
    "username"  : ["TestUser"],
    "password"  : ["<GOOD_PASSWORD>"] * 9 + ["bad-pass"],  # wrong 10% of time
    "version"   : ["2.7"] * 9 + ["2.6"],      # old version 10% of time
    "account"   : ["acc100", "acc103"],       # test these two accounts equally
    "deposit"   : [i*100 for i in range(8)],  # a range of deposit amounts
}

def first_test():
    tester = agilkia.RandomTester("http://localhost/cash",
        parameters=input_values)
    tester.set_username("TestUser")   # will prompt for password
    for i in range(10):
        tr = tester.generate_trace(length=30)
        print(f"========== trace {i}:\n  {tr}")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agilkia-0.6.0.tar.gz (743.0 kB view details)

Uploaded Source

Built Distribution

agilkia-0.6.0-py3-none-any.whl (27.8 kB view details)

Uploaded Python 3

File details

Details for the file agilkia-0.6.0.tar.gz.

File metadata

  • Download URL: agilkia-0.6.0.tar.gz
  • Upload date:
  • Size: 743.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for agilkia-0.6.0.tar.gz
Algorithm Hash digest
SHA256 4c49ec2df465c45f7e8c06cc79f6b22173776a52bc08d5e926195c158fd476aa
MD5 a03fe89fd3881bd9f8a9e0eb8b6ec66a
BLAKE2b-256 7f558c57ac3096cfa00e62b518791402b324eb0c511cda76ddc32d8d33cea309

See more details on using hashes here.

File details

Details for the file agilkia-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: agilkia-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 27.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.23.0

File hashes

Hashes for agilkia-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3bcb7a365c7f48c4d6f8c4d7fd3d696933149774b825eb4f608683819d966c9
MD5 191bbe52e54445b34095cf1db34c0606
BLAKE2b-256 5bdebbcb6293223fe4537bc8e24e7d1acddf57d3fa0ef5356dc21fee1d3486a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page