软件自动测试脚本辅助修正方法和系统与流程

文档序号:30842388发布日期:2022-07-23 00:57阅读:99来源:国知局
软件自动测试脚本辅助修正方法和系统与流程

1.本技术涉及自动测试及图像识别技术,特别是一种软件自动测试脚本辅助修正方法和系统。


背景技术:

2.自动化测试工具是软件测试中的重要工具。在使用自动化测试工具对软件进行测试的时候,首先需要测试工程师对在自动化测试工具中打开待测软件,然后手动录制测试脚本。而自动化测试工具,则会在实施自动化测试时根据脚本的内容来进行模拟人工操作软件,以达到测试软件错误的目的。
3.但是事实上,即便是资深的测试工程师在录制脚本时,也难免会产生错误,例如重复点击、软件卡顿导致的误操作等,均导致测试工程师可能需要重新录制,或者翻看冗长的测试脚本进行手动修改。


技术实现要素:

4.本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种软件自动测试脚本辅助修正方法和系统,用以自动识别脚本中可能存在的错误操作。
5.一方面,本技术实施例提供了一种软件自动测试脚本辅助修正方法,包括以下步骤:
6.显示待测软件的操作区域和脚本区域,鼠标可以在操作区域和脚本区域之间移动;
7.监听针对所述操作区域的鼠标操作;
8.根据鼠标操作在脚本区域生成脚本语句;
9.监测相邻两次点击操作的点击位置之间的距离是否小于第一阈值,所述点击操作包括双击、单击、拖拽和长按;
10.当所述距离小于第一阈值时,判断两次点击的对象是否为相同的组件,若是,则判定前一个点击操作为异常操作;
11.对被判定为异常操作关联的脚本语句进行标记处理,并在所述脚本区域中显示该标记。
12.在一些实施例中,还包括以下步骤:
13.读取软件界面的组件信息;
14.根据组件信息判断点击操作针对的是否可操作组件,若否,则判定点击操作为异常操作。
15.在一些实施例中,还包括以下步骤:
16.获取点击操作时对应的软件界面截图;
17.根据软件界面截图判断点击操作针对的是否可操作性组件,若否,则判定点击操作为异常操作。
18.在一些实施例中,判断两次点击的对象是否为相同的组件,具体包括:
19.判断两次点击的软件界面截图是否相同的图像,若是,则判定两次点击的对象是相同组件,若否,则判定两次点击的对象不是相同的组件。
20.在一些实施例中,还包括快速回放预览步骤,所述快速预览步骤包括以下子步骤:
21.获取预览指令;
22.根据预览指令获取对应的目标回放操作,所述目标回放操作是指预览指令选定的脚本语句对应的点击操作;
23.读取所述目标回放操作前后设定数量个点击操作对应的软件界面截图和所述目标回放操作对应的软件界面截图,并根据脚本中录制的点击指令在软件界面截图上模拟点击位置,得到回放帧;
24.将多个回放帧按顺序播放。
25.在一些实施例中,所述快速预览步骤还包括以下子步骤:
26.根据当前播放的回放帧,用设定颜色和/或图案标识脚本区域对应的脚本语句。
27.在一些实施例中,所述方法还包括以下步骤:
28.将录制的脚本中将脚本语句与软件界面截图关联;
29.当所述鼠标进入脚本区域时,监听鼠标操作;
30.当鼠标操作选中脚本语句时,显示所述软件界面截图以及对应的点击位置;
31.或者,
32.当鼠标停留在脚本语句的时间超过预设时长时,显示所述软件界面截图以及对应的点击位置。
33.在一些实施例中,包括以下步骤:
34.获取清除指令;
35.删除全部被标记的脚本语句。
36.在一些实施例中,判断两次点击操作之间的间隔时间是否小于第二阈值,当两次点击操作之间的间隔时间小于第二阈值,则判定为异常操作。
37.另一方面,本技术实施例提供了一种软件自动测试脚本辅助修正系统,包括:
38.存储器,用于存储程序;
39.处理器,用于记载所述程序以执行所述的软件自动测试脚本辅助修正方法。
40.本技术实施例通过监听鼠标在操作区域的鼠标操作,同时在脚本区域生成对应的脚本语句,并监测相邻两次点击操作的点击位的距离是否小于一定值,在是的情况下进一步分析两次操作是否在点击同一个组件,这样的操作可能是误操作或者是软件卡顿所造成了,被判定为异常操作的脚本语句会被标记处理,测试人员在发现被标记的语句时,可以通过移动鼠标区域,删除错误操作对应的脚本语句,本方案可以有效精简脚本中的无效点击和重复点击。
附图说明
41.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的
附图。
42.图1是本方案所提供的一种软件自动测试脚本辅助修正方法的流程图;
43.图2是本方案所提供的软件界面示意图;
44.图3是本方案所提供的软件界面的另一种示意图。
具体实施方式
45.为使本技术的目的、技术方案和优点更加清楚,以下将参照本技术实施例中的附图,通过实施方式清楚、完整地描述本技术的技术方案,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.参照图1和图2,本实施例提供了一种软件自动测试脚本辅助修正方法,包括以下步骤:
47.s1、显示待测软件的操作区域和脚本区域,鼠标可以在操作区域和脚本区域之间移动。如图2所示,在本方案中显示了操作区域和脚本区域,其中操作区域实际上是显示待测软件的界面的区域。而脚本区域是实时显示当前录制的脚本内容(即脚本语句的)内容。其中,两个区域的大小可以通过鼠标拖拽来实现区域范围的调整。当然,在整个测试软件的界面上还包括菜单栏。在脚本区域中,录制什么内容就会生成什么语句。
48.s2、监听针对所述操作区域的鼠标操作。
49.本步骤所述的鼠标操作包括鼠标的一切活动,包括移动、点击或者组合。监听该区域的操作目的包括录制脚本的需求,也包括分析误操作的需要。一般而言,录制脚本时常见的误操作包括:软件卡顿造成的重复点击,误触非操作区域是最常见的操作。本方案主要检测这一类错误,并提供便捷的删除语句的操作方式,避免因为这类微小错误导致的重新录制,或者时候需要检查修改脚本,可以增加测试效率。
50.s3、根据鼠标操作在脚本区域生成脚本语句。在本步骤中,会根据鼠标的操作生成脚本语句,脚本语句主要是记录用户点击的画面位置、软件界面截图等,从而生成识别软件界面截图的识别指令并在对应的位置执行对应的操作,这些操作可以是包括鼠标点击操作或者是键盘录入等。
51.s4、监测相邻两次点击操作的点击位置之间的距离是否小于第一阈值,所述点击操作包括双击、单击、拖拽和长按。本方案为了识别主要的操作错误,主要分析点击操作。对于软件卡顿或者操作失误等原因导致的重复点击,可以基于两次点击的距离来判定是否存在误点或者重复点击的操作。因此,当两次操作的点击位置相近的时候,可以分析两次点击的是否属于相同组件。
52.需要说明的是,这里的用户的两次点击是否属于“双击”操作由操作系统判定,在本实施例中“双击”属于一次点击操作。例如,在操作一个拖拽验证码的操作,用户可能在第一次拖拽的时候拖动失败,因此,用户再次执行同样的操作。两次操作的拖拽点非常接近,因此会判定为可疑的操作。此时,需要进一步分析两次操作是否针对同一个组件,因为并不能排除有两个不同的操作组件处于邻近的位置。
53.s5、当所述距离小于第一阈值时,判断两次点击的对象是否为相同的组件,若是,则判定前一个点击操作为异常操作。
54.在本步骤中,可以有多种方式对点击的对象是否为相同的组件进行判断。
55.例如,在一些实施例中,判断两次点击的对象是否为相同的组件,具体包括:
56.判断两次点击的软件界面截图是否相同的图像,若是,则判定两次点击的对象是相同组件,若否,则判定两次点击的对象不是相同的组件。这一方式,主要针对卡顿或者用户没有正确点击到操作组件的热区(可操作性区域)导致的。通常软件设计中为了避免用户误触,会将可操作性的组件按照一定的间隔设计,此时,可以将第一阈值设置成小于这样的间隔。因此,如果前后两个操作对应的截图是相同的画面,说明前一个操作并未触发任何效果。这可能是软件没有响应,也有可能是用户没有点击到组件的热区。当然这一方式虽然精度未必足够,但是在处理时相对简单,不需要复杂的识别。只需要匹配点击前后界面是否发生变化就可以判断是否属于重复点击,这一方式可以避免将按钮位置相同的两个界面识别成用户点击了相同的组件。
57.另一种方式是先判断两个软件界面截图是否为相同的图像,并判断两次点击操作对应的位置是否属于一个组件。这一方式要求图像识别程序可以识别并划分一些常见的组件。
58.还有一种方式是部分软件可以提供输出界面组件的接口,利用该接口获取当前界面的元素组件和对应的位置,通过点击位置可以判定两次点击是否属于相同的组件,这一方式更加准确。
59.s6、对被判定为异常操作关联的脚本语句进行标记处理,并在所述脚本区域中显示该标记。
60.具体地,标记可以用不同颜色来标记代码,也可以通过不同的底色来标记代码。通常,一个截图对应若干个脚本语句,对应同一截图的脚本语句被划分到一个代码块,一个代码块中的所有的脚本语句可基于用户操作一次删除。
61.当然,由于这些可疑的误操作也有可能是测试的一部分,因此,本方案仅对异常操作进行标记并显示,而不是直接对其进行处理,用户可以利用鼠标快速地操作这些脚本语句。
62.本技术实施例通过监听鼠标在操作区域的鼠标操作,同时在脚本区域生成对应的脚本语句,并监测相邻两次点击操作的点击位的距离是否小于一定值,在是的情况下进一步分析两次操作是否在点击同一个组件,这样的操作可能是误操作或者是软件卡顿所造成了,被判定为异常操作的脚本语句会被标记处理,测试人员在发现被标记的语句时,可以通过移动鼠标区域,删除错误操作对应的脚本语句,本方案可以有效精简脚本中的无效点击和重复点击。
63.在一些实施例中,为了进一步分析异常的操作,以帮助测试人员在录制时优化测试脚本,判断两次点击操作之间的间隔时间是否小于第二阈值,当两次点击操作之间的间隔时间小于第二阈值,则判定为异常操作。
64.一般正常测试人员实施测试的时候,会边看测试用例边进行脚本录制,因此,操作之间一般有一定的时间间隔。因此,较短时间的多次操作,往往是异常操作。可以是将时间间隔小于第二阈值的两次操作均判定成异常操作,或者是将前面的或者后面的一个操作判定成异常操作,予以提醒。而测试人员在认定自己是正常操作的时候可以不予理会。
65.在一些实施例中,为了检测点击无用区域的操作,还包括以下步骤:
66.读取软件界面的组件信息。
67.根据组件信息判断点击操作针对的是否可操作组件,若否,则判定点击操作为异常操作。
68.具体地,在该实施例中需要由待测软件提供接口,以便测试软件可以读取当前界面的组件信息。这时候只需要根据组件所在的位置和点击操作针对的位置确认两者是否重合,就可以判断测试人员是否在点击没有操作意义的位置。
69.在一些实施例中,为了检测点击无用区域的操作,本实施例提供另一种可行的方案,还包括以下步骤:
70.获取点击操作时对应的软件界面截图。
71.根据软件界面截图判断点击操作针对的是否可操作性组件,若否,则判定点击操作为异常操作。
72.具体地,在该方案中,通过软件界面的截图,识别出组件的位置,如果用户点击的明显不属于这些识别出来的操作组件(即具有可操作性的组件,如按钮、输入框等),那么可以说明用户在操作无意义的区域。无论用户是故意操作还是无意的操作,均可以为用户识别,并提供相关的提示,以便用户编辑脚本。
73.在一些实施例中,如图3所示,用户可能不经意进行了误操作,因此在误操作之后可能需要基于可视化的方式才能确定如何调整脚本语句。因此在该实施例中,还包括快速回放预览步骤,所述快速预览步骤包括以下子步骤:
74.获取预览指令。用户通过工具栏等由软件提供的按钮触发预览。
75.根据预览指令获取对应的目标回放操作,所述目标回放操作是指预览指令选定的脚本语句对应的点击操作。在本实施例中,不同于正常的脚本回放,脚本回放本质上是针对软件的操作,因此需要从头开始对软件进行操作,实际上是对待测软件的操作。而本方案的回放操作是指,用户选中的某个可能有误的操作,将相关操作对应的截图加上用户当时点击的位置按照一定的方式回放给用户观察。以便用户确定代码对应的操作。
76.读取所述目标回放操作前后设定数量个点击操作对应的软件界面截图和所述目标回放操作对应的软件界面截图,并根据脚本中录制的点击指令在软件界面截图上模拟点击位置,得到回放帧。回放帧可以看作是脚本语句对应的软件界面截图加上对应的操作位置标识的一个图片。前后多个操作的帧按照顺序播放,就可以还原测试软件所录制的内容。
77.将多个回放帧按顺序播放。并且,在播放回放帧时,对应标出回放帧对应的脚本语句。即根据当前播放的回放帧,用设定颜色和/或图案标识脚本区域对应的脚本语句。
78.用户可以清楚录制的上下文自己进行了什么操作,每个操作对应什么代码。本实施例的效果在于,用户可以随时利用回放帧去检查自己过往的操作,可以在任意位置选择回放,而不需要中止测试。通过鼠标的挪动,可以直接操作脚本区域,这样用户可以非常方便地确认和修改脚本。
79.在一些实施例中,为了方便用户浏览,用户也可以不选择回放的方式,而是直接浏览脚本语句对应的回放帧,这样也可以快速确认自己的操作,所述方法还包括以下步骤:
80.将录制的脚本中将脚本语句与软件界面截图关联。
81.当所述鼠标进入脚本区域时,监听鼠标操作。
82.当鼠标操作选中脚本语句时,显示所述软件界面截图以及对应的点击位置。
83.或者,
84.当鼠标停留在脚本语句的时间超过预设时长时,显示所述软件界面截图以及对应的点击位置。
85.如图3所示,用户可以点击某些代码,这些代码在一侧会弹出回放帧。实现的ui也可以沿袭前面的进行多个回放帧回放的ui方案。
86.在一些实施例中,用户可以在确定可疑操作之后直接一键清除,包括以下步骤:
87.获取清除指令。
88.删除全部被标记的脚本语句。
89.另一方面,本技术实施例提供了一种软件自动测试脚本辅助修正系统,包括:
90.存储器,用于存储程序;
91.处理器,用于记载所述程序以执行所述的软件自动测试脚本辅助修正方法。
92.注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1