Metadata-Version: 2.1
Name: agilkia
Version: 0.2.2
Summary: Automated smart testing strategies for web services.
Home-page: https://github.com/utting/bus-testing
License: UNKNOWN
Keywords: automated testing, smart testing, machine learning test models, Philae
Author: Mark Utting
Author-email: utting@usc.edu.au
Requires-Python: >= 3.7
Description-Content-Type: text/markdown
Requires-Dist: fastcluster>=1.1.25
Requires-Dist: flit>=1.3
Requires-Dist: ipython>=7.8.0
Requires-Dist: jsonpickle>=1.2
Requires-Dist: matplotlib>=3.1.1
Requires-Dist: pandas>=0.25.1
Requires-Dist: pillow>=6.1.0
Requires-Dist: pip>=19.2.2
Requires-Dist: requests>=2.22.0
Requires-Dist: scikit-learn>=0.21.2
Requires-Dist: scipy>=1.3.1
Requires-Dist: zeep>=3.4.0
Requires-Dist: liac-arff>=2.4.0
Requires-Dist: pytest >=5.1.0; extra == "test"
Requires-Dist: pytest-cov>=2.7.1; extra == "test"
Provides-Extra: test

# Agilkia: AGILe (K)Coverage with Intelligence Artificial

Automated smart testing tools for web services.

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

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

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



# Example Usage

Here is a simple example of initial dumb random testing of a web service
called "CASH" running on a server http://localhost/:
```
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",
        services=["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}")
```
 

