用python的nicegui给之前的ourtest测试架构加个界面

用python的nicegui给之前的ourtest测试架构加个界面

问题由来

之前在《用tcl实现一个测试架构》的文章中我们实现了Ourtest测试架构,为了让测试架构更容易使用,在最近研究学习了Nicegui的基础上,决定为这个测试架构加个壳,做个界面。
Nicegui是基于fastapi的,性能没得说;用它主要是因为可以写一套代码同时运行在web服务模式和windows本地界面模式;还有就是有很多漂亮的现代化控件,开发效率很高。

界面展示

在这里插入图片描述

功能介绍

  1. 左边选中脚本,右边点击运行按钮,就可以跑脚本,点暂停可以暂停脚本,点继续可以让脚本继续运行,点停止就可以终止脚本运行,在脚本编辑器的下面窗口输出标准输出
  2. 如果点击右边的运行,可以直接运行所有的脚本,并且在日志里面输出标准输出
  3. 点击保存可以保存脚本

代码共享

可以到下面的链接,下载项目代码
链接:https://pan.baidu.com/s/1xaDFbj2tgo3qBnJbp7bmfA?pwd=i4al
提取码:i4al

下载完后,可以直接运行python learning.py来运行该程序,如果缺少相关的依赖库,自己用pip安装即可。

from nicegui import ui,app,run
import logging
import pathlib
import subprocess
import psutil
from uitility import get_tree_node
from dataclasses import dataclass
from nicegui.dataclasses import KWONLY_SLOTS
from nicegui.events import UiEventArguments,handle_event
from typing import List


@dataclass(**KWONLY_SLOTS)
class MyClickEventArguments(UiEventArguments):
    other:List

script_process = None
suite_process = None
script_path = pathlib.Path(__file__).parent / 'scripts'

logger = logging.getLogger()

class LogElementHandler(logging.Handler):
    """A logging handler that emits messages to a log element."""

    def __init__(self, element: ui.log, level: int = logging.NOTSET) -> None:
        self.element = element
        super().__init__(level)

    def emit(self, record: logging.LogRecord) -> None:
        try:
            msg = self.format(record)
            self.element.push(msg)
        except Exception:
            self.handleError(record)

def tree_on_select (event):
    if (event.value and pathlib.Path(event.value).is_file()):
        with open(event.value) as script_file:
            app.storage.general['script_content'] = script_file.read()
            app.storage.general['script_current'] = event.value

def script_on_save (event):
    if app.storage.general['script_content']:
        with open(app.storage.general['script_current'], mode='w') as script_file:
            script
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值