一种基于Robot Framework的自动化脚本模块化设计方法技术

技术编号:26890229 阅读:33 留言:0更新日期:2020-12-29 16:05
本发明专利技术公开了一种基于Robot Framework的自动化脚本模块化设计方法,本发明专利技术提供了三层分层模型,将自动化测试脚本的开发模块化,在本发明专利技术中,即便是不同的客户,要完成测试用例的执行,客户与客户之间所需要的用户关键字需要实现的功能应该是一样的,不一样的只是设备交互逻辑层中每个关键字内容的差异。因此要适配一个新的产品,仅仅需要做的是将相近客户的关键字复制一份,然后重新命名模块文件,按照规则命名关键字,最后修改适配关键字里面与设备交互的逻辑。区别于传统的方式修改一个交互逻辑需要通篇代码阅读理解不同,适配一个新设备仅仅需要里面设备交互逻辑层代码即可。大大地降低了维护成本,提高开发移植效率。

【技术实现步骤摘要】
一种基于RobotFramework的自动化脚本模块化设计方法
本专利技术属于脚本设计领域,具体是指一种基于RobotFramework的自动化脚本模块化设计方法。
技术介绍
因为RobotFramework的高可扩展性,及其底层语言Python的易于学习的特性,使用RobotFramework框架在自动化测试领域变得越来越流行。然而基于一些公司的实际情况,比如说一些代工或者代研发的厂商,普遍存在客户多,产品多,界面多等特点,使得适配不同客户,不同产品,不同界面变得非常的难,后续脚本的维护任务也变得十分的繁重。
技术实现思路
本专利技术为解决上述技术问题,提供了一种基于RobotFramework的自动化脚本模块化设计方法,极大的提高了脚本开发的效率。为了实现上述目的,本专利技术采取的技术方案如下:一种基于RobotFramework的自动化脚本模块化设计方法,包括如下步骤:S1、基于RobotFramework,建立自动化脚本模板;S2、确定需要实现自动化的用例,并确定所述需要实现自动化的用例能否共用同一套测试拓扑;S3、明确整套用例中需要使用的同种设备后续需要兼容的厂商,并明确整套用例中后续需要兼容的客户;S4、明确需要开发兼容关键字的设备或者客户;S5、对每个用例进行开发;用例的开发方法为:将每个测试用例的用例步骤分割成不可分割的步骤,每个步骤预先定义一个关键字,并且预定义好所述关键字的参数;S6、新建用例步骤关键字的资源文件或者目录,然后将S5中需要的开发的关键字全部进行定义,并明确传参及返回值;在关键字内容中,从公共变量中取出变量,通过runkeywordif判断的方式或者通过runkeyword${OLT_TYPE}LoginOlt的方式调用不同的设备交互逻辑层的关键字;S7、将S6中找出的需要实现的设备交互逻辑层的关键字,按照操作设备的类别,分别建立资源子集,然后在建立的资源子集中,分别开发设备交互逻辑层关键字。进一步的,开发的设备交互逻辑层关键字的命名需进行有规律的命名。进一步的,所述自动化脚本模板包括:测试用例逻辑层:用于实现测试用例需要执行的逻辑;测试步骤逻辑层:用于实现每个不可分割的测试步骤的逻辑,用于通过对于特定变量的判断实现调用不同底层的关键字;设备交互逻辑层:用于实现与设备交互的具体逻辑;公共变量模块:用于放置所有的与环境和设备相关的配置项,所有与环境和设备相关的配置项,供全局调用。进一步的,所述测试用例逻辑层具体用于将用例分成一个个不可分割的步骤,然后将这些不可分割的步骤的关键字组合成一个测试用例。进一步的,所述测试步骤逻辑层,只实现某一个不可分割的步骤的动作,不实现具体与设备的交互逻辑,所述不可分割的步骤可以通过判断变量,指定执行不同客户的设备交互逻辑层的关键字。进一步的,所述设备交互逻辑层,具体实现与不同客户界面的交互,适配不同客户的设备交互逻辑层的关键字与关键字之间应当进行有规律的命名。与现有技术相比,本专利技术所取得的有益效果如下:1、采用本专利技术,在设备交互逻辑层实现的足够多的时候,上层扩展新的测试用例可以直接复用不同的设备交互逻辑层的代码;适配新的待测设备或者新的环境的时候,只需要开发新的设备交互逻辑层即可;如此与设备相关的一些差异性的代码被屏蔽在最小的范围了,脚本开发工程师只需要复制一份类似的,然后修改不同的设备交互逻辑层的代码即可完成移植,使得RobotFramework的开发变得更为高效。2、在本专利技术中,由于每个步骤的操作都是原子化的不可分割的步骤,因此即便是不同的客户,要完成测试用例的执行,客户与客户之间所需要的用户关键字需要实现的功能应该是一样的,不一样的只是设备交互逻辑层中每个关键字内容的差异。因此要适配一个新的产品,仅仅需要做的是将相近客户的关键字复制一份,然后重新命名模块文件,按照规则命名关键字,最后修改适配关键字里面与设备交互的逻辑。区别于传统的方式修改一个交互逻辑需要通篇代码阅读理解不同,适配一个新设备仅仅需要里面设备交互逻辑层代码即可。大大地降低了维护成本,提高开发移植效率。本专利技术通过提供三层分层模型,将自动化测试脚本的开发模块化,降低模块与模块之间的耦合度,提高移植开发效率。附图说明图1为本专利技术一个实施例的模型结构图。具体实施方式下面将结合附图对本专利技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。本专利技术示出了一种基于RobotFramework的自动化脚本模块化设计方法,包括如下步骤:S1、基于RobotFramework,建立自动化脚本模板;如图1所示,所述自动化脚本模板包括测试用例逻辑层、测试步骤逻辑层、设备交互逻辑层、公共变量模块;其中,所述测试用例逻辑层:用于实现测试用例需要执行的逻辑,测试用例逻辑层不实现具体与设备的交互;所述测试用例逻辑层只实现具体用例的逻辑,具体用于将用例分成一个个不可分割的步骤,例如登陆就是一个不可分割的动作。然后将这些不可分割的步骤的关键字组合成一个测试用例。所述测试步骤逻辑层:用于实现每个不可分割的测试步骤的逻辑,并不实现具体与待测设备的实际交互逻辑。用于通过对于特定变量的判断实现调用不同底层的关键字;所述测试步骤逻辑层,只实现某一个不可分割的步骤的动作,不实现具体与设备的交互逻辑,例如登陆路由器就是一个不可分割的一个原子化的动作,所述不可分割的步骤可以通过判断例如客户名称之类的变量,指定执行不同客户的设备交互逻辑层的关键字;此层不实现具体与设备的交互逻辑,只做不同设备的之间的适配判断。设备交互逻辑层:用于实现与设备交互的具体逻辑,比如说与界面交互的Selenium交互的逻辑都实现在此;所述设备交互逻辑层,具体实现与不同客户界面的交互,适配不同客户的设备交互逻辑层的关键字与关键字之间应当进行有规律的命名,比如均以OLT的厂商或型号名作为开头,以方便测试步骤逻辑层的调用,举例说明:公共变量中客户名称为xxx,则客户xxx的命名应当为xxxWebLogin,客户yyy的相关关键字则应命名为yyyWebLogin,如此,在测试步骤逻辑层则可以通过RunKeyword${customer}WebLogin的方式来调用不同的关键字了,公共变量中${customer}的值为xxx,则实际执行的为xxxWebLogin,公共变量中${customer}的值为yyy,则实际执行的为yyyWebLogin。公共变量模块:用于放置所有的与环境和设备相关的配置项,所有与环境和设备相关的配置项,供全局调用。S2、确定需要实现自动化的用例,并确定所述需要实现自动化的用例能否共用同一套测试拓扑;S3、明确整套用例中需要使用的同种设备后续需要兼容的厂商,并明确整套用例中后续需要兼容的客户;S4、明确需要开发本文档来自技高网...

【技术保护点】
1.一种基于Robot Framework的自动化脚本模块化设计方法,其特征在于,包括如下步骤:/nS1、基于Robot Framework,建立自动化脚本模板;/nS2、确定需要实现自动化的用例,并确定所述需要实现自动化的用例能否共用同一套测试拓扑;/nS3、明确整套用例中需要使用的同种设备后续需要兼容的厂商,并明确整套用例中后续需要兼容的客户;/nS4、明确需要开发兼容关键字的设备或者客户;/nS5、对每个用例进行开发;/n用例的开发方法为:将每个测试用例的用例步骤分割成不可分割的步骤,每个步骤预先定义一个关键字,并且预定义好所述关键字的参数;/nS6、新建用例步骤关键字的资源文件或者目录,然后将S5中需要的开发的关键字全部进行定义,并明确传参及返回值;在关键字内容中,从公共变量中取出变量,通过runkeyword if判断的方式或者通过run keyword${OLT_TYPE}Login Olt的方式调用不同的设备交互逻辑层的关键字;/nS7、将S6中找出的需要实现的设备交互逻辑层的关键字,按照操作设备的类别,分别建立资源子集,然后在建立的资源子集中,分别开发设备交互逻辑层关键字。/n...

【技术特征摘要】
1.一种基于RobotFramework的自动化脚本模块化设计方法,其特征在于,包括如下步骤:
S1、基于RobotFramework,建立自动化脚本模板;
S2、确定需要实现自动化的用例,并确定所述需要实现自动化的用例能否共用同一套测试拓扑;
S3、明确整套用例中需要使用的同种设备后续需要兼容的厂商,并明确整套用例中后续需要兼容的客户;
S4、明确需要开发兼容关键字的设备或者客户;
S5、对每个用例进行开发;
用例的开发方法为:将每个测试用例的用例步骤分割成不可分割的步骤,每个步骤预先定义一个关键字,并且预定义好所述关键字的参数;
S6、新建用例步骤关键字的资源文件或者目录,然后将S5中需要的开发的关键字全部进行定义,并明确传参及返回值;在关键字内容中,从公共变量中取出变量,通过runkeywordif判断的方式或者通过runkeyword${OLT_TYPE}LoginOlt的方式调用不同的设备交互逻辑层的关键字;
S7、将S6中找出的需要实现的设备交互逻辑层的关键字,按照操作设备的类别,分别建立资源子集,然后在建立的资源子集中,分别开发设备交互逻辑层关键字。


2.根据权利要求1所述的一种基于RobotFramework的自动化脚本模块化设计方法,其特征在于,开发的设备交互逻辑层关键字的命名需进行有规律的命名。


3.根...

【专利技术属性】
技术研发人员:华亚军魏钒孙建全成根
申请(专利权)人:太仓市同维电子有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1