CN101478557A - 一种自动化系统及其终端模拟方法 - Google Patents
一种自动化系统及其终端模拟方法 Download PDFInfo
- Publication number
- CN101478557A CN101478557A CNA2008100651064A CN200810065106A CN101478557A CN 101478557 A CN101478557 A CN 101478557A CN A2008100651064 A CNA2008100651064 A CN A2008100651064A CN 200810065106 A CN200810065106 A CN 200810065106A CN 101478557 A CN101478557 A CN 101478557A
- Authority
- CN
- China
- Prior art keywords
- remote terminal
- interface
- state
- telnet
- terminal
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种自动化系统及其终端模拟方法,该系统包括自动化主程序模块,还包括远程登录模块,该模块用于封装远程登录功能函数的动态链接库,向自动化主程序模块提供不同远程登录功能函数的调用接口;终端模拟方法为:将远程登录功能函数的动态链接库封装到远程登录模块,并对外提供远程登录功能函数的调用接口,自动化主程序模块通过调用这些接口与远程终端进行交互来实现终端模拟。本发明将Telnet功能函数的动态链接库封装成Telnet模块,自动化系统可通过调用Telnet模块的各种功能函数接口来实现终端模拟,并在动态链接库中为自动化系统的执行者提供了供观察的子窗口,因而整个过程具有可见性和较强的可控性,更加人性化。
Description
技术领域
本发明涉及一种自动化系统及其终端模拟的方法。
背景技术
终端模拟的目标是允许界面终端设备和面向终端的过程能通过一个标准过程进行互相交互,它们之间使用的是Telnet(远程登录)协议。理所当然,模拟终端都是与人交互,也就是说,等待人输入终端命令,模拟终端将命令运行后的结果显示给人看。
但是,当自动化系统需终端模拟时,就需要自动化系统与模拟终端进行交互。此时,自动化系统代替了人的位置,需向模拟终端发送Telnet命令,并“看”命令运行后的结果,甚至需要去输入登录用户名和口令,并“看”远程终端是否登录上了,以及对方是否给出了命令提示符以提示输入终端命令等。
目前,在自动化系统中进行终端模拟的做法一般是通过对象识别工具去调用、识别现有的一些包装成可执行程序的模拟终端应用程序。这种情况下,只能通过识别并操作模拟终端应用程序界面上的一些标准控件来模拟人的操作,而因为这些exe程序并不对外提供功能调用接口,这种方法存在以下问题:
1)不能了解当前的远程终端用户的登录状态,即登录成功或登录失败。
2)在向远程终端提交终端命令后,不能了解对方回送的确切消息。
这样,自动化系统只知道发出了连接要求或命令,但不知结果如何,整个连接过程可控性很差,这样的自动化系统并没有按前述要求完全代替人的位置;并且鉴于对象识别工具的局限性和不稳定性,当模拟终端应用程序运行时,其所带控件有可能不被识别,这将造成自动化运行任务的异常中断。
发明内容
本发明所要解决的技术问题是提供一种自动化系统及其终端模拟方法,使得自动化系统进行终端模拟的过程具有较强的可控性。
为解决上述技术问题,本发明是通过以下技术方案实现的:
一种自动化系统,包括自动化主程序模块,还包括远程登录模块,该模块用于封装远程登录功能函数的动态链接库,向所述自动化主程序模块提供不同远程登录功能函数的调用接口。
其中,所述远程登录模块包括8个接口;
接口1,用于建立自动化系统与远程终端的远程登录连接,并建立用于显示此连接情况的子窗口;
接口2,用于向所述远程终端发送远程登录命令;
接口3,用于断开自动化系统与远程终端的远程登录连接;
接口4,用于接收远程终端的回送消息;
接口5,用于获取远程终端的当前状态;
接口6,用于获取远程终端当前登录的用户名;
接口7,用于将所述子窗口最小化;
接口8,用于将所述子窗口还原至原始大小。
其中,所述自动化系统还包括自动化功能模块,与所述自动化主程序模块相连,用于实现该系统的各个功能。
一种如上所述自动化系统的终端模拟方法,所述方法为:将远程登录功能函数的动态链接库封装到远程登录模块,并对外提供远程登录功能函数的调用接口,所述自动化主程序模块通过调用这些接口与远程终端进行交互来实现终端模拟。
其中,所述远程登录模块对外提供以下接口:
接口1,用于建立自动化系统与远程终端的远程登录连接,并建立用于显示此连接情况的子窗口;
接口2,用于向所述远程终端发送远程登录命令;
接口3,用于断开自动化系统与远程终端的远程登录连接;
接口4,用于接收远程终端的回送消息;
接口5,用于获取远程终端的当前状态;
接口6,用于获取远程终端当前登录的用户名;
接口7,用于将所述子窗口最小化;
接口8,用于将所述子窗口还原至原始大小。
其中,所述接口1的实现方法为:
a1、建立动态链接库框架;
a2、建立用于显示自动化系统与远程终端的连接情况的子窗口;
a3、与远程终端建立套接字连接,若连接成功则远程终端进入“已建套接字连接”状态并继续下步,否则进入“连接已失败”状态并退出;
a4、向远程终端发送登录的用户名,远程终端进入“用户名已发出”状态;
a5、向远程终端发送登录的口令,远程终端进入“口令已发出”状态;
a6、根据所述远程终端返回的消息判断远程终端是否成功登录,若成功登录,则该远程终端进入“已登录远程终端”状态,否则进入“连接已失败”状态。
其中,所述接口2的实现方法为:
b1、检查所述远程终端当前的状态;
b2、若远程终端处于“已登录远程终端”状态,则将发送缓冲区中的内容发送给此远程终端;
其中,所述接口4的实现方法为:
d1、读取套接字接收缓冲区中的消息内容;
d2、若所述消息为命令消息,则按远程登录协议规范向所述远程终端返回消息并退出;若为数据消息,则对其进行显示处理并进入下步;
d3、根据所述数据消息的结尾字符判断自动化系统是否获得终端控制权,若未获得,则退出,否则继续下步;
d4、获取远程终端当前的状态,根据其当前状态对其进行处理。
其中,所述步骤d4中根据远程终端的当前状态对其进行处理的方法为:
若为“已建套接字连接”状态,则向其发送用户名,并将其置为“用户名已发出”状态;
若为“用户名已发出”状态,则向其发送口令,并将其置为“口令已发出”状态;
若为“口令已发出”状态,则检查所述消息的结尾字符,若结尾字符为常用命令提示符,则将其置为“已登录远程终端”状态;若结尾字符为登录提示符,则将其置为“连接已失败”状态;
若为“已登录远程终端”状态,则检查消息的结尾字符,若结尾字符为常用命令提示符,则将其置为“用户登录后,再次进入命令提示符”状态。
其中,所述接口3的实现方法为:
c1、向远程终端发送远程登录退出命令;
c2、释放套接字资源;
c3、释放对话框资源。
本发明具有以下有益效果:本发明将Telnet功能函数的动态链接库封装成Telnet模块,自动化系统可通过调用Telnet模块的各种功能函数接口来实现终端模拟,并在动态链接库中为自动化系统的执行者提供了供观察的子窗口以显示模拟终端的通信信息,因而整个过程具有可见性和较强的可控性,更加人性化。
附图说明
图1是本发明的自动化系统结构图;
图2是本发明自动化系统实施例的结构图;
图3实施例中接口4的实现方法流程图。
具体实施方式
本发明提出了一种自动化系统,如图1所示,该系统包括自动化主程序模块和Telnet模块。
其中,Telnet模块封装了各种Telnet功能函数的动态链接库,向自动化主程序模块提供不同Telnet功能函数的调用接口;自动化主程序模块作为功能脚本宿主,对功能脚本进行解释运行,调用Telnet模块提供的不同Telnet功能函数接口来与其远程终端进行通信。
上述自动化系统还包括自动化功能模块,与自动化主程序模块相连,用于实现自动化系统的各个功能。
本发明还提供了一种终端模拟方法,该方法为:将Telnet功能函数的动态链接库(该链接库实现Telnet协议)封装成Telnet模块,并对外提供Telnet功能函数的调用接口,自动化主程序模块通过调用这些接口与远程终端进行交互来实现终端模拟。
下面将结合附图和具体实施例对本发明作进一步详细的描述:
请参阅附图2,本实施例中自动化系统包括依次相连的自动化功能模块、自动化主程序模块和Telnet模块,其中的Telnet模块对外提供了8个功能函数调用接口,各个接口的功能及其实现方法如下所述:
(1)接口1,用于建立自动化系统与其远程终端的Telnet连接,并建立用于显示此连接情况的子窗口。自动化主程序模块调用该接口时必须提供登录用户名和口令,具体实现步骤为:
A1、建立动态链接库框架;
A2、为调用者建立用于观察的子窗口;
A3、启用windows socket功能;
A4、与远程终端建立socket(套接字)链接,并提名connect事件,若连接成功,则该终端进入状态1,即“已建socket链接”状态;若连接失败,则进入状态-1,即“连接已失败”状态,并退出;
A5、就Telnet服务选项与对方进行协商;
A6、向远程终端发送用户名,则该终端进入状态2,即“用户名已发出”状态;
A7、向远程终端发送口令,则该终端进入状态3,即“口令已发出”状态;
A8、根据远程终端回送的消息确定其是否已登录成功,若登录成功,则进入状态4,即“已登录Telnet”状态;若登录失败,则进入状态-1,即“连接已失败”状态。
(2)接口2,用于向所述远程终端发送Telnet命令,具体实现方法为:
B1、检查远程终端当前的状态;
B2、若远程终端处于状态4,即“已登录Telnet”状态,则将发送缓冲区中的内容通过socket发出。
(3)接口3,用于断开自动化系统与远程终端的Telnet连接,具体实现方法为:
C1、向对方发送Telnet退出命令;
C2、释放socket资源;
C3、释放对话框资源;
C4、释放其他所有资源。
(4)接口4,用于接收远程终端的回送消息,如图3所示,具体实现方法为:
D1、读取socket接收缓冲区中的消息内容;
D2、若上述消息为命令消息,则按Telnet协议规范向远程终端返回消息并退出;若为数据消息,则对其进行显示处理并进入下步;
D3、根据所述数据消息的结尾字符判断自动化系统是否获得终端控制权,若未获得,则退出,否则继续下步;
D4、获取远程终端当前的状态,根据其当前状态对其进行处理;处理方法为:
若为状态1,即“已建socket连接”状态,则向其发送用户名,并将其置为状态2,即“用户名已发出”状态;
若为状态2,则向其发送口令,并将其置为状态3,即“口令已发出”状态;
若为状态3,则检查所述消息的结尾字符,若结尾字符为常用命令提示符之一,则将其置为状态4,即“已登录Telnet”状态;若结尾字符为登录提示符,则将其置为状态-1,即“连接已失败”状态;
若为状态4,则检查消息的结尾字符,若结尾字符为常用命令提示符之一,则将其置为状态5,即“用户登录后,再次进入命令提示符”状态,以表明上条命令的运行已结束;否则,将其复位为状态4。
(5)接口5,用于获取远程终端的当前状态,实现方法为:读取远程终端当前的状态值,以确定远程终端当前所处的状态。
(6)接口6,用于获取远程终端当前登录的用户名,通过读取当前用户名即可确定远程终端当前的用户。
(7)接口7,用于在不需要进行Telnet交互信息的观察时,将所述用于观察的子窗口最小化。
(8)接口8,用于在欲进行Telnet交互信息的观察时,将所述子窗口还原至原始大小。
实现了上述接口之后,自动化系统的自动化主程序模块就可以通过调用这些接口来实现终端模拟。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1、一种自动化系统,包括自动化主程序模块,其特征在于,还包括远程登录模块,该模块用于封装远程登录功能函数的动态链接库,向所述自动化主程序模块提供不同远程登录功能函数的调用接口。
2、如权利要求1所述的自动化系统,其特征在于,所述远程登录模块包括8个接口;
接口1,用于建立自动化系统与远程终端的远程登录连接,并建立用于显示此连接情况的子窗口;
接口2,用于向所述远程终端发送远程登录命令;
接口3,用于断开自动化系统与远程终端的远程登录连接;
接口4,用于接收远程终端的回送消息;
接口5,用于获取远程终端的当前状态;
接口6,用于获取远程终端当前登录的用户名;
接口7,用于将所述子窗口最小化;
接口8,用于将所述子窗口还原至原始大小。
3、如权利要求1或2所述的自动化系统,其特征在于,所述自动化系统还包括自动化功能模块,与所述自动化主程序模块相连,用于实现该系统的各个功能。
4、一种如权利要求1所述自动化系统的终端模拟方法,其特征在于,所述方法为:将远程登录功能函数的动态链接库封装到远程登录模块,并对外提供远程登录功能函数的调用接口,所述自动化主程序模块通过调用这些接口与远程终端进行交互来实现终端模拟。
5、如权利要求4所述的终端模拟方法,其特征在于,所述远程登录模块对外提供以下接口:
接口1,用于建立自动化系统与远程终端的远程登录连接,并建立用于显示此连接情况的子窗口;
接口2,用于向所述远程终端发送远程登录命令;
接口3,用于断开自动化系统与远程终端的远程登录连接;
接口4,用于接收远程终端的回送消息;
接口5,用于获取远程终端的当前状态;
接口6,用于获取远程终端当前登录的用户名;
接口7,用于将所述子窗口最小化;
接口8,用于将所述子窗口还原至原始大小。
6、如权利要求5所述的终端模拟方法,其特征在于,所述接口1的实现方法为:
a1、建立动态链接库框架;
a2、建立用于显示自动化系统与远程终端的连接情况的子窗口;
a3、与远程终端建立套接字连接,若连接成功则远程终端进入“已建套接字连接”状态并继续下步,否则进入“连接已失败”状态并退出;
a4、向远程终端发送登录的用户名,远程终端进入“用户名已发出”状态;
a5、向远程终端发送登录的口令,远程终端进入“口令已发出”状态;
a6、根据所述远程终端返回的消息判断远程终端是否成功登录,若成功登录,则该远程终端进入“已登录远程终端”状态,否则进入“连接已失败”状态。
7、如权利要求6所述的终端模拟方法,其特征在于,所述接口2的实现方法为:
b1、检查所述远程终端当前的状态;
b2、若远程终端处于“已登录远程终端”状态,则将发送缓冲区中的内容发送给此远程终端。
8、如权利要求6所述的终端模拟方法,其特征在于,所述接口4的实现方法为:
d1、读取套接字接收缓冲区中的消息内容;
d2、若所述消息为命令消息,则按远程登录协议规范向所述远程终端返回消息并退出;若为数据消息,则对其进行显示处理并进入下步;
d3、根据所述数据消息的结尾字符判断自动化系统是否获得终端控制权,若未获得,则退出,否则继续下步;
d4、获取远程终端当前的状态,根据其当前状态对其进行处理。
9、如权利要求8所述的终端模拟方法,其特征在于,所述步骤d4中根据远程终端的当前状态对其进行处理的方法为:
若为“已建套接字连接”状态,则向其发送用户名,并将其置为“用户名已发出”状态;
若为“用户名已发出”状态,则向其发送口令,并将其置为“口令已发出”状态;
若为“口令已发出”状态,则检查所述消息的结尾字符,若结尾字符为常用命令提示符,则将其置为“已登录远程终端”状态;若结尾字符为登录提示符,则将其置为“连接已失败”状态;
若为“已登录远程终端”状态,则检查消息的结尾字符,若结尾字符为常用命令提示符,则将其置为“用户登录后,再次进入命令提示符”状态。
10、如权利要求5至9任一所述的终端模拟方法,其特征在于,所述接口3的实现方法为:
c1、向远程终端发送远程登录退出命令;
c2、释放套接字资源;
c3、释放对话框资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100651064A CN101478557A (zh) | 2008-01-02 | 2008-01-02 | 一种自动化系统及其终端模拟方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008100651064A CN101478557A (zh) | 2008-01-02 | 2008-01-02 | 一种自动化系统及其终端模拟方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101478557A true CN101478557A (zh) | 2009-07-08 |
Family
ID=40839189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008100651064A Pending CN101478557A (zh) | 2008-01-02 | 2008-01-02 | 一种自动化系统及其终端模拟方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101478557A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955714A (zh) * | 2011-08-17 | 2013-03-06 | 阿里巴巴集团控股有限公司 | 实现动态模拟远程接口的装置及方法 |
CN111045766A (zh) * | 2019-11-25 | 2020-04-21 | 杭州迪普科技股份有限公司 | 一种基于命令行界面输出提示信息的方法及装置 |
-
2008
- 2008-01-02 CN CNA2008100651064A patent/CN101478557A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102955714A (zh) * | 2011-08-17 | 2013-03-06 | 阿里巴巴集团控股有限公司 | 实现动态模拟远程接口的装置及方法 |
CN102955714B (zh) * | 2011-08-17 | 2015-07-08 | 阿里巴巴集团控股有限公司 | 实现动态模拟远程接口的装置及方法 |
CN111045766A (zh) * | 2019-11-25 | 2020-04-21 | 杭州迪普科技股份有限公司 | 一种基于命令行界面输出提示信息的方法及装置 |
CN111045766B (zh) * | 2019-11-25 | 2022-07-01 | 杭州迪普科技股份有限公司 | 一种基于命令行界面输出提示信息的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461897B (zh) | 一种应用程序测试的方法和设备 | |
CN104461575B (zh) | 一种网页脚本语言跨移动操作系统平台原生接口调用的装置及方法 | |
CN107678778B (zh) | 基于Hybrid的兼容方法、适配件、运行装置及系统 | |
CN102214140B (zh) | 软件自动测试的方法及系统 | |
CN105897652A (zh) | 一种基于标准协议的异构终端动态接入方法 | |
CN108920376A (zh) | 应用程序的测试方法、装置及介质 | |
CN103780455B (zh) | 基于ttcn‑3的tetra数字集群协议测试方法和系统 | |
CN107241315A (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
CN105487965A (zh) | 一种通用的服务器压力测试方法及装置 | |
CN102594618A (zh) | 实现存储局域网络存储设备测试的方法及装置 | |
US11709722B2 (en) | Extensible communication framework and communication method supporting multiple communication protocols | |
CN103338226A (zh) | 工程机械软件远程调试和升级系统及方法 | |
CN110149385A (zh) | 空间下载升级终端 | |
CN111885004B (zh) | 一种应用层消息传输方法及通信接口平台 | |
CN105550103B (zh) | 一种基于自定义测试脚本的自动化测试方法 | |
CN101478557A (zh) | 一种自动化系统及其终端模拟方法 | |
CN104836831B (zh) | 一种用于物联网的物体服务方法 | |
CN213213488U (zh) | 自动化测试系统 | |
KR101069352B1 (ko) | 변전 자동화 클라이언트 제어 서비스 시험 장치 및 그 방법 | |
CN101409655A (zh) | 一种报文驱动的自动化测试系统以及实现方法 | |
EP2445171A1 (en) | File transfer protocol client and implementing method thereof | |
WO2017092391A1 (zh) | 一种中间库虚拟控制测试方法及其系统 | |
CN104468213B (zh) | 一种交换机远程管理系统和方法 | |
CN110177030A (zh) | 工业网关控制测试方法 | |
CN104022901B (zh) | 国网集中器onu模块的plc配置管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090708 |