Tsetstand自定义界面,只需要把测试序列放在根目录下,最大支持6个UUT并行测试(可编辑指定)。 除了测试参数需要自己做并生成exe,界面其它功能都可以通过简单修改文本实现快速运行。 1.UUT图片可以指定路径 2.测试序列放到指定目录文件自动加载 3.每个Scoket都有独立的暂停,继续,终止等控制按钮 3.每个Scoket都有独立的报表显示 4.执行视图采用TS的Execution View 控件,相比较第一版的LV表格控件,它能实时显示被嵌套调用的序列执行状态。 5.界面自由增加删除用户信息 本软件依赖于teststand2019 x86 runtime

最近在研究 Tsetstand 的自定义界面,真的发现了不少有趣的地方,今天就来和大家分享分享。
一、整体架构与基本设置
Tsetstand 的这个自定义界面,设计思路非常清晰,使用起来也很方便。它只需要把测试序列放在根目录下,就能够轻松识别并运行。而且,它在并行测试方面表现出色,最大支持 6 个 UUT 并行测试,并且这个数量还可以通过编辑指定哦。
二、关键功能与实现细节
(一)测试参数与执行文件
这里需要注意的是,测试参数得自己制作并生成 exe。不过好在,除了这个,界面其它功能实现起来就轻松多啦,通过简单修改文本就能快速运行。
(二)UUT 图片路径指定
对于 UUT 图片,我们可以自由指定路径。比如说,在代码实现上,可能会有类似这样的设置:
python
# 假设这里是配置 UUT 图片路径的代码片段
uut_image_path = "C:/test_images/uut1.png"
# 这里将路径赋值给相应的配置变量,在后续界面加载图片时就会从这个路径获取
这样,当界面需要展示 UUT 图片时,就会从我们指定的路径去寻找,方便对不同 UUT 的图片进行管理。
(三)测试序列自动加载
把测试序列放到指定目录,文件就会自动加载。这背后的实现逻辑可能类似于下面这样(以 Python 示例):
python
import os
test_sequence_dir = "C:/test_sequences"
for root, dirs, files in os.walk(test_sequence_dir):
for file in files:
if file.endswith(".seq"): # 假设测试序列文件后缀是.seq
sequence_path = os.path.join(root, file)
# 这里可能会调用相应的函数将序列加载到测试环境中
load_sequence(sequence_path)
这段代码通过遍历指定目录,找到所有符合后缀要求的测试序列文件,然后调用加载函数进行加载,实现了自动加载的功能。
(四)Socket 相关功能
- 独立控制按钮:每个 Socket 都有独立的暂停,继续,终止等控制按钮。这在实际操作中非常实用,比如在测试过程中,某个 Socket 的测试出现问题,我们可以单独暂停它,而不影响其他 Socket 的测试。在代码层面,可能是这样实现按钮的功能绑定:
python
import tkinter as tk
def pause_socket(socket_id):
# 这里添加暂停指定 socket_id 对应的测试的逻辑
print(f"Socket {socket_id} 已暂停")
def resume_socket(socket_id):
# 这里添加继续指定 socket_id 对应的测试的逻辑
print(f"Socket {socket_id} 已继续")
def terminate_socket(socket_id):
# 这里添加终止指定 socket_id 对应的测试的逻辑
print(f"Socket {socket_id} 已终止")
# 创建按钮示例
root = tk.Tk()
socket_id = 1
pause_button = tk.Button(root, text="暂停", command=lambda: pause_socket(socket_id))
pause_button.pack()
resume_button = tk.Button(root, text="继续", command=lambda: resume_socket(socket_id))
resume_button.pack()
terminate_button = tk.Button(root, text="终止", command=lambda: terminate_socket(socket_id))
terminate_button.pack()
root.mainloop()
这段简单的 Tkinter 代码展示了如何创建与 Socket 操作对应的按钮,并绑定相应的功能。
- 独立报表显示:每个 Socket 还有独立的报表显示,这样可以针对每个 Socket 的测试情况进行详细分析。实现报表显示的方式可能多种多样,比如使用一些报表生成库,像 ReportLab 等,这里简单说下思路,可能会先收集每个 Socket 的测试数据,然后根据这些数据生成报表。
(五)执行视图升级
执行视图采用了 TS 的 Execution View 控件,相比于第一版的 LV 表格控件,它能实时显示被嵌套调用的序列执行状态。这对于跟踪复杂测试序列的执行情况非常有帮助,能让我们及时发现问题出在哪个环节。
(六)用户信息管理
界面还支持自由增加删除用户信息。以 Python 的字典数据结构为例,来模拟用户信息的管理:
python
user_info = {}
def add_user(name, info):
user_info[name] = info
print(f"{name} 用户信息已添加")
def delete_user(name):
if name in user_info:
del user_info[name]
print(f"{name} 用户信息已删除")
else:
print(f"{name} 用户不存在")
add_user("张三", "测试人员")
delete_user("张三")
这段代码展示了如何简单地实现用户信息的添加和删除操作,在实际界面中,可能会结合数据库或者文件存储来持久化这些用户信息。
三、软件依赖
最后要提的是,本软件依赖于 teststand2019 x86 runtime,所以在部署和运行这个自定义界面的时候,一定要确保系统中安装了相应的运行时环境,否则可能会出现各种意想不到的问题哦。

总的来说,Tsetstand 的这个自定义界面功能丰富且实用,通过合理利用这些功能和理解其背后的实现逻辑,我们能够更高效地进行测试工作。希望今天的分享对大家有所帮助呀!


