api-automation-kit-package (beta version)
Project description
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
- Install python 3.9
- Install Latest Pycharm IDE and open it
- Open project directory and Create Virtual Environment
- Install Scoop (for windows) See the full installation instructions for Scoop
- Install Allure See the full installation instructions for allure
- Install api-automation-kit Package from pypi:
# 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:
Click on Save Result Check-Box for saving the Python syntax result:
The Python script moved to your project folder:
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):
- Try to create your first Performance test like the example below:
Click on Save Result Check-Box for saving the Python syntax result:
The Python script moved to your project folder:
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:
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):
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:
Parameter | Description |
---|---|
--pypi-user | the user for upload a new artifact to pypi |
-ג€“pypi-password | the password for upload a new artifact to pypi |
# 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>', '<azure-feed-2>']
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:
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:
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
See the full installation instructions for minimum supported versions of required, recommended and optional dependencies.
License
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
api-automation-kit-0.5.0.tar.gz
(12.4 kB
view hashes)
Built Distribution
Close
Hashes for api_automation_kit-0.5.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 19373c460a517fd22e0e34abf407e7d2c93658fce0f97ca0079d7db5ba6b0cc9 |
|
MD5 | 99599a98e95e4c89445da8d9fade8829 |
|
BLAKE2b-256 | 0e190f21bc5a5f929dc60ade171f71afa56c70d5bf79eb8cd97155a0922b36cc |