一种基于Sikuli的自动化测试方法技术

技术编号:18940289 阅读:30 留言:0更新日期:2018-09-15 11:01
本公开的目的是针对现有技术的不足,提供一种提高自动化测试效率且便于脚本维护的基于Sikuli的自动化测试方法,测试用例在excel中编写。启动Sikuli IDE,编写测试用例的脚本,封装进函数中,该函数接收预期输入值,最后返回测试结果。再编辑脚本,用于打开excel,识别用例的预期输入名称,通过位置的关系读取预期输入的具体值。Sikuli脚本获取了预期输入的名称和值后,保存在字典中,再执行具体的测试用例,得到测试结果。本公开把测试用例和测试脚本分开放置,修改测试用例时不需要再重新对测试脚本进行编辑,并且excel格式的测试用例更方便管理和查看,可提高测试效率。Sikuli提取excel的测试用例直接用以执行测试脚本,简化了流程。

An automated test method based on Sikuli

The purpose of the present disclosure is to provide an automated test method based on Sikuli, which improves the efficiency of automated testing and facilitates script maintenance, and test cases are written in excel. Start the Sikuli IDE, write a script for the test case, wrap it in a function that receives the expected input value, and finally returns the test result. Re-edit the script to open excel, identify the expected input name of the use case, and read the specific value of the expected input through the location relationship. The Sikuli script takes the name and value of the expected input, saves it in the dictionary, and executes the specific test cases to get the test results. The test case and test script are placed separately in this disclosure. When modifying the test case, it is not necessary to edit the test script again. The test case in Excel format is more convenient to manage and view, and the test efficiency can be improved. Sikuli's excel test case is directly used to execute test scripts and simplify the process.

【技术实现步骤摘要】
一种基于Sikuli的自动化测试方法
本公开涉及自动化测试领域,具体是一种基于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,optic本文档来自技高网
...

【技术保护点】
1.一种基于Sikuli的自动化测试方法,其特征在于,所述自动化测试方法包括如下步骤:步骤1,编写excel测试用例;步骤2,封装Sikuli用例集脚本;步骤3,通过excel测试用例获取用例元素;步骤4,Sikuli用例集脚本根据用例元素执行测试用例;步骤5,输出对测试用例的测试结果。

【技术特征摘要】
1.一种基于Sikuli的自动化测试方法,其特征在于,所述自动化测试方法包括如下步骤:步骤1,编写excel测试用例;步骤2,封装Sikuli用例集脚本;步骤3,通过excel测试用例获取用例元素;步骤4,Sikuli用例集脚本根据用例元素执行测试用例;步骤5,输出对测试用例的测试结果。2.根据权利要求1所述的一种基于Sikuli的自动化测试方法,其特征在于,在步骤1中,在excel中以固定间距编写测试用例,其中,测试用例的excel输入格式为,第一列的第一行为预期输入的名称,第一列的第二行为预期输入的值;从第二列开始,之后每一列对应一个测试用例,其中,测试用例包括名称和值。3.根据权利要求1所述的一种基于Sikuli的自动化测试方法,其特征在于,在步骤2中,通过SikuliIDE编辑环境封装用例集脚本,每个用例集脚本至少封装一个脚本测试函数,其中,脚本测试函数的传入参数设置为预期输入。4.根据权利要求1所述的一种基于Sikuli的自动化测试方法,其特征在于,在步骤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,测试用...

【专利技术属性】
技术研发人员:梁徽杨燕清江洁郭俊杰
申请(专利权)人:广东睿江云计算股份有限公司
类型:发明
国别省市:广东,44

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

1