From 1af5a4fb190e5a5ddaceec5e33b4a5b523221755 Mon Sep 17 00:00:00 2001
From: JE-Chen <33644111+JE-Chen@users.noreply.github.com>
Date: Sun, 8 Sep 2024 18:17:00 +0800
Subject: [PATCH 1/4] Add gui init
Add gui init
---
je_load_density/gui/__init__.py | 0
je_load_density/gui/main_widget.py | 20 ++++++++++++++
je_load_density/gui/main_window.py | 44 ++++++++++++++++++++++++++++++
3 files changed, 64 insertions(+)
create mode 100644 je_load_density/gui/__init__.py
create mode 100644 je_load_density/gui/main_widget.py
create mode 100644 je_load_density/gui/main_window.py
diff --git a/je_load_density/gui/__init__.py b/je_load_density/gui/__init__.py
new file mode 100644
index 0000000..e69de29
diff --git a/je_load_density/gui/main_widget.py b/je_load_density/gui/main_widget.py
new file mode 100644
index 0000000..999b0e7
--- /dev/null
+++ b/je_load_density/gui/main_widget.py
@@ -0,0 +1,20 @@
+from __future__ import annotations
+
+from typing import TYPE_CHECKING
+
+if TYPE_CHECKING:
+ from je_auto_control.gui.main_window import AutoControlGUI
+
+from PySide6.QtWidgets import QWidget, QGridLayout
+
+
+class AutoControlWidget(QWidget):
+
+ def __init__(self, main_ui: AutoControlGUI):
+ super().__init__()
+ # Variable
+ self.main_ui = main_ui
+ # UI component
+ # Grid layout
+ self.grid_layout = QGridLayout()
+ self.setLayout(self.grid_layout)
diff --git a/je_load_density/gui/main_window.py b/je_load_density/gui/main_window.py
new file mode 100644
index 0000000..791490f
--- /dev/null
+++ b/je_load_density/gui/main_window.py
@@ -0,0 +1,44 @@
+import os
+import sys
+from pathlib import Path
+
+from PySide6.QtCore import QCoreApplication, QTimer
+from PySide6.QtGui import QIcon
+from PySide6.QtWidgets import QMainWindow, QApplication
+from qt_material import apply_stylesheet
+
+from je_auto_control.gui.main_widget import AutoControlWidget
+
+
+class AutoControlGUI(QMainWindow):
+
+ def __init__(self, debug_mode: bool = False):
+ super().__init__()
+ self.debug_mode = debug_mode
+ self.central_widget = AutoControlWidget(self)
+ self.setCentralWidget(self.central_widget)
+ self.setWindowTitle("AutoControlGUI")
+ # Set Icon
+ self.icon_path = Path(os.getcwd() + "/je_driver_icon.ico")
+ self.icon = QIcon(str(self.icon_path))
+ if self.icon.isNull() is False:
+ self.setWindowIcon(self.icon)
+ if self.debug_mode:
+ close_timer = QTimer(self)
+ close_timer.setInterval(10000)
+ close_timer.timeout.connect(self.debug_close)
+ close_timer.start()
+
+ @classmethod
+ def debug_close(cls):
+ sys.exit(0)
+
+
+def start_autocontrol_gui(debug_mode: bool = False) -> None:
+ autocontrol_gui = QCoreApplication.instance()
+ if autocontrol_gui is None:
+ autocontrol_gui = QApplication(sys.argv)
+ window = AutoControlGUI(debug_mode)
+ apply_stylesheet(autocontrol_gui, theme='dark_amber.xml')
+ window.showMaximized()
+ sys.exit(autocontrol_gui.exec())
From 4bdfaedf93c45c47d636e38ce48ad456f2df8575 Mon Sep 17 00:00:00 2001
From: JE-Chen <33644111+JE-Chen@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:01:41 +0800
Subject: [PATCH 2/4] Remove scheduler and update dev version
Remove scheduler and update dev version
---
.idea/LoadDensity.iml | 3 +-
.idea/misc.xml | 2 +-
je_load_density/__init__.py | 5 +-
je_load_density/gui/__init__.py | 0
je_load_density/gui/main_widget.py | 20 --
je_load_density/gui/main_window.py | 44 ----
.../utils/executor/action_executor.py | 21 --
je_load_density/utils/scheduler/__init__.py | 0
.../utils/scheduler/extend_apscheduler.py | 215 ------------------
.../create_locust_env/create_locust_env.py | 2 +-
pyproject.toml | 14 +-
dev.toml => stable.toml | 16 +-
12 files changed, 16 insertions(+), 326 deletions(-)
delete mode 100644 je_load_density/gui/__init__.py
delete mode 100644 je_load_density/gui/main_widget.py
delete mode 100644 je_load_density/gui/main_window.py
delete mode 100644 je_load_density/utils/scheduler/__init__.py
delete mode 100644 je_load_density/utils/scheduler/extend_apscheduler.py
rename dev.toml => stable.toml (80%)
diff --git a/.idea/LoadDensity.iml b/.idea/LoadDensity.iml
index 74d515a..527ea03 100644
--- a/.idea/LoadDensity.iml
+++ b/.idea/LoadDensity.iml
@@ -2,9 +2,10 @@
+
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index d1dce60..e82c1ba 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -3,5 +3,5 @@
-
+
\ No newline at end of file
diff --git a/je_load_density/__init__.py b/je_load_density/__init__.py
index 552370f..0b65804 100644
--- a/je_load_density/__init__.py
+++ b/je_load_density/__init__.py
@@ -41,11 +41,8 @@
from je_load_density.utils.project.create_project_structure import create_project_dir
-# Scheduler
-from je_load_density.utils.scheduler.extend_apscheduler import SchedulerManager
-
__all__ = [
- "create_env", "start_test", "SchedulerManager",
+ "create_env", "start_test",
"locust_wrapper_proxy",
"prepare_env", "prepare_env",
"test_record_instance",
diff --git a/je_load_density/gui/__init__.py b/je_load_density/gui/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/je_load_density/gui/main_widget.py b/je_load_density/gui/main_widget.py
deleted file mode 100644
index 999b0e7..0000000
--- a/je_load_density/gui/main_widget.py
+++ /dev/null
@@ -1,20 +0,0 @@
-from __future__ import annotations
-
-from typing import TYPE_CHECKING
-
-if TYPE_CHECKING:
- from je_auto_control.gui.main_window import AutoControlGUI
-
-from PySide6.QtWidgets import QWidget, QGridLayout
-
-
-class AutoControlWidget(QWidget):
-
- def __init__(self, main_ui: AutoControlGUI):
- super().__init__()
- # Variable
- self.main_ui = main_ui
- # UI component
- # Grid layout
- self.grid_layout = QGridLayout()
- self.setLayout(self.grid_layout)
diff --git a/je_load_density/gui/main_window.py b/je_load_density/gui/main_window.py
deleted file mode 100644
index 791490f..0000000
--- a/je_load_density/gui/main_window.py
+++ /dev/null
@@ -1,44 +0,0 @@
-import os
-import sys
-from pathlib import Path
-
-from PySide6.QtCore import QCoreApplication, QTimer
-from PySide6.QtGui import QIcon
-from PySide6.QtWidgets import QMainWindow, QApplication
-from qt_material import apply_stylesheet
-
-from je_auto_control.gui.main_widget import AutoControlWidget
-
-
-class AutoControlGUI(QMainWindow):
-
- def __init__(self, debug_mode: bool = False):
- super().__init__()
- self.debug_mode = debug_mode
- self.central_widget = AutoControlWidget(self)
- self.setCentralWidget(self.central_widget)
- self.setWindowTitle("AutoControlGUI")
- # Set Icon
- self.icon_path = Path(os.getcwd() + "/je_driver_icon.ico")
- self.icon = QIcon(str(self.icon_path))
- if self.icon.isNull() is False:
- self.setWindowIcon(self.icon)
- if self.debug_mode:
- close_timer = QTimer(self)
- close_timer.setInterval(10000)
- close_timer.timeout.connect(self.debug_close)
- close_timer.start()
-
- @classmethod
- def debug_close(cls):
- sys.exit(0)
-
-
-def start_autocontrol_gui(debug_mode: bool = False) -> None:
- autocontrol_gui = QCoreApplication.instance()
- if autocontrol_gui is None:
- autocontrol_gui = QApplication(sys.argv)
- window = AutoControlGUI(debug_mode)
- apply_stylesheet(autocontrol_gui, theme='dark_amber.xml')
- window.showMaximized()
- sys.exit(autocontrol_gui.exec())
diff --git a/je_load_density/utils/executor/action_executor.py b/je_load_density/utils/executor/action_executor.py
index b7a8a48..5537710 100644
--- a/je_load_density/utils/executor/action_executor.py
+++ b/je_load_density/utils/executor/action_executor.py
@@ -12,7 +12,6 @@
from je_load_density.utils.generate_report.generate_xml_report import generate_xml, generate_xml_report
from je_load_density.utils.json.json_file.json_file import read_action_json
from je_load_density.utils.package_manager.package_manager_class import package_manager
-from je_load_density.utils.scheduler.extend_apscheduler import scheduler_manager
from je_load_density.wrapper.start_wrapper.start_test import start_test
@@ -31,15 +30,6 @@ def __init__(self):
"LD_execute_action": self.execute_action,
"LD_execute_files": self.execute_files,
"LD_add_package_to_executor": package_manager.add_package_to_executor,
- # Scheduler
- "LD_scheduler_event_trigger": self.scheduler_event_trigger,
- "LD_remove_blocking_scheduler_job": scheduler_manager.remove_blocking_job,
- "LD_remove_nonblocking_scheduler_job": scheduler_manager.remove_nonblocking_job,
- "LD_start_blocking_scheduler": scheduler_manager.start_block_scheduler,
- "LD_start_nonblocking_scheduler": scheduler_manager.start_nonblocking_scheduler,
- "LD_start_all_scheduler": scheduler_manager.start_all_scheduler,
- "LD_shutdown_blocking_scheduler": scheduler_manager.shutdown_blocking_scheduler,
- "LD_shutdown_nonblocking_scheduler": scheduler_manager.shutdown_nonblocking_scheduler,
}
# get all builtin function and add to event dict
for function in getmembers(builtins, isbuiltin):
@@ -108,17 +98,6 @@ def execute_files(self, execute_files_list: list):
execute_detail_list.append(self.execute_action(read_action_json(file)))
return execute_detail_list
- def scheduler_event_trigger(
- self, function: str, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, scheduler_type: str = "nonblocking", wait_type: str = "secondly",
- wait_value: int = 1, **trigger_args: Any) -> None:
- if scheduler_type == "nonblocking":
- scheduler_event = scheduler_manager.nonblocking_scheduler_event_dict.get(wait_type)
- else:
- scheduler_event = scheduler_manager.blocking_scheduler_event_dict.get(wait_type)
- scheduler_event(self.event_dict.get(function), id, args, kwargs, wait_value, **trigger_args)
-
-
executor = Executor()
package_manager.executor = executor
diff --git a/je_load_density/utils/scheduler/__init__.py b/je_load_density/utils/scheduler/__init__.py
deleted file mode 100644
index e69de29..0000000
diff --git a/je_load_density/utils/scheduler/extend_apscheduler.py b/je_load_density/utils/scheduler/extend_apscheduler.py
deleted file mode 100644
index 36abd01..0000000
--- a/je_load_density/utils/scheduler/extend_apscheduler.py
+++ /dev/null
@@ -1,215 +0,0 @@
-from datetime import datetime
-from typing import Callable, Any, Union
-
-from apscheduler.job import Job
-from apscheduler.schedulers.background import BackgroundScheduler
-from apscheduler.schedulers.blocking import BlockingScheduler
-from apscheduler.util import undefined
-
-
-class SchedulerManager(object):
-
- def __init__(self):
- self._blocking_schedulers: BlockingScheduler = BlockingScheduler()
- self._background_schedulers: BackgroundScheduler = BackgroundScheduler()
- self.blocking_scheduler_event_dict = {
- "secondly": self.add_interval_blocking_secondly,
- "minutely": self.add_interval_blocking_minutely,
- "hourly": self.add_interval_blocking_hourly,
- "daily": self.add_interval_blocking_daily,
- "weekly": self.add_interval_blocking_weekly,
- }
- self.nonblocking_scheduler_event_dict = {
- "secondly": self.add_interval_nonblocking_secondly,
- "minutely": self.add_interval_nonblocking_minutely,
- "hourly": self.add_interval_nonblocking_hourly,
- "daily": self.add_interval_nonblocking_daily,
- "weekly": self.add_interval_nonblocking_weekly,
- }
-
- def add_blocking_job(
- self, func: Callable, trigger: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, id: str = None, name: str = None,
- misfire_grace_time: int = undefined, coalesce: bool = undefined, max_instances: int = undefined,
- next_run_time: datetime = undefined, jobstore: str = 'default', executor: str = 'default',
- replace_existing: bool = False, **trigger_args: Any) -> Job:
- """
- Just an apscheduler add job wrapper.
- :param func: callable (or a textual reference to one) to run at the given time
- :param str|apscheduler.triggers.base.BaseTrigger trigger: trigger that determines when
- ``func`` is called
- :param list|tuple args: list of positional arguments to call func with
- :param dict kwargs: dict of keyword arguments to call func with
- :param str|unicode id: explicit identifier for the job (for modifying it later)
- :param str|unicode name: textual description of the job
- :param int misfire_grace_time: seconds after the designated runtime that the job is still
- allowed to be run (or ``None`` to allow the job to run no matter how late it is)
- :param bool coalesce: run once instead of many times if the scheduler determines that the
- job should be run more than once in succession
- :param int max_instances: maximum number of concurrently running instances allowed for this
- job
- :param datetime next_run_time: when to first run the job, regardless of the trigger (pass
- ``None`` to add the job as paused)
- :param str|unicode jobstore: alias of the job store to store the job in
- :param str|unicode executor: alias of the executor to run the job with
- :param bool replace_existing: ``True`` to replace an existing job with the same ``id``
- (but retain the number of runs from the existing one)
- :return: Job
- """
- params = locals()
- params.pop("self")
- params.pop("trigger_args")
- return self._blocking_schedulers.add_job(**params, **trigger_args)
-
- def add_nonblocking_job(
- self, func: Callable, trigger: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, id: str = None, name: str = None,
- misfire_grace_time: int = undefined, coalesce: bool = undefined, max_instances: int = undefined,
- next_run_time: datetime = undefined, jobstore: str = 'default', executor: str = 'default',
- replace_existing: bool = False, **trigger_args: Any) -> Job:
- """
- Just an apscheduler add job wrapper.
- :param func: callable (or a textual reference to one) to run at the given time
- :param str|apscheduler.triggers.base.BaseTrigger trigger: trigger that determines when
- ``func`` is called
- :param list|tuple args: list of positional arguments to call func with
- :param dict kwargs: dict of keyword arguments to call func with
- :param str|unicode id: explicit identifier for the job (for modifying it later)
- :param str|unicode name: textual description of the job
- :param int misfire_grace_time: seconds after the designated runtime that the job is still
- allowed to be run (or ``None`` to allow the job to run no matter how late it is)
- :param bool coalesce: run once instead of many times if the scheduler determines that the
- job should be run more than once in succession
- :param int max_instances: maximum number of concurrently running instances allowed for this
- job
- :param datetime next_run_time: when to first run the job, regardless of the trigger (pass
- ``None`` to add the job as paused)
- :param str|unicode jobstore: alias of the job store to store the job in
- :param str|unicode executor: alias of the executor to run the job with
- :param bool replace_existing: ``True`` to replace an existing job with the same ``id``
- (but retain the number of runs from the existing one)
- :return: Job
- """
- params = locals()
- params.pop("self")
- params.pop("trigger_args")
- return self._background_schedulers.add_job(**params, **trigger_args)
-
- def get_blocking_scheduler(self) -> BlockingScheduler:
- """
- Return self blocking scheduler
- :return: BlockingScheduler
- """
- return self._blocking_schedulers
-
- def get_nonblocking_scheduler(self) -> BackgroundScheduler:
- """
- Return self background scheduler
- :return: BackgroundScheduler
- """
- return self._background_schedulers
-
- def start_block_scheduler(self, *args: Any, **kwargs: Any) -> None:
- """
- Start blocking scheduler
- :return: None
- """
- self._blocking_schedulers.start(*args, **kwargs)
-
- def start_nonblocking_scheduler(self, *args: Any, **kwargs: Any) -> None:
- """
- Start background scheduler
- :return: None
- """
- self._background_schedulers.start(*args, **kwargs)
-
- def start_all_scheduler(self, *args: Any, **kwargs: Any) -> None:
- """
- Start background and blocking scheduler
- :return: None
- """
- self._blocking_schedulers.start(*args, **kwargs)
- self._background_schedulers.start(*args, **kwargs)
-
- def add_interval_blocking_secondly(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, seconds: int = 1, **trigger_args: Any) -> Job:
- return self.add_blocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, seconds=seconds, **trigger_args)
-
- def add_interval_blocking_minutely(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, minutes: int = 1, **trigger_args: Any) -> Job:
- return self.add_blocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, minutes=minutes, **trigger_args)
-
- def add_interval_blocking_hourly(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, hours: int = 1, **trigger_args: Any) -> Job:
- return self.add_blocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, hours=hours, **trigger_args)
-
- def add_interval_blocking_daily(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, days: int = 1, **trigger_args: Any) -> Job:
- return self.add_blocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, days=days, **trigger_args)
-
- def add_interval_blocking_weekly(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, weeks: int = 1, **trigger_args: Any) -> Job:
- return self.add_blocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, weeks=weeks, **trigger_args)
-
- def add_interval_nonblocking_secondly(
- self, function: Callable, id: str = None, args: list = None,
- kwargs: dict = None, seconds: int = 1, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, seconds=seconds, **trigger_args)
-
- def add_interval_nonblocking_minutely(
- self, function: Callable, id: str = None, args: list = None,
- kwargs: dict = None, minutes: int = 1, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, minutes=minutes, **trigger_args)
-
- def add_interval_nonblocking_hourly(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, hours: int = 1, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, hours=hours, **trigger_args)
-
- def add_interval_nonblocking_daily(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, days: int = 1, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, days=days, **trigger_args)
-
- def add_interval_nonblocking_weekly(
- self, function: Callable, id: str = None, args: Union[list, tuple] = None,
- kwargs: dict = None, weeks: int = 1, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(
- func=function, trigger="interval", id=id, args=args, kwargs=kwargs, weeks=weeks, **trigger_args)
-
- def add_cron_blocking(
- self, function: Callable, id: str = None, **trigger_args: Any) -> Job:
- return self.add_blocking_job(func=function, id=id, trigger="cron", **trigger_args)
-
- def add_cron_nonblocking(
- self, function: Callable, id: str = None, **trigger_args: Any) -> Job:
- return self.add_nonblocking_job(func=function, id=id, trigger="cron", **trigger_args)
-
- def remove_blocking_job(self, id: str, jobstore: str = 'default') -> Any:
- return self._blocking_schedulers.remove_job(job_id=id, jobstore=jobstore)
-
- def remove_nonblocking_job(self, id: str, jobstore: str = 'default') -> Any:
- return self._background_schedulers.remove_job(job_id=id, jobstore=jobstore)
-
- def shutdown_blocking_scheduler(self, wait: bool = False) -> None:
- self._blocking_schedulers.shutdown(wait=wait)
-
- def shutdown_nonblocking_scheduler(self, wait: bool = False) -> None:
- self._background_schedulers.shutdown(wait=wait)
-
-
-scheduler_manager = SchedulerManager()
diff --git a/je_load_density/wrapper/create_locust_env/create_locust_env.py b/je_load_density/wrapper/create_locust_env/create_locust_env.py
index 85c3ad2..601f580 100644
--- a/je_load_density/wrapper/create_locust_env/create_locust_env.py
+++ b/je_load_density/wrapper/create_locust_env/create_locust_env.py
@@ -26,7 +26,7 @@ def prepare_env(user_class: [User], user_count: int = 50, spawn_rate: int = 10,
f"prepare_env, user_class: {user_class}, user_count: {user_count}, spawn_rate: {spawn_rate}, "
f"test_time: {test_time}, web_ui_dict: {web_ui_dict}"
)
- env = create_env(user_class)
+ env = create_env(user_class, another_event=events)
env.runner.start(user_count, spawn_rate=spawn_rate)
if web_ui_dict is not None:
env.create_web_ui(web_ui_dict.get("host", "127.0.0.1"), web_ui_dict.get("port", 8089))
diff --git a/pyproject.toml b/pyproject.toml
index 2c6ca7c..ed18548 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,21 +1,20 @@
-# Rename to stable version
-# This is stable version
+# Rename to dev version
+# This is dev version
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
-name = "je_load_density"
-version = "0.0.56"
+name = "je_load_density_dev"
+version = "0.0.67"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
description = "Load & Stress Automation Freamework"
requires-python = ">=3.9"
-license = { text = "MIT" }
+license-files = ["LICENSE"]
dependencies = [
"locust",
- "APScheduler",
]
classifiers = [
"Programming Language :: Python :: 3.9",
@@ -23,7 +22,6 @@ classifiers = [
"Environment :: Win32 (MS Windows)",
"Environment :: MacOS X",
"Environment :: X11 Applications",
- "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent"
]
@@ -36,8 +34,6 @@ Code = "https://github.com/Intergration-Automation-Testing/LoadDensity"
file = "README.md"
content-type = "text/markdown"
-[tool.setuptools]
-license-files = ["LICENSE"]
[tool.setuptools.packages]
find = { namespaces = false }
diff --git a/dev.toml b/stable.toml
similarity index 80%
rename from dev.toml
rename to stable.toml
index 010ac42..c5a0b04 100644
--- a/dev.toml
+++ b/stable.toml
@@ -1,20 +1,20 @@
-# Rename to dev version
-# This is dev version
+# Rename to stable version
+# This is stable version
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
-name = "je_load_density_dev"
-version = "0.0.66"
+name = "je_load_density"
+version = "0.0.56"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
description = "Load & Stress Automation Freamework"
requires-python = ">=3.9"
-license = { text = "MIT" }
+license-files = ["LICENSE"]
dependencies = [
- "locust", "APScheduler",
+ "locust",
]
classifiers = [
"Programming Language :: Python :: 3.9",
@@ -22,7 +22,6 @@ classifiers = [
"Environment :: Win32 (MS Windows)",
"Environment :: MacOS X",
"Environment :: X11 Applications",
- "License :: OSI Approved :: MIT License",
"Operating System :: OS Independent"
]
@@ -35,8 +34,5 @@ Code = "https://github.com/Intergration-Automation-Testing/LoadDensity"
file = "README.md"
content-type = "text/markdown"
-[tool.setuptools]
-license-files = ["LICENSE"]
-
[tool.setuptools.packages]
find = { namespaces = false }
From 7729b30b4df6eccfc4fbed9f3a6fd57cc995ede5 Mon Sep 17 00:00:00 2001
From: JE-Chen <33644111+JE-Chen@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:33:46 +0800
Subject: [PATCH 3/4] Update stable version
Update stable version
---
stable.toml => dev.toml | 9 +++++----
pyproject.toml | 9 ++++-----
2 files changed, 9 insertions(+), 9 deletions(-)
rename stable.toml => dev.toml (90%)
diff --git a/stable.toml b/dev.toml
similarity index 90%
rename from stable.toml
rename to dev.toml
index c5a0b04..ed18548 100644
--- a/stable.toml
+++ b/dev.toml
@@ -1,12 +1,12 @@
-# Rename to stable version
-# This is stable version
+# Rename to dev version
+# This is dev version
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
-name = "je_load_density"
-version = "0.0.56"
+name = "je_load_density_dev"
+version = "0.0.67"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
@@ -34,5 +34,6 @@ Code = "https://github.com/Intergration-Automation-Testing/LoadDensity"
file = "README.md"
content-type = "text/markdown"
+
[tool.setuptools.packages]
find = { namespaces = false }
diff --git a/pyproject.toml b/pyproject.toml
index ed18548..8a1b332 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,12 +1,12 @@
-# Rename to dev version
-# This is dev version
+# Rename to stable version
+# This is stable version
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
-name = "je_load_density_dev"
-version = "0.0.67"
+name = "je_load_density"
+version = "0.0.57"
authors = [
{ name = "JE-Chen", email = "jechenmailman@gmail.com" },
]
@@ -34,6 +34,5 @@ Code = "https://github.com/Intergration-Automation-Testing/LoadDensity"
file = "README.md"
content-type = "text/markdown"
-
[tool.setuptools.packages]
find = { namespaces = false }
From a19c8c20b7e3d1f992bf3803b242ae5d958ea4d4 Mon Sep 17 00:00:00 2001
From: JE-Chen <33644111+JE-Chen@users.noreply.github.com>
Date: Tue, 25 Mar 2025 22:45:10 +0800
Subject: [PATCH 4/4] Remove scheduler test
Remove scheduler test
---
.github/workflows/dev_python3_10.yml | 4 ---
.github/workflows/dev_python3_11.yml | 4 ---
.github/workflows/dev_python3_8.yml | 48 -------------------------
.github/workflows/dev_python3_9.yml | 4 ---
.github/workflows/stable_python3_10.yml | 4 ---
.github/workflows/stable_python3_11.yml | 4 ---
.github/workflows/stable_python3_8.yml | 47 ------------------------
.github/workflows/stable_python3_9.yml | 4 ---
8 files changed, 119 deletions(-)
delete mode 100644 .github/workflows/dev_python3_8.yml
delete mode 100644 .github/workflows/stable_python3_8.yml
diff --git a/.github/workflows/dev_python3_10.yml b/.github/workflows/dev_python3_10.yml
index 3f0ca9a..9447f9c 100644
--- a/.github/workflows/dev_python3_10.yml
+++ b/.github/workflows/dev_python3_10.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/dev_python3_11.yml b/.github/workflows/dev_python3_11.yml
index 6879d06..d5140bc 100644
--- a/.github/workflows/dev_python3_11.yml
+++ b/.github/workflows/dev_python3_11.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/dev_python3_8.yml b/.github/workflows/dev_python3_8.yml
deleted file mode 100644
index 9e695a1..0000000
--- a/.github/workflows/dev_python3_8.yml
+++ /dev/null
@@ -1,48 +0,0 @@
-name: LoadDensity Dev Python 3.8
-
-on:
- push:
- branches: [ "dev" ]
- pull_request:
- branches: [ "dev" ]
- schedule:
- - cron: "0 5 * * *"
-
-permissions:
- contents: read
-
-jobs:
- build_dev_version:
- runs-on: ubuntu-20.04
-
- steps:
- - uses: actions/checkout@v3
- - name: Set up Python 3.8
- uses: actions/setup-python@v3
- with:
- python-version: "3.8"
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip wheel
- pip install -r dev_requirements.txt
- - name: Test Fast HTTP User
- run: python ./test/unit_test/user_test/fast_http_user_test.py
- - name: TestMulti Action User
- run: python ./test/unit_test/user_test/http_user_test.py
- - name: Test Callback
- run: python ./test/unit_test/callback_test/callback_test.py
- - name: Test Create Project
- run: python ./test/unit_test/create_project/create_project.py
- - name: Test Generate HTML Report
- run: python ./test/unit_test/generate_report/generate_html_report.py
- - name: Test Generate XML Report
- run: python ./test/unit_test/generate_report/generate_xml_report.py
- - name: Test Generate JSON Report
- run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- - name: Test Executor
- run: python ./test/unit_test/executor_test/execute.py
-
diff --git a/.github/workflows/dev_python3_9.yml b/.github/workflows/dev_python3_9.yml
index 10b8c82..0290fe0 100644
--- a/.github/workflows/dev_python3_9.yml
+++ b/.github/workflows/dev_python3_9.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/stable_python3_10.yml b/.github/workflows/stable_python3_10.yml
index 491a5ee..8978647 100644
--- a/.github/workflows/stable_python3_10.yml
+++ b/.github/workflows/stable_python3_10.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/stable_python3_11.yml b/.github/workflows/stable_python3_11.yml
index 882625f..2bec6e8 100644
--- a/.github/workflows/stable_python3_11.yml
+++ b/.github/workflows/stable_python3_11.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/stable_python3_8.yml b/.github/workflows/stable_python3_8.yml
deleted file mode 100644
index 3feacb9..0000000
--- a/.github/workflows/stable_python3_8.yml
+++ /dev/null
@@ -1,47 +0,0 @@
-name: LoadDensity Stable Python3.8
-
-on:
- push:
- branches: [ "main" ]
- pull_request:
- branches: [ "main" ]
- schedule:
- - cron: "0 5 * * *"
-
-permissions:
- contents: read
-
-jobs:
- build_stable_version:
- runs-on: ubuntu-20.04
-
- steps:
- - uses: actions/checkout@v3
- - name: Set up Python 3.8
- uses: actions/setup-python@v3
- with:
- python-version: "3.8"
- - name: Install dependencies
- run: |
- python -m pip install --upgrade pip wheel
- pip install -r requirements.txt
- - name: Test Fast HTTP User
- run: python ./test/unit_test/user_test/fast_http_user_test.py
- - name: TestMulti Action User
- run: python ./test/unit_test/user_test/http_user_test.py
- - name: Test Callback
- run: python ./test/unit_test/callback_test/callback_test.py
- - name: Test Create Project
- run: python ./test/unit_test/create_project/create_project.py
- - name: Test Generate HTML Report
- run: python ./test/unit_test/generate_report/generate_html_report.py
- - name: Test Generate XML Report
- run: python ./test/unit_test/generate_report/generate_xml_report.py
- - name: Test Generate JSON Report
- run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- - name: Test Executor
- run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file
diff --git a/.github/workflows/stable_python3_9.yml b/.github/workflows/stable_python3_9.yml
index cece06c..305420f 100644
--- a/.github/workflows/stable_python3_9.yml
+++ b/.github/workflows/stable_python3_9.yml
@@ -39,9 +39,5 @@ jobs:
run: python ./test/unit_test/generate_report/generate_xml_report.py
- name: Test Generate JSON Report
run: python ./test/unit_test/generate_report/generate_json_report.py
- - name: Test Interval Scheduler
- run: python ./test/unit_test/scheduler_test/sec_interval_test.py
- - name: Test Cron Scheduler
- run: python ./test/unit_test/scheduler_test/sec_cron_test.py
- name: Test Executor
run: python ./test/unit_test/executor_test/execute.py
\ No newline at end of file