掌桥专利:专业的专利平台
掌桥专利
首页

一种自动化测试方法及装置

文献发布时间:2023-06-19 13:29:16


一种自动化测试方法及装置

技术领域

本申请实施例涉及自动化测试技术领域,尤其涉及一种自动化测试方法及装置。

背景技术

在自动化测试领域,目前还没有一种对通过跳板机访问被测系统进行自动化测试的通用方法。现有技术中,当需要通过访问跳板机对被测系统进行自动化测试时,通常是直接去掉跳板机对被测系统进行自动化测试,或者采用手工测试的方法。

跳板机本身是为了整个业务系统的安全,直接去掉跳板机,对被测系统进行自动化测试,在实际的生产环境中,将给业务系统带来巨大风险;直接采用手工测试的方式,增加了人力成本、降低了测试效率。

发明内容

本申请实施例公开了一种自动化测试方法及装置,通过客户端与跳板机之间创建连接方法,实现客户端通过跳板机与被测系统之间可靠通信,有效发送测试指令,返回测试数据,既保证了整个业务系统的安全性,又减少了人力成本,提高了测试效率。

第一方面,本申请实施例提供了一种自动化测试方法,所述测试方法通过跳板机对被测系统进行自动化测试,所述方法包括:

创建客户端及连接所述跳板机的方法;

定义客户端发送测试指令至所述跳板机的方法,并定义客户端接收所述跳板机返回被测系统指令的方法;

输入测试指令至客户端,客户端调用发送测试指令的方法和接收返回被测系统指令的方法进行自动化测试。

与现有技术相比,根据本申请实施例第一方面,通过创建客户端及连接跳板机的方法,定义客户端发送测试指令的方法及客户端接收跳板机返回被测系统指令的方法,实现客户端与跳板机可靠通信,客户端向被测系统有效发送指令,并可靠接收被测系统返回的指令,实现客户端通过跳板机对被测系统进行自动化测试,从而在确保业务系统安全的同时,减少测试人力成本,提高测试效率。

第二方面,本申请实施例提供公开了一种自动化测试装置,所述自动化测试装置用于通过跳板机对被测系统进行自动化测试,所述装置包括:

创建模块,用于创建客户端及连接所述跳板机的方法;

定义模块,定义客户端发送测试指令至所述跳板机的方法,并定义客户端接收所述跳板机返回被测系统指令的方法;

测试模块,输入测试指令至客户端,客户端调用发送测试指令的方法和接收返回被测系统指令的方法进行自动化测试。

与现有技术相比,第二方面提供的技术方案的有意效果与第一方面的有益效果相同,在此不再赘述。

应注意,本申请实施例提供的自动化测试方法及装置的更多应用和优势将从下面的详细描述中显而易见。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请一实施例提供的自动化测试方法的流程示意图;

图2为本申请一实施例提供的自动化测试方法的流程示意图;

图3为本申请一实施例提供的自动化测试方法交互过程示意图;

图4为本申请一实施例测试装置结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

需要说明的是,本申请的每个实施例都是通过跳板机对被测系统进行自动化测试。

图1为本申请实施例提供的自动化测试方法流程示意图。

步骤S11,创建客户端及连接所述跳板机的方法;

步骤S11,具体包括:

获取所述跳板机的系统属性;

根据所述跳板机的系统属性,创建连接所述跳板机的方法。

示例性地,创建跳板机连接方法,方法入参为跳板机ip、端口、账号、密码,方法内容为调用python开源模块paramiko的SSHClient方法创建一个客户端并为其提供跳板机ip、端口、账号、密码作为入参,其中,python开源模块paramiko的SSHClient方法用于创建支持ssh协议的客户端,ssh协议为连接linux等系统常用的协议,跳板机一般为linux系统,如果跳板机不支持ssh协议则使用跳板机支持的协议对应的模块方法,之后调用创建的客户端的invoke_shell方法创建传输管道对象并设置传输管道对象接收超时时间为10秒(秒数可根据实际需要进行调整),其中,invoke_shell方法用于创建与linux等系统连接后向linux等系统发送或接收指令的传输管道对象),本实施例对上述跳板机系统,所支持的安全协议,安全协议客户端和创建传输管道对象的方法都不做限制。

步骤S12,定义客户端发送测试指令至所述跳板机的方法,并定义客户端接收所述跳板机返回被测系统指令的方法;

示例性地,需要在跳板机操作系统的系统层和应用层分别定义客户端向跳板机发送测试指令及接收被测系统返回指令的方法。之所以分为将发送和接收方法分为在系统层和应用层是为了实现自动化测试系统的高内聚低耦合,系统层方法只负责发送和接收指令数据,与传输的数据类型无关;而应用层发送测试指令至跳板机的方法和客户端接收所述跳板机返回被测系统指令的方法与具体的测试应用有关。

系统层发送测试指令至跳板机的方法为客户端传输管道对象的发送方法,方法参数为待发送的指令和特定字符串组成拼接而成的字符串组成,所述特定字符为\r\n;系统层接收被测系统返回指令的方法为客户端传输管道对象的接收方法,无参数。

步骤S13,输入测试指令至客户端,客户端调用发送测试指令的方法和接收返回被测系统指令的方法进行自动化测试。

步骤S13,具体包括:

设置循环数为N的循环,N为大于等于1的自然数;

调用发送测试指令的方法发送测试指令,休眠预设时间,然后调用接收返回被测系统指令的方法接收指令;

将接收到的指令与期望接收到的指令进行模糊匹配,确认接收到的指令是否包含期望返回的指令。

如果包含,则退出循环并返回跳板机接收到的指令,结束测试;

否则继续循环,并将之前循环所有接收到的指令与当前循环接收到的指令按照接收顺序拼接得到拼接字符串,将拼接字符串与期望接收到的指令进行模糊匹配,确认是否包含期望返回的指令。

示例性地,编写跳板机灵活发送接收方法,入参为指令和期望返回指令,期望返回信息可为期望返回的信息的任意字符串,方法内容为调用底层发送方法发送指令,紧接着设置一个循环,循环次数10次(循环次数可根据实际需要进行调整),每次进入循环后先休眠1秒(具体时间可以进行调整),之后调用底层接收方法进行接收返回的指令,并将接收到的指令与期望返回信息进行模糊匹配,确认收到的指令是否含期望返回指令,如果包含则退出循环并返回接收到的指令,测试结束,否则继续循环并将之前所有循环接收到的指令与当前循环接收到的指令,按接收顺序进行字符串拼接后与期望返回指令进行模糊匹配,确认是否含期望返回指令,如果包含则退出循环、返回所有接收到的内容并测试结束,否则继续循环,如此反复,如果直至循环结束所有接收到的指令与期望返回指令模糊匹配匹配不上,则返回所有接收到的指令并测试结束。此处的原理是由于接收方法接收的跳板机返回指令大部分是跳板机与linux等其它通信单元的通信后,由跳板机代为传达的,因此无法知道这些指令何时传输完毕,进而使用循环等待,并根据期望返回指令来判断需要的指令已传输完毕,循环次数及睡眠时间根据实际进行自动化测试时需要传输的信息量而定,比如基本2次就可传输完且基本2秒内可传输完成,则可设置为循环3次每次1秒,即比实际略大,避免接收不到期望返回的信息。

如图2所示,为具体的通过跳板机进行自动化测试的流程示意图;

首先先执行步骤S21,创建客户端及连接跳板机的方法;

随后依次执行S22,定义客户端发送测试指令至所述跳板机的方法,并定义客户端接收所述跳板机返回被测系统指令的方法。

步骤S23,定义具体的测试过程的方法

步骤S23具体包括,定义经客户端发送测试指令后,预期返回信息,之后可将预期返回的指令与被测系统返回的指令进行匹配,确认是否含期望返回信息。

执行步骤S24,调用发送测试指令的方法;

执行步骤S25,休眠预设时间;

执行步骤S26,调用接收返回被测系统指令的方法接收返回的指令;

执行步骤S27,将接收到的指令与期望返回指令进行模糊匹配,确认收到的指令是否含期望返回指令;

执行步骤S28,如果包含,则退出循环并返回跳板机接收到的指令,结束测试;

否则继续循环,执行步骤S29,休眠预设时间;

稍后执行步骤S30,调用接收返回被测系统的方法进行接收相关信息;

执行步骤S31,并将之前循环所有接收到的指令与当前循环接收到的指令按照接收顺序拼接得到拼接字符串,将拼接字符串与期望接收到的指令进行模糊匹配,确认是否包含期望返回的指令。

如图3所示,图3为本申请实施例自动化测试的交互过程示意图;

在本申请实施例中,整个交互过程包括客户端,跳板机和被测系统;

首先在进行测试之前,先创建客户端及连接所述跳板机的方法;

稍后客户端执行步骤S31,通过创建的连接跳板机的方法与跳板机建立通信连接;

在步骤S31之后,客户端执行步骤S32和步骤S33,调用发送测试指令的方法;并通过客户端输入测试指令,经过跳板机到被测系统进行自动化测试;

需要说明的是,在调用发送测试指令的方法之后,会休眠预设时间,然后在执行步骤S34。

执行步骤S34,调用接收返回被测系统指令的方法进行自动化测试。

执行步骤S34,客户端接收通过跳板机转发的被测系统的返回指令;

执行步骤S35,接收到的指令与期望接收到的指令进行模糊匹配,确认接收到的指令是否包含期望返回的指令;

如果包含,执行步骤S36,则退出循环并返回跳板机接收到的指令,结束测试;

否则继续循环,执行步骤S37,并将之前循环所有接收到的指令与当前循环接收到的指令按照接收顺序拼接得到拼接字符串,将拼接字符串与期望接收到的指令进行模糊匹配,确认是否包含期望返回的指令。

步骤S37中,如果接收到的信息不包含期望从被测系统返回的指令,则继续执行循环,并将此前执行循环返回的信息和循环返回的指令依序进行字符串拼接,将拼接后的字符串与期望从被测系统返回的信息进行模糊匹配,如果拼接后的字符串包含期望返回的指令,则退出循环,返回接收到的从被测系统返回的指令,结束整个方法;如果循环到预先设定的N次循环,将依次循环返回的信息拼接为字符串与希望从被测系统返回的信息进行模糊匹配,如果不包含期望返回的指令,则退出循环,结束整个方法。

本申请实施例,基于创建的客户端及连接跳板机的方法,实现客户端与跳板机的通信;通过定义的发送指令到跳板机的方法和接收从被测段返回跳板机指令的方法,实现客户端与跳板机的指令交互,从而实现客户端通过跳板机对被测系统的自动化测试。

如图4所示,本申请实施例还提供了自动化测试装置,所述测试装置通过跳板机对被测系统进行自动化测试,所述装置包括:

创建模块41,用于创建客户端及连接所述跳板机的方法;

定义模块42,定义客户端发送测试指令至所述跳板机的方法,并定义客户端接收所述跳板机返回被测系统指令的方法;

测试模块43,输入测试指令至客户端,客户端调用发送测试指令的方法和接收返回被测系统指令的方法进行自动化测试。

需要说明的是,具体的测试过程与上述自动化测试过程相同,在此不在赘述。

以上实施方案的至少一个技术特征可以进行任意的组合,为使描述简洁,未对上述实施方案中的至少一个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

尽管结合实施方案对本发明进行了描述,但本领域技术人员应理解,上文的描述和附图仅是示例性而非限制性的,本发明不限于所公开的实施方案。在不偏离本发明的精神的情况下,各种改型和变体是可能的。

相关技术
  • 一种自动化攻击测试方法及基于此的自动化安全测试方法
  • 一种天线远场发射端自动化测试装置及其自动化测试方法
技术分类

06120113693714