一种基于Sikuli的自动化测试方法与流程

文档序号:15445157发布日期:2018-09-14 23:16阅读:2630来源:国知局

本公开涉及自动化测试领域,具体是一种基于sikuli的自动化测试方法。



背景技术:

自动化测试方法需要大量的编程工作,虽然出现了ui(用户界面),使用者只需要借助直观的按钮或其他视觉元素即可操作软件。但ui的出现并没有给程序员带来便利,人们仍然需要借助代码来实现相应的功能。如果要让不同的软件相互配合,也同样要进行代码调用。在现有技术中,基于sikuli(mit的研究团队发布的新型图形化脚本语言编程技术)自动化测试是通过截图进行ui自动化测试。sikuli包括sikuli脚本,基于jython(用java编写的高级的、面向对象的、开放源代码的编程语言)的api以及sikuliide(sikuli集成开发环境)。sikuli可以实现任何你可以在显示器上看到ui对象的自动化,可以通过编写一些代码来实现web页面或者桌面应用的自动化测试。自动化测试需要先编写测试用例,打开sikuliide进行截图,编写相应脚本的方式对web或者桌面应用编写执行测试用例,最后进行断言并输出结果。如果web更新后要对测试用例更新,需要重新编辑sikuli脚本中的用例,并且测试用例在脚本中显示的不够直观。此外,由于软件产品迭代更新,测试用例也要相应更新,所以每次都需要重新编辑sikuli脚本,并且sikuli脚本的测试用例显示的不直观,当页面对象定位信息发生变化时,对于web上的页面对象缺少一个统一的管理,相同的页面对象定位信息出现在多个测试用例中,必须逐个修改相关的测试用例,维护工作量比较大,更改用例要花费大量的时间,不利于大规模的sikuli脚本的维护。



技术实现要素:

本公开的目的是针对现有技术的不足,提供一种提高自动化测试效率且便于脚本维护的基于sikuli的自动化测试方法,便于统一的管理,减少脚本维护的工作量。

为了实现上述目的,本公开提出一种基于sikuli的自动化测试方法,具体包括以下步骤:

步骤1,编写excel(microsoft公司为使用windows和applemacintosh操作系统的电脑编写的一款电子表格软件)测试用例;

步骤2,封装用例集脚本;

步骤3,通过excel测试用例获取用例元素;

步骤4,用例集脚本根据用例元素执行测试用例;

步骤5,输出对测试用例的测试结果。

进一步地,在步骤1中,在excel中以固定间距编写测试用例,其中,测试用例的excel输入格式为,第一列的第一行为预期输入的名称,第一列的第二行为预期输入的值;从第二列开始,之后每一列对应一个测试用例,其中,测试用例包括名称和值。

进一步地,在步骤2中,通过sikuliide编辑环境封装用例集脚本,每个用例集脚本至少封装一个脚本测试函数,其中,脚本测试函数的传入参数设置为预期输入。

进一步地,在步骤3中,获取用例元素的方法包括以下子步骤:

步骤3.1,在sikuliide以截图的方式打开excel;

步骤3.2,在excel截图a1中截取预期输入名称的图片a2;

步骤3.3,通过sikuli的location方法定位图片a2的坐标位置(x,y),其中,x为预期用例名称的行坐标,y为用例集参数值的纵坐标;

步骤3.4,通过每一列的用例集参数值y坐标值对应的预期用例名称x坐标值相减得出每个用例元素列与列之间的变距d;

步骤3.5,测试用例的脚本函数逐个识别图片a2中所有的预期用例名称;

步骤3.6,识别预期用例名称后依次把图片a2中的的各预期用例名称的x值加上变距d,通过坐标(x+d,y)定位到用例元素的坐标并存储该元素到数组b,直到识别出来的图片a2的用例元素为空;

步骤3.7,将识别的用例元素的数组b作为结果保存。

进一步地,在步骤3中,在excel截图中获取测试用例参数的方法为,通过对excel截图获取测试用例的用例元素,采用sikuli的ocr插件(ocr,opticalcharacterrecognition,光学字符识别插件,该将插件可以把图片中的文字转换成可以编辑的文档)识别excel元素的值。

进一步地,在步骤3中,把对excel截图的识别结果中的所有用例元素都保存在字典中。

进一步地,在步骤4中,执行测试用例的方法法包括以下子步骤:

步骤4.1,执行用例集脚本;

步骤4.2,用例集脚本从字典读取用例元素;

步骤4.3,根据用例元素执行相关的测试用例。

进一步地,在步骤4中,sikuli用例集脚本根据用例元素执行测试用例,其中,用例集脚本将用例元素作为参数输入脚本测试函数执行测试用例。

本公开的有益效果为:本公开把测试用例和测试脚本分开放置,修改测试用例时不需要再重新对测试脚本进行编辑,并且excel格式的测试用例更方便管理和查看,可提高测试效率。sikuli提取excel的测试用例,再直接执行测试脚本,简化了流程。

附图说明

通过对结合附图所示出的实施方式进行详细说明,本公开的上述以及其他特征将更加明显,本公开附图中相同的参考标号表示相同或相似的元素,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,在附图中:

图1所示为本公开的一种基于sikuli的自动化测试方法的流程图;

图2所示为本公开的一种登录系统的测试用例;

图3所示为本公开的一个实施方式的自动化测试方法的流程图。

具体实施方式

以下将结合实施例和附图对本公开的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本公开的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。附图中各处使用的相同的附图标记指示相同或相似的部分。

如图1所示为根据本公开的一种基于sikuli的自动化测试方法的流程图,图2所示为本公开的一个实施方式的测试用例,下面结合图1与图2来阐述根据本公开的实施方式的基于sikuli的自动化测试方法。

本公开提出一种基于sikuli的自动化测试方法,具体包括以下步骤:

步骤1,编写测试用例,在excel中编写测试用例,每行第一格为预期输入的名称,第二格以后每格可以写预期输入的值,每一列对应一个测试用例。如图2所示的一种登录系统的测试用例,测试用例的预期输入为username和passwd,编写4条测试用例,则编写格式如图2。一旦确定每列之间的间隔就不能更改,因为后面sikuli脚本是通过x轴的固定变化,获取预期输入的值。

步骤2,启动sikuliide,开始编写测试脚本。每个用例集用一个函数封装好,传入参数为预期输入,则获取如图2所示的一种登录系统的测试用例的username和passwd到函数中,再通过截图的方式编写测试用例的步骤,最后断言并返回测试的结果。

步骤3,获取测试用例参数,在sikuliide中定义一个函数,用截图的方式打开excel。再新创建一个临时脚本,截取预期输入名称的图片,通过location的方法获得其位置(图片的位置以x,y的形式表示)。预期输入名称和参数值在excel同一行不同列,通过位置的x值相减得出列与列之间的距离d。然后回到原测试用例的脚本,编写函数逐个识别所有用例的预期输入名称,识别名称后即把该元素的x值加上d,y值不变,即可定位到值的那一格,然后用sikuli的ocr插件(ocr,opticalcharacterrecognition,光学字符识别插件,该将插件可以把图片中的文字转换成可以编辑的文档)识别该格元素的值,并保存。最后x值逐次加d,y不变,直到识别出来的图片的值为空。至此,则把excel中所有测试的预期输入和值都保存在字典中,供后续执行测试用例使用。

如步骤1中获取图片“username”的位置,假如为(10,10),第一个“测试用例1”的位置为(15,10),即可得列间距为15-10=5,x值按该间距逐个相加,下一个获取(20,10)位置的图片进行ocr识别,若为空,则停止,否则继续识别剩下的参数值,直至获取“username”的所有值。

步骤4,执行测试用例的方法包括以下子步骤:

步骤4.1,执行用例集脚本;

步骤4.2,用例集脚本从字典读取用例元素;

步骤4.3,根据用例元素执行相关的测试用例。

在步骤4中,sikuli用例集脚本根据用例元素执行测试用例,其中,用例集脚本将用例元素作为参数输入脚本测试函数执行测试用例。

步骤5,输出对测试用例的测试结果。

本公开的实施例提供的一种基于sikuli的自动化测试方法,该实施例的一种基于sikuli的自动化测试方法包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如加密程序。所述处理器执行所述计算机程序时实现上述各个加密方法实施例中的步骤,例如图3所示的本公开的一个实施方式的自动化测试方法的流程图的步骤。

所述系统包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序以执行如图3所示步骤,步骤如下:

步骤a,编写excel测试用例;

步骤b,启动sikuliide编写用例步骤并封装进函数;

步骤c,编写sikuli测试脚本获取excel测试用例参数;

步骤d,sikuli脚本执行测试用例;

步骤e,输出对测试用例的测试结果。

进一步地,在步骤a中,编写测试用例的方法流程为,在excel中以固定间距编写测试用例,其中,测试用例的excel输入格式为,第一列的第一行为预期输入的名称,第一列的第二行为预期输入的值;从第二列开始,之后每一列对应一个测试用例,其中,测试用例包括名称和值。

进一步地,在步骤a中,在excel中编写测试用例,由于sikuli脚本是通过x轴的固定变化而获取预期输入的值,所以一旦确定每列之间的间隔就不能更改。

进一步地,在步骤b中,封装用例集脚本的方法为,启动sikuliide,开始编写测试脚本。每个用例集用一个函数封装好,传入参数为预期输入。

进一步地,在步骤c中,获取测试用例参数的方法流程为,在sikuliide以截图的方式打开excel,截取预期输入名称的图片,通过location的方法获得其位置(图片的位置以x,y的形式表示),预期输入名称和参数值在excel同一行不同列,通过位置的x值相减得出列与列之间的距离d。然后回到原测试用例的脚本,编写函数逐个识别所有用例的预期输入名称,识别名称后即把该元素的x值加上d,y值不变,即可定位到值的那一格,最后x值逐次加d,y不变,直到识别出来的图片的值为空,将识别结果保存。

进一步地,在步骤c中,在excel的截图中获取测试用例参数的方法为,采用sikuli的ocr插件识别excel元素的值。

进一步地,在步骤c中,把对excel截图的识别结果中的所有测试的预期输入和值都保存在字典中,供后续执行测试用例使用。

进一步地,在步骤d中,执行测试用例的方法为,执行编辑好的sikuli脚本,执行测试用例的方法为,执行编辑好的sikuli脚本,sikuli脚本先执行获取excel数据的函数保存在字典中,然后把字典中的值作为参数传入到测试步骤的函数中,调用字典中的excel测试的预期输入和值参数执行相关的测试用例。

所述一种基于sikuli的自动化测试方法可以运行于桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备中。所述一种基于sikuli的自动化测试方法可运行的装置可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述例子仅仅是一种基于sikuli的自动化测试方法的示例,并不构成对一种基于sikuli的自动化测试方法的限定,可以包括比例子更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述一种基于sikuli的自动化测试方法还可以包括输入输出设备、网络接入设备、总线等。

所称处理器可以是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种基于sikuli的自动化测试方法运行装置的控制中心,利用各种接口和线路连接整个一种基于sikuli的自动化测试方法可运行装置的各个部分。

所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种基于sikuli的自动化测试方法的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

尽管本公开的描述已经相当详尽且特别对几个所述实施例进行了描述,但其并非旨在局限于任何这些细节或实施例或任何特殊实施例,而是应当将其视作是通过参考所附权利要求考虑到现有技术为这些权利要求提供广义的可能性解释,从而有效地涵盖本公开的预定范围。此外,上文以发明人可预见的实施例对本公开进行描述,其目的是为了提供有用的描述,而那些目前尚未预见的对本公开的非实质性改动仍可代表本公开的等效改动。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1