Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
73 changes: 27 additions & 46 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,20 @@
# Table of contents
> ITE Intro \
# Table of contents
> Editor components \
> GUI Testing components \
> WEB Testing components \
> API Testing components \
> Load & Stress Testing components
> GUI components \
> WEB components \
> API components \
> Load components
---
## What is ITE
## What is Automation Editor
> Project Kanban \
> https://github.com/orgs/Integrated-Testing-Environment/projects/4/views/1 \
> Integrated Testing Environment (ITE)
> * ITE mainly provides an integrated automated testing environment.
> * ITE is composed of the following components:
> https://github.com/orgs/Intergration-Automation-Testing/projects/2/views/1 \
> Tool for automation
> * Automation Editor is composed of the following components:
>> * Editor。
>> * GUI Testing。
>> * Web Testing。
>> * API Testing。
>> * Load & Stress Testing。
---
## ITE Testing

> How does ITE perform self-testing?
> * CircleCI & GitHub Actions。
>> * What are the benefits of using CircleCI and GitHub Actions?
>> * They provide GitHub/Gitlab hooks for automated testing on every commit.
>> * They provide detailed test logs.
>> * They allow for automatic deployment to selected environments.
>> * They make it easy to specify branches for testing.
>> * They can parallelize multiple tests for faster execution.
---
## ITE Dev
> * ITE's development process: CI/CD (Continuous Integration/Continuous Deployment).
> * Continuous Integration: The longer the code is away from the last update, the higher the risk, so continuous integration encourages committing and automated testing after completing each part to reduce risk.
> * Continuous Deployment: Continuously deploying the code to the real environment for testing, usually achieved through automation.
>> * GUI Automation。
>> * Web Automation。
>> * API Automation。
>> * Load Automation。
---
### JEditor
> * JEditor is a simple text editor, but it has all the necessary features.
Expand All @@ -49,8 +31,8 @@
>> * Run shell commands.
---
### GUI Testing components
> Image & Coordinate based GUI Testing \
> GUI automated testing based on image comparison and coordinates. \
> Image & Coordinate based GUI Automation \
> GUI automated based on image comparison and coordinates. \
> Cross-platform and cross-programming language.\
> Solve problems:
>> * Provide automation execution for repetitive tasks.
Expand All @@ -62,8 +44,8 @@
>> * Can use keywords for development to improve readability.
---
### WEB Testing components
> Multiton Selenium Instance testing \
> The WEB Testing component is a web automation testing solution based on Selenium. \
> Multiton Selenium Instance Automation \
> The WEB Automation component is a web automation solution based on Selenium. \
> It wraps Selenium and therefore has all the functionality of Selenium. \
> What problems does it solve?
>> * Automatically downloads and updates the required web driver, so users no longer need to install it manually.
Expand All @@ -74,7 +56,7 @@
>> * Offers a CLI mode for Web Testing.
---
### API Testing components
> Simple way to testing HTTP/S & Soap \
> Simple way to Automation Requests HTTP/S & Soap \
> Wrapper for Requests package, designed for those with experience using Requests. \
> Send HTTP/S and SOAP requests with a simple line of code or keyword. \
> Detailed information on Requests and Responses. \
Expand All @@ -96,12 +78,11 @@

### Features

> * ITE GUI for beginner
> * GUI testing (use AutoControl)
> * API testing (use APITestka)
> * Web testing (use WebRunner)
> * Loading testing (use LoadDensity)
> * Multi test task runner (multi process)
> * GUI Automation (use AutoControl)
> * API Automation (use APITestka)
> * Web Automation (use WebRunner)
> * Loading Automation (use LoadDensity)
> * Multi test task runner (multiprocess, but without AutoControl)
> * you can run multi testing on same time
> * open log window to check testing result
> * Send mail when testing failure (need to setting mail)
Expand All @@ -112,12 +93,12 @@

[![CircleCI](https://dl.circleci.com/status-badge/img/gh/Integrated-Testing-Environment/Integration-testing-environment/tree/main.svg?style=svg)](https://dl.circleci.com/status-badge/redirect/gh/Integrated-Testing-Environment/Integration-testing-environment/tree/main)

[![ITE GitHub Actions Dev](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_dev.yml/badge.svg)](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_dev.yml)
[![GitHub Actions Dev](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_dev.yml/badge.svg)](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_dev.yml)

[![ITE GitHub Actions Stable](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_stable.yml/badge.svg)](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_stable.yml)
[![GitHub Actions Stable](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_stable.yml/badge.svg)](https://github.com/JE-Chen/Integration-testing-environment/actions/workflows/ITE-github-actions_stable.yml)

### install
#### we suggest install full package
* pip install integration_testing_environment[full_extension]
* pip install automation_editor[full_extension]
#### if we don't want to use send after test
* pip install integration_testing_environment
* pip install automation_editor
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from integration_testing_environment.integration_testing_environment_ui\
.editor_main.main_ui import start_editor
__all__ = [
"start_editor"
]
from automation_editor.automation_editor_ui\
.editor_main.main_ui import start_editor

__all__ = [
"start_editor"
]
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@
from je_editor import EditorMain
from qt_material import apply_stylesheet

from integration_testing_environment.integration_testing_environment_ui. \
from automation_editor.automation_editor_ui. \
menu.api_testka_menu.build_api_testka_menu import set_apitestka_menu
from integration_testing_environment.integration_testing_environment_ui. \
from automation_editor.automation_editor_ui. \
menu.auto_control_menu.build_autocontrol_menu import set_autocontrol_menu
from integration_testing_environment.integration_testing_environment_ui.menu. \
from automation_editor.automation_editor_ui.menu. \
load_density_menu.build_load_density_menu import set_load_density_menu
from integration_testing_environment.integration_testing_environment_ui \
from automation_editor.automation_editor_ui \
.menu.web_runner_menu.build_webrunner_menu import set_web_runner_menu
from integration_testing_environment.integration_testing_environment_ui.syntax.syntax_extend import \
from automation_editor.automation_editor_ui.syntax.syntax_extend import \
syntax_extend_package


Expand All @@ -27,6 +27,7 @@ def __init__(self):
set_load_density_menu(self)
set_web_runner_menu(self)
syntax_extend_package(self)
self.setWindowTitle("ITE & RPA")


def start_editor():
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QMainWindow

from integration_testing_environment.utils.manager.package_manager.package_manager_class import package_manager
from integration_testing_environment.utils.test_executor.api_testka.api_testka_process import call_api_testka_test, \
from automation_editor.utils.manager.package_manager.package_manager_class import package_manager
from automation_editor.utils.test_executor.api_testka.api_testka_process import call_api_testka_test, \
call_api_testka_test_with_send, call_api_testka_test_multi_file, call_api_testka_test_multi_file_and_send


Expand Down Expand Up @@ -66,7 +66,7 @@ def set_apitestka_menu(ui_we_want_to_set: QMainWindow):
ui_we_want_to_set.open_apitestka_github_action = QAction("Open APITestka GitHub")
ui_we_want_to_set.open_apitestka_github_action.triggered.connect(
lambda: open_web_browser(
"https://github.com/Integrated-Testing-Environment/APITestka"
"https://github.com/Intergration-Automation-Testing/APITestka"
)
)
ui_we_want_to_set.apitestka_help_menu.addAction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QMainWindow

from integration_testing_environment.utils.manager.package_manager.package_manager_class import package_manager
from integration_testing_environment.utils.test_executor.auto_control.auto_control_process import \
from automation_editor.utils.manager.package_manager.package_manager_class import package_manager
from automation_editor.utils.test_executor.auto_control.auto_control_process import \
call_auto_control_test, call_auto_control_test_with_send, call_auto_control_test_multi_file, \
call_auto_control_test_multi_file_and_send

Expand Down Expand Up @@ -67,7 +67,7 @@ def set_autocontrol_menu(ui_we_want_to_set: QMainWindow):
ui_we_want_to_set.open_autocontrol_github_action = QAction("Open AutoControl GitHub")
ui_we_want_to_set.open_autocontrol_github_action.triggered.connect(
lambda: open_web_browser(
"https://github.com/Integrated-Testing-Environment/AutoControl"
"https://github.com/Intergration-Automation-Testing/AutoControl"
)
)
ui_we_want_to_set.autocontrol_help_menu.addAction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QMainWindow

from integration_testing_environment.utils.manager.package_manager.package_manager_class import package_manager
from integration_testing_environment.utils.test_executor.load_density.load_density_process import \
from automation_editor.utils.manager.package_manager.package_manager_class import package_manager
from automation_editor.utils.test_executor.load_density.load_density_process import \
call_load_density_test, call_load_density_test_with_send, call_load_density_test_multi_file, \
call_load_density_test_multi_file_and_send

Expand Down Expand Up @@ -67,7 +67,7 @@ def set_load_density_menu(ui_we_want_to_set: QMainWindow):
ui_we_want_to_set.open_load_density_github_action = QAction("Open LoadDensity GitHub")
ui_we_want_to_set.open_load_density_github_action.triggered.connect(
lambda: open_web_browser(
"https://github.com/Integrated-Testing-Environment/LoadDensity"
"https://github.com/Intergration-Automation-Testing/LoadDensity"
)
)
ui_we_want_to_set.load_density_help_menu.addAction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
from PySide6.QtGui import QAction
from PySide6.QtWidgets import QMainWindow

from integration_testing_environment.utils.manager.package_manager.package_manager_class import package_manager
from integration_testing_environment.utils.test_executor.web_runner.web_runner_process import call_web_runner_test, \
from automation_editor.utils.manager.package_manager.package_manager_class import package_manager
from automation_editor.utils.test_executor.web_runner.web_runner_process import call_web_runner_test, \
call_web_runner_test_with_send, call_web_runner_test_multi_file, call_web_runner_test_multi_file_and_send


Expand Down Expand Up @@ -66,7 +66,7 @@ def set_web_runner_menu(ui_we_want_to_set: QMainWindow):
ui_we_want_to_set.open_web_runner_github_action = QAction("Open WebRunner GitHub")
ui_we_want_to_set.open_web_runner_github_action.triggered.connect(
lambda: open_web_browser(
"https://github.com/Integrated-Testing-Environment/LoadDensity"
"https://github.com/Intergration-Automation-Testing/WebRunner"
)
)
ui_we_want_to_set.web_runner_help_menu.addAction(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
from PySide6.QtGui import QTextCharFormat, QColor
from PySide6.QtWidgets import QMainWindow

from integration_testing_environment.integration_testing_environment_ui.syntax.syntax_keyword import \
from automation_editor.automation_editor_ui.syntax.syntax_keyword import \
package_keyword_list
from integration_testing_environment.utils.manager.package_manager.package_manager_class import package_manager
from automation_editor.utils.manager.package_manager.package_manager_class import package_manager


def syntax_extend_package(main_window: QMainWindow):
Expand Down
Original file line number Diff line number Diff line change
@@ -1,36 +1,36 @@
import sys
from email.mime.multipart import MIMEMultipart
from integration_testing_environment.utils.exception.exception_tags import send_html_exception_tag
from integration_testing_environment.utils.exception.exceptions import ITESendHtmlReportException
def send_after_test(html_report_path: str = None):
try:
from je_mail_thunder import SMTPWrapper
mail_thunder_smtp: SMTPWrapper = SMTPWrapper()
if html_report_path is None and mail_thunder_smtp.login_state is True:
user: str = mail_thunder_smtp.user
with open("default_name.html", "r+") as file:
html_string: str = file.read()
message = mail_thunder_smtp.create_message_with_attach(
html_string,
{"Subject": "Test Report", "To": user, "From": user},
"default_name.html", use_html=True)
mail_thunder_smtp.send_message(message)
mail_thunder_smtp.quit()
elif mail_thunder_smtp.login_state is True:
user: str = mail_thunder_smtp.user
with open(html_report_path, "r+") as file:
html_string: str = file.read()
message: MIMEMultipart = mail_thunder_smtp.create_message_with_attach(
html_string,
{"Subject": "Test Report", "To": user, "From": user},
html_report_path, use_html=True)
mail_thunder_smtp.send_message(message)
mail_thunder_smtp.quit()
else:
raise ITESendHtmlReportException
except ITESendHtmlReportException as error:
print(repr(error), file=sys.stderr)
print(send_html_exception_tag, file=sys.stderr)
import sys
from email.mime.multipart import MIMEMultipart

from automation_editor.utils.exception.exception_tags import send_html_exception_tag
from automation_editor.utils.exception.exceptions import ITESendHtmlReportException


def send_after_test(html_report_path: str = None):
try:
from je_mail_thunder import SMTPWrapper
mail_thunder_smtp: SMTPWrapper = SMTPWrapper()
if html_report_path is None and mail_thunder_smtp.login_state is True:
user: str = mail_thunder_smtp.user
with open("default_name.html", "r+") as file:
html_string: str = file.read()
message = mail_thunder_smtp.create_message_with_attach(
html_string,
{"Subject": "Test Report", "To": user, "From": user},
"default_name.html", use_html=True)
mail_thunder_smtp.send_message(message)
mail_thunder_smtp.quit()
elif mail_thunder_smtp.login_state is True:
user: str = mail_thunder_smtp.user
with open(html_report_path, "r+") as file:
html_string: str = file.read()
message: MIMEMultipart = mail_thunder_smtp.create_message_with_attach(
html_string,
{"Subject": "Test Report", "To": user, "From": user},
html_report_path, use_html=True)
mail_thunder_smtp.send_message(message)
mail_thunder_smtp.quit()
else:
raise ITESendHtmlReportException
except ITESendHtmlReportException as error:
print(repr(error), file=sys.stderr)
print(send_html_exception_tag, file=sys.stderr)
Loading