可视化窗口选择pytest运行制定标记用例

接口自动化项目搭建好以后,有些童鞋不想每次都去更新主入口文件下的mark,或者说有些做功能的童鞋不懂得怎么更改mark来执行特定标记的用例(虽然说明文档已经很清楚)。在此特意写了一个小的窗口,让他们来点击选择自己想要运行的流程。

主入口添加一个方法:

import tkinter as tk
from tkinter import ttk

# 全局变量,用于存储用户选择的标记值
mark = None

# 显示弹窗并获取用户输入的标记
def get_user_input():
    def submit(event):
        global mark
        selected_index = listbox.curselection()
        if selected_index:
            mark = tags[selected_index[0]][0]
            root.destroy()
    root = tk.Tk()
    root.title("选择标记")
    root.geometry("600x250")
    root.resizable(False, False)
    frame = ttk.Frame(root)
    frame.pack(pady=20)
    label = ttk.Label(frame, text="请双击选择要执行的接口测试脚本标记:")
    label.grid(row=0, column=0, padx=10)
    listbox_frame = ttk.Frame(frame)
    listbox_frame.grid(row=1, column=0, padx=10, pady=(10, 0))
    # 创建列表框
    listbox = tk.Listbox(listbox_frame, width=30, height=4)
    listbox.pack(side=tk.LEFT, fill=tk.BOTH)
    # 创建滚动条
    scrollbar = ttk.Scrollbar(listbox_frame, orient=tk.VERTICAL)
    scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
    listbox.config(yscrollcommand=scrollbar.set)
    scrollbar.config(command=listbox.yview)
    # 添加标记及解释说明
    tags = [
        ("smoking", "冒烟测试,****"),
        ("regress_gm", "GM回归测试,***"),
        ("regress_mu", "MU回归测试,*****")
    ]
    for tag, explanation in tags:
        listbox.insert(tk.END, tag)
    explanation_frame = ttk.Frame(frame)
    explanation_frame.grid(row=2, column=0, padx=10)
    explanation_label = ttk.Label(explanation_frame, text="执行说明:")
    explanation_label.pack(anchor="w")
    explanation_text = tk.Text(explanation_frame, height=3, wrap="word")
    explanation_text.pack(fill=tk.BOTH, padx=5)
    def on_select(event):
        selected_index = listbox.curselection()
        if selected_index:
            explanation_text.delete("1.0", tk.END)
            explanation_text.insert(tk.END, tags[selected_index[0]][1])

    listbox.bind("<<ListboxSelect>>", on_select)
    listbox.bind("<Double-Button-1>", submit)
    # button = ttk.Button(frame, text="确定", command=submit)  # 不需要点击确定
    # button.grid(row=3, column=0, pady=10)
    root.mainloop()

将用户选择的mark作为变量,传入pytest运行参数中

pytest.main([ '-m',mark,******])

效果展示:选择标记后,执行对应的测试脚本

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值