Skip to main content

Main Features

Here are just a few of the things that api-automation-kit including:

  • Codeless Automation Framework For Performance and Rest API Tests - based on Streamlit and Locust python packages
  • API capbabilities - based on Requests python package
  • Upload Artifact to Pypi and Azure
  • API Test Plan Capabilities For Azure TFS
  • Interactive Test Report - based on Allure framework

Environment and Installations

# PyPI
pip install api-automation-kit

Code Examples:

UI-App:

# the code for open the ui app
import os.path
import api

path = os.path.dirname(__file__)
api.ui_app.run_app(main_path=path)
# run from command line
$ streamlit run ui.py

After a few seconds, the app will start on the default browser.

- Try to create your first API test like the example below:

Screenshot

Click on Save Result Check-Box for saving the Python syntax result:

Screenshot

The Python script moved to your project folder:

Screenshot

For run the test return to the web app and click on the Run Script.
After a few seconds, the test results will appear in a new tab (allure installation is required):

Screenshot

- Try to create your first Performance test like the example below:

Screenshot

Click on Save Result Check-Box for saving the Python syntax result:

Screenshot

The Python script moved to your project folder:

Screenshot

Before you run your test, please add a new master.conf file to your main project folder:
# master.conf basic arguments
web-host = localhost
web-port = 8089
master.conf folder location:

Screenshot

For run the test return to the web app and click on the Run Script.
After a few seconds a new local server will be open. click on the link that appear on the screen and start your performance test with Locust package (Read more about Locust):

Screenshot

Rest API:

# the code for open the ui app
import allure
import api


@allure.feature("Set Feature For get_en_stable")
@allure.description("Set Description For get_en_stable")        
def test_get_en_stable_():
    component_get_en_stable_()

@allure.step("Set Step Description For get_en_stable")
def component_get_en_stable_():
     api_instance = api.rest_api.ApiCapabilities()
     response = api_instance.get_request(url='http://docs.locust.io:80/en/stable/?', headers={"Content-Type":"application/json"})
     analyze_response(response, 200)


@allure.step("Expected Status Code")
def analyze_response(res, expected_status_code):
    if res.status_code != expected_status_code:
        assert False
    else:
        print(f"status code is {res.status_code}")
# run the tests from command line 
$ py.test rest_api.py --alluredir=tmp/allure_results
# generate report from command line 
$ allure serve tmp\allure_results

Upload Artifact:

Optional arguments (pypi configuration):

Parameter Description
--pypi-user the user for pypi
--pypi-password the password for pypi

Update the pip.ini file in your python virtual environemnt (azure configuration):

[global]
index-url=https://pypi.python.org/simple
extra-index-url=https://{organization-url}/{project}/_packaging/{feed-name}/pypi/simple/
# upload python package to azure or pypi
import os
from api import artifact
PYPI = True
AZURE = False
pypi_user = os.environ.get('pypi-user')
pypi_password = os.environ.get('pypi-password')
azure_feeds = '<azure-feed-1>'
dist_dir = os.path.dirname(__file__) + "/dist"
artifact.run_process(dist_dir=dist_dir, azure_feeds=azure_feeds, azure_artifact=AZURE,
                     pypi_artifact=PYPI, user=pypi_user, password=pypi_password)

Azure API:

Optional arguments:

Parameter Description
--organization-url azure organization url
--project azure project name
--owner azure user name
--access-token the password for azure authorization header to access REST APIs generate access token

how to get azure test plan object:

import api
# initiate azure test plan object
azure = api.azure_utils.AzureTestPlan()
# how to get test plan all objects
azure_tp = azure.get_test_plan()
# how to get test case
azure_tc = azure.get_test_case(plan_id={azure_plan_id}, suite_id={azure_suite_id}, test_case_id={azure_test_case_id}) 

how to run test based on allure framework (https://docs.qameta.io/allure):

step 1 - run test & generate report:

import allure


@allure.feature("Set Feature Name For test_component function")
@allure.description("Set Description For test_component function")
def test_component():
    step_1()


@allure.step("Set Step 1 Description")
def step_1():
    pass


@allure.step("Set Step 2 Description")
def step_2():
    pass


@allure.step("Set Step 3 Description ")
def step_3():
    pass
# run the tests from command line 
$ py.test {script_name}.py --alluredir=tmp/allure_results
The test result will be in your project folder:

Screenshot

step 2 - read test report & create new test on azure board:

import api

azure = api.azure_utils.AzureTestPlan()
json_path = '{allure_json_result_path}'
azure.create_new_tc_on_azure(json_path=json_path)

step 3 - the test case was created on azure:

Screenshot

Dependencies

  • allure-pytest~=2.9.43
  • allure-python-commons~=2.9.43
  • setuptools~=57.4.0
  • genson~=1.2.2
  • artifacts-keyring~=0.3.1
  • twine~=3.4.2
  • wheel~=0.37.0
  • pandas~=1.3.3
  • streamlit~=1.0.0
  • locust~=2.2.3
  • requests~=2.26.0
  • azure-devops==6.0.0b4
  • xmltojson~=0.2.0
  • msrest~=0.6.21

License

MIT

Metadata

Release files for api-automation-kit 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for api-automation-kit 0.7.0
File Size Uploaded Provenance Actions
api-automation-kit-0.7.0.tar.gz 12.4 kB Without provenance Details for api-automation-kit-0.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for api-automation-kit 0.7.0
File Interpreter ABI Platform Actions
api_automation_kit-0.7.0-py3-none-any.whl Python 3 none any Details for api_automation_kit-0.7.0-py3-none-any.whl

Total release size: 24.1 kB

Release files / api-automation-kit-0.7.0.tar.gz

Download URL api-automation-kit-0.7.0.tar.gz
Size 12.4 kB
Tags Source
SHA-256 checksum
How to use checksums
91e707bf138b78936ab2df8f6eea4790cd7b65cbf29b78bc930dc079978f8a2d
BLAKE2b-256 checksum
How to use checksums
843f289017b8ac7277070ffa99deec9185f65b0bdfd0d9e2c28ba088c2cd3ebb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

Release files / api_automation_kit-0.7.0-py3-none-any.whl

Download URL api_automation_kit-0.7.0-py3-none-any.whl
Size 11.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7039d0fc92da3cf27acc552be186a884ddb7c2f8f5070e78c82ecea87a49dddc
BLAKE2b-256 checksum
How to use checksums
bff47eb1e8a42d99aac60954c2a53db16b29c34f64112d1a8fb05991871b8251
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.2 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.8

Security for api-automation-kit 0.7.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page