自动化测试终端仿真方法及仿真系统的制作方法

文档序号:7782057阅读:205来源:国知局
自动化测试终端仿真方法及仿真系统的制作方法
【专利摘要】本发明提供一种自动化测试终端仿真方法,包括以下步骤:初始化:在人机界面显示软件相关状态,人机界面包括树控件和tab控件;启动tcp服务维护线程和版本信息交互线程;接收用户操作并启动对应终端线程:根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;还包括发送停止运行和退出的指令。本发明方法及系统支持telnet、sshv2、串口和GPIB工作方式,支持多终端同时工作。
【专利说明】自动化测试终端仿真方法及仿真系统
【技术领域】
[0001]本发明属于计算机通信工具领域,具体涉及一种自动化测试终端仿真方法及仿真系统。
【背景技术】
[0002]通信设备和仪表的管理接口主要包括telnet、sshv2、串口、GPIB这几种方式。目前各种测试过程所使用的终端仿真软件基本都有以下不足:不支持GPIB ;对于控制多终端间的协同工作能力很弱;开发控制脚本需要程序编写能力。

【发明内容】

[0003]本发明要解决的技术问题是:提供一种自动化测试终端仿真方法及仿真系统,支持telnet、sshv2、串口、GPIB工作方式,且支持多终端同时工作。
[0004]本发明为解决上述技术问题所采取的技术方案为:一种自动化测试终端仿真方法,其特征在于:它包括以下步骤:
步骤1、初始化:
在人机界面显示软件相关状态,人机界面包括树控件和tab控件;启动tcp服务维护线程:使用任意终端仿真工具利用telnet协议连接到指定端口,并使用命令行方式监视软件运行状态;启动版本信息交互线程:将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新;
步骤2、接收用户操作并启动对应终端线程:
2.1、打开文件:根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;
2.2、开始运行:递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;
步骤3、停止运行:当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行;
步骤4、退出:当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面;
所述步骤2中各节点的终端线程为并行线程,每个终端线程的运行步骤为:
首先完成与其对应的通信层的初始化,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;Com通信层用于打开和关闭串口连接,以及读写串口信息;接下来打开该节点所对应的终端脚本文件,并发送终端运行的消息;
然后进入消息循环,循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。
[0005]一种自动化测试终端仿真系统,其特征在于:它包括主线程模块、tcp服务维护线程模块、版本信息交互线程模块和终端线程模块;
所述的主线程模块用于接收用户操作,并启动控制其它模块;它包括初始化模块、打开模块、运行模块、停止模块和退出模块;初始化模块用于在人机界面显示软件相关状态,人机界面包括树控件和tab控件,分别启动tcp服务维护线程模块和版本信息交互线程模块;打开模块用于根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;运行模块用于递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;停止模块用于当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行;退出模块用于当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面;
tcp服务维护线程模块用于使用任意终端仿真工具利用telnet协议连接到指定端口,并支持使用命令行方式监视软件运行状态;
版本信息交互线程模块用于将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新;
终端线程模块为多个并行的模块,每个终端线程模块分别包括通信层初始化模块和消息循环模块;通信层初始化模块用于完成与其对应的通信层的初始化,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;com通信层用于打开和关闭串口连接,以及读写串口信息,并打开该节点所对应的终端脚本文件,发送终端运行的消息;消息循环模块用于循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并交由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。
[0006]本发明的有益效果为:本发明方法及系统支持telnet、sshv2、串口和GPIB工作方式,支持多终端同时工作,并且每个终端线程在一个独立线程运行,它们各自采用消息循环模式,当终端脚本文件类型为终端下发而主机中没有所需要的消息时,则暂停下发到目标设备,每隔一段时间循环查询一次,直至其它终端向主机发送了该消息时继续进行下发,从而使得多终端线程之间能够协同工作。
【专利附图】

【附图说明】
[0007]图1为本发明一实施例的流程框图。
[0008]图2为人机界面的流程框图。
[0009]图3为开始运行和停止运行的流程框图。
[0010]图4为tcp服务维护线程的流程框图。
[0011]图5为版本信息交互线程的流程框图。
[0012]图6为终端线程的流程框图。
[0013]图7为脚本命令原语处理终端线程部分流程框图。
[0014]图8为脚本命令原语处理UI线程部分流程框图。
【具体实施方式】
[0015]下面结合具体实例对本发明做进一步说明。
[0016]图1为本发明一实施例的流程框图,它包括以下步骤:
步骤1、初始化:
在人机界面(UI)显示软件相关状态,人机界面包括树控件和tab控件;启动tcp服务维护线程:使用任意终端仿真工具利用telnet协议连接到指定端口,并使用命令行方式监视软件运行状态;启动版本信息交互线程:将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新;
步骤2、接收用户操作并启动对应终端线程:
2.1、打开文件:根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;
2.2、开始运行:递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;
步骤3、停止运行:当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行;
步骤4、退出:当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面;
所述步骤2中各节点的终端线程为并行线程,每个终端线程的运行步骤如图6所示,
为:
首先完成与其对应的通信层的初始化,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;Com通信层用于打开和关闭串口连接,以及读写串口信息;接下来打开该节点所对应的终端脚本文件,并发送终端运行的消息;
然后进入消息循环,循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并交由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。
[0017]如图2所示,人机界面首先显示软件相关状态,界面说明如下:1)菜单栏:提供菜单操作;2)工具栏:提供常用菜单操作,包括打开配置文件,开始/暂停/结束运行,帮助菜单;3)状态栏:显示版本状态;4)树形控件:根据测试配置文件生成的测试配置树,显示各测试模块;5) tab控件:根据当前测试运行情况,动态建立一个或多个tab页面以及对应的对话框控件,并显示其终端交互内容;6) list控件:显示运行日志。界面显示模块完成后,开始启动tcp服务维护线程,该线程通过与UI主线程之间消息传递,完成对软件运行状态的监视,其流程细节在tcp服务维护线程流程中说明。tcp服务维护线程启动完成后,开始启动版本信息交互线程,并且将软件自身版本参数传递给该线程,该线程主要是实现新版本的提示功能。
[0018]版本信息交互线程完成后,初始化全部完成,软件开始进入Π主线程消息循环,通过用户操作发送对应消息,进入相应运行流程,其主要操作说明如下:1)打开文件:打开一个测试配置文件,根据其内容生成配置树结构,并在界面的树控件中显示。2)开始运行:递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和tab控件新页面。当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成。详细流程见图3。3)停止运行:向所有正在运行的节点对应对话框线程发送WM_QUIT消息。详细流程见图3。4)帮助:显示帮助文档。5)退出:向各线程和各控件发送WM_QUIT消息,等待结束过程完成,关闭界面,退出程序。
[0019]图4为tcp服务维护线程的流程框图,主要流程说明:初始化tcp套接字完成60013端口初始化监听状态,然后向本线程消息队列发送WM_tcpserveraccept消息,该消息表示60013端口未收到连接请求;接下来进入消息循环,由于消息队列取出WM_tcpserveraccept消息,所以继续监听60013端口是否收到连接请求,如果没有则再次发送WM_tcpserveraccept消息,如果收到连接请求则建立60013端口的tcp连接,发送WM_tcpserverconnect消息,该消息表示60013端口收到并建立连接;当消息队列取出WM_tcpserverconnect消息时,处理该连接传入的命令,如果该命令是本次连接结束命令,关闭本次连接,发送WM_tcpserveraccept消息等待下一次连接,如果不是连接结束命令,处理完成该命令后发送WM_tcpserverconnect消息,等待下一条该连接传入的命令;如果消息循环取出WM_QUIT消息,表示UI界面线程启动了退出操作,关闭连接和套接字,结束本线程。
[0020]图5为版本信息交互线程的流程框图,流程说明:
初始化udp套接字完成60014端口初始化状态,然后向该端口发送包含自身软件版本信息的udp广播报文,以及发送WM_udprx消息,该消息表示准备从udp接收数据;接下来进入消息循环,如果消息循环取出WM_udprX消息,则解析数据中的版本信息,大于自身版本便在UI状态栏提示,若数据无效或者不大于自身版本便再次发送WM_udprX消息;如果消息循环取出WM_QUIT消息,表示UI界面线程启动了退出操作,关闭连接和套接字,结束本线程。
[0021]图6为终端线程的流程框图,流程说明:初始化通信方式完成不同通信层的初始化,发送WM_trmthreadrun消息,该消息表示终端线程运行中;接下来进入消息循环,如果消息循环取出WM_trmthreadrun消息,则解析和处理脚本内容,其中步骤“脚本命令原语处理”包含制定的若干脚本命令原语处理,以及包括控制多终端线程间协同工作的消息队列处理(参见脚本命令原语处理主要流程,如图7和图8所示);如果消息循环取出WM.QUIT消息,表示Π界面线程启动了退出操作,关闭连接和套接字,向UI线程发送WM_appdlgtrmdlgclose消息,结束本线程。
[0022]如图7和图8所示,脚本命令原语处理主要流程说明如下:由于终端下发行已在本流程之前处理,所以进入此流程全部为包含脚本命令原语的脚本行;然后在本流程进行处理,并且判断yes或no,以供后面调用。这里特别说明消息命令处理需要跨线程,其机制是在UI线程维护一个终端消息队列,各终端线程在处理消息命令时,最终都是访问终端消息队列,因此实现各终端的跨线程控制,例如:终端线程a和终端线程b并行,终端线程a运行到10秒时,将检查消息“msgl”,而此时终端消息队列不包含该消息,因此线程a循环检查消息“msgl”。终端线程b运行到30秒时,将添加消息“msgl”,此时终端消息队列将包含该消息。终端线程a在30秒后的循环中检查消息“msgl”成功,然后继续下一行脚本处理。因此上面所描述消息“msgl ”的效果是:终端线程b对于终端线程a的执行进行了控制,使之在执行10秒后延迟了 20秒再继续执行。
[0023]本发明还提供了一种自动化测试终端仿真系统,它包括主线程模块、tcp服务维护线程模块、版本信息交互线程模块和终端线程模块;
所述的主线程模块用于接收用户操作,并启动控制其它模块;它包括初始化模块、打开模块、运行模块、停止模块和退出模块;初始化模块用于在人机界面显示软件相关状态,人机界面包括树控件和tab控件,分别启动tcp服务维护线程模块和版本信息交互线程模块;打开模块用于根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;运行模块用于递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;停止模块用于当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行;退出模块用于当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面;
tcp服务维护线程模块用于使用任意终端仿真工具利用telnet协议连接到指定端口,并支持使用命令行方式监视软件运行状态;
版本信息交互线程模块用于将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新;
终端线程模块为多个并行的模块,每个终端线程模块分别包括通信层初始化模块和消息循环模块;通信层初始化模块用于完成与其对应的通信层的初始化,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;com通信层用于打开和关闭串口连接,以及读写串口信息,并打开该节点所对应的终端脚本文件,发送终端运行的消息;消息循环模块用于循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并交由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。
【权利要求】
1.一种自动化测试终端仿真方法,其特征在于:它包括以下步骤: 步骤1、初始化: 在人机界面显示软件相关状态,人机界面包括树控件和tab控件;启动tcp服务维护线程:使用任意终端仿真工具利用telnet协议连接到指定端口,并使用命令行方式监视软件运行状态;启动版本信息交互线程:将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新; 步骤2、接收用户操作并启动对应终端线程: 2.1、打开文件:根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示; 2.2、开始运行:递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成; 步骤3、停止运行:当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行; 步骤4、退出:当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面; 所述步骤2中各节点的终端线程为并行线程,每个终端线程的运行步骤为: 首先完成与其对应的通信层的初始化,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;Com通信层用于打开和关闭串口连接,以及读写串口信息; 接下来打开该节点所对应的终端脚本文件,并发送终端运行的消息; 进入消息循环,循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。
2.一种自动化测试终端仿真系统,其特征在于:它包括主线程模块、tcp服务维护线程模块、版本信息交互线程模块和终端线程模块; 所述的主线程模块用于接收用户操作,并启动控制其它模块;它包括初始化模块、打开模块、运行模块、停止模块和退出模块;初始化模块用于在人机界面显示软件相关状态,人机界面包括树控件和tab控件,分别启动tcp服务维护线程模块和版本信息交互线程模块;打开模块用于根据用户操作打开一个测试配置文件,根据其内容生成配置树,并在人机界面的树控件中显示;运行模块用于递归遍历配置树,跳过已完成节点,对于可运行节点则启动对应该节点的对话框线程和终端线程,当正在运行的节点运行完成时,再次递归遍历配置树,直至最终配置树的全部节点运行完成;停止模块用于当存在运行中的节点时候,向正在运行的节点对应的对话框线程以及其终端线程发送停止指令,停止运行;退出模块用于当没有正在运行的节点时,向各线程和各控件发送退出指令,并等待结束过程完成,关闭人机界面; tcp服务维护线程模块用于使用任意终端仿真工具利用telnet协议连接到指定端口,并使用命令行方式监视软件运行状态; 版本信息交互线程模块用于将软件自身版本参数传递给该线程,在局域网内广播自己软件版本,并监听指定端口,判断软件版本是否存在更新,以及提示更新; 终端线程模块为多个并行的模块,每个终端线程模块分别包括通信层初始化模块和消息循环模块;通信层初始化模块用于完成与其对应的通信层的初始化,并打开该节点所对应的终端脚本文件,发送终端运行的消息,每个终端线程对应的通信层为tcp通信层、gpib通信层或com通信层中的一种;tcp通信层用于建立和关闭tcp连接,以及发送和接收tcp连接信息,支持telnet以及sshv2方式;gpib通信层用于建立和关闭gpib连接,以及发送和接收gpib连接信息;Com通信层用于打开和关闭串口连接,以及读写串口信息;消息循环模块用于循环读取消息并处理:当消息类型为终端运行消息时,读取终端脚本文件的一行,判断该行类型为终端下发还是上行嵌入命令,若为上行嵌入命令则进行相应处理以完成判定或保存功能,并由人机界面的tab控件进行显示,若为终端下发则通过对应的通信层下发到目标设备;当终端脚本文件的该行为检查消息队列中有没有所需要的消息时,则暂停该终端对下发到目标设备的处理,并每隔一段时间循环查询一次,直至其它终端向主机发送了该消息并存储至终端消息队列中时继续进行下发;当消息循环的消息类型为退出指令时,停止运行并退出。`
【文档编号】H04L12/26GK103701662SQ201310726481
【公开日】2014年4月2日 申请日期:2013年12月25日 优先权日:2013年12月25日
【发明者】许进 申请人:武汉日电光通信工业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1