CN113127348B - 软件的自动测试脚本录制方法、系统和存储介质 - Google Patents
软件的自动测试脚本录制方法、系统和存储介质 Download PDFInfo
- Publication number
- CN113127348B CN113127348B CN202110418547.3A CN202110418547A CN113127348B CN 113127348 B CN113127348 B CN 113127348B CN 202110418547 A CN202110418547 A CN 202110418547A CN 113127348 B CN113127348 B CN 113127348B
- Authority
- CN
- China
- Prior art keywords
- screenshot
- instruction
- virtual keyboard
- software
- recording
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Probability & Statistics with Applications (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种软件的自动测试脚本录制方法、系统和存储介质,涉及图像识别技术在自动测试中的应用,本申请通过判断虚拟键盘是否存在以及操作指令是否点击虚拟键盘来确定是否需要识别键盘键值,当操作指令点击虚拟键盘时,识别出具体的键值,并生成用于调用识别键值对应按钮的按钮识别函数,通过这样的方式,使得乱序键盘的测试不受到键位变化的影响,此外,本方案可以识别并生成对应的指令,用户可以一次录制完毕,可以不需要时候手动编辑输入账号/密码的函数。
Description
技术领域
本申请涉及图像识别技术和测试技术,特别是一种软件的自动测试脚本录制方法、系统和存储介质。
背景技术
在互联网得到空前发展的情况下,传统的金融业务大多数已经转移到线上,其中,移动互联网是金融领域的重要竞争领域之一。在金融相关的APP设计中,考虑到支付的安全性,通常APP会采用自研的输入键盘。这些键盘与传统的输入键盘不同,其在每次调用时会呈现不同的按钮排序。
传统的APP测试方案,通过录制剧本来完成自动测试,其工作原理一般是识别到画面,然后执行点击录制位置的方案,但是由于每次键盘按钮位置均存在差异,即便可以通过调低识别阈值的方式来避免画面识别错误,也无法解决点击位置错误的问题,导致传统的自动测试方案无法实施。
为此,测试人员需要另外改写脚本,在脚本中手动键入键值。
发明内容
本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种软件的自动测试脚本录制方法、系统和存储介质。
一方面,本申请实施例提供了:
一种软件的自动测试脚本录制方法,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
S1、录制指令组;
S2、将所述指令组写入所述自动测试脚本中,返回步骤S1或者录制结束;
其中,所述步骤S1包括:
S11、检测针对所述软件的操作指令;
S12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第一截图,根据所述第一截图生成识别所述第一截图的第一指令;
S13、检测所述第一截图中是否存在虚拟键盘,若是,则执行步骤S14,若否,则执行步骤S16;
S14、检测所述操作指令是否点击所述虚拟键盘所在的区域,若是,则执行步骤S15,若否,则执行步骤S16;
S15、识别所述操作指令所点击的按钮对应的第一键值,生成调用按钮识别函数的第二指令,然后将所述第一键值作为所述按钮识别函数的变量,根据所述第二指令完成一个指令组的录制,其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置;
S16、生成用于点击所述操作指令所点击的位置的第三指令,根据所述第一指令和所述第三指令完成一个指令组的录制。
本申请实施例在录制指令组时,通过判断虚拟键盘是否存在以及操作指令是否点击虚拟键盘来确定是否需要识别键盘键值,当操作指令点击虚拟键盘时,识别出具体的键值,并生成用于调用识别键值对应按钮的按钮识别函数,通过这样的方式,使得乱序键盘的测试不受到键位变化的影响,此外,本方案可以识别并生成对应的指令,用户可以一次录制完毕,可以不需要事后手动编辑输入账号/密码的函数。
在一些实施例中,在所述步骤S13中,通过以下方式检测所述第一截图是否存在虚拟键盘:
检测所述操作指令的点击位置是否位于所述第一截图的预设区域中,若是,则调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘;若否,则判定所述第一截图中不存在虚拟键盘。
基于上述实施例可知,基于键盘的设置习惯,通过操作指令点击的位置作为判断依据,在大多数情况下(非输入操作下),可以免去调用图像识别功能,减少了录制时的运算量。
在一些实施例中,所述调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘,具体为:
将所述第一截图输入到第一图像识别模型中,得到所述第一截图中存在所述虚拟键盘的概率,当所述概率大于第一阈值时,判定所述第一截图中存在虚拟键盘;当所述概率小于等于第一阈值时,判定所述第一截图中不存在虚拟键盘。
基于上述实施例可知,通过第一图像识别模型可以对截图中的虚拟键盘进行识别,当第一图像识别模型得到较高的概率确认截图中存在虚拟键盘时,才判定虚拟键盘的存在。
在一些实施例中,在步骤S15中,所述识别所述操作指令所点击的按钮对应的第一键值,包括:
确定第一截图中所述虚拟键盘的区域;
对所述虚拟键盘所在的区域进行二值化处理,得到所述虚拟键盘所在区域的多个连通域;
将所述操作指令点击的位置对应的连通域所在区域从所述第一截图中截取出来得到第一子图;
将第一子图输入到第二图像识别模型中,并根据所述第二图像识别模型输出所述第一键值。
基于上述实施例可知,通过对截图中虚拟键盘所在的区域进行二值化处理,利用了键盘的特点,可以快速得到按钮对应的连通域,然后将操作指令点击的连通域对应的截图区域,即第一子图送入到第二图像识别模型中进行识别,得到操作指令点击的按钮的键值。
在一些实施例中,所述步骤S15还包括键值自检步骤:
截取与所述第一截图相隔预设帧数的第二截图;
将第二截图与第一截图相减得到第一图像;
从所述第一图像中截取第一截图和第二截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外;
将截取所述差异区域输入到所述第二图像识别模型或者第三图像识别模型,得到第二键值;
当所述第一键值和第二键值不相同时,产生提示信息。
在进行脚本录制时,如果第二图像识别模型受到干扰出错,例如受到按钮颜色或者花纹的影响而出错,测试人员需要在最后阅读整个脚本才能发现问题,消耗的时间较长。上述实施例通过在与第一截图相隔预设帧数的第二截图,并将两者作差,将差异区域作为图像识别的对象,用以校对键值。本实施例实际上利用了软件在输入账号或者密码时的特点,每输入一个键值,画面之差是多出来的字符,因此将两个截图作差,可以差异区域便是新增字母的图形,这样的方式还可以将背景花纹颜色等抵消,提升识别的准确性。通过这样的方式,可以校验键值是否正确,如果两次测试键值不同时,通过提示信息提醒用户,可以让用户快速地确认脚本需要修改的位置。
在一些实施例中,所述提示信息被写入所述自动测试脚本中,用以提示对应的指令的键值自检不通过。
通过将提示信息写入测试脚本中,用户可以快速定位出需要修改的指令位置。
另一方面,本申请实施例提供了:一种软件自动测试脚本录制方法,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
A1、录制指令组;
A2、将所述指令组写入所述自动测试脚本中,返回步骤A1或者录制结束;
所述步骤A1包括以下步骤:
A11、检测针对所述软件的操作指令;
A12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第三截图,根据所述第三截图生成识别所述第三截图的第四指令;
A13、检测所述第三截图中是否存在虚拟键盘,若是,则执行步骤A14,若否,则执行步骤A15;
A14、截取与所述第三截图相隔预设帧数的第四截图;将第四截图与第三截图相减得到第二图像;从所述第二图像中截取第三截图和第四截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外;从截取的所述差异区域中识别第三键值,生成调用按钮识别函数的第五指令,然后将所述第三键值作为所述按钮识别函数的变量,根据所述第五指令完成一个指令组的录制;其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置;
A15、生成用于点击所述操作指令所点击的位置的第六指令,根据所述第四指令和所述第六指令完成一个指令组的录制。
通过上述实施例,通过截取与第三截图相隔预设帧数的第四截图,然后将两个截图相减得到第二图像,从第二图像中截取差异区域,来识别输入的键值,这样的方式无需针对键盘进行图像识别,不需要对键盘进行分割,实施方案相对简化,同时,相对于识别键盘的方案,其受到底纹的影响比较小。
另一方面,本申请实施例提供了:一种软件自动测试脚本录制系统,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,所述系统包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行软件自动测试脚本录制方法。
另一方面,本申请实施例提供了:一种存储介质,其存储有程序,所述程序被处理器执行时实现软件自动测试脚本录制方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种软件的自动测试脚本录制方法的流程图;
图2是本申请实施例提供的另一种软件的自动测试脚本录制方法的流程图;
图3是乱序键盘的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,以下将参照本申请实施例中的附图,通过实施方式清楚、完整地描述本申请的技术方案,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本发明的描述中,若干的含义是一个以上,多个的含义是两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。
本发明的描述中,除非另有明确的限定,设置等词语应做广义理解,所属技术领域技术人员可以结合技术方案的具体内容合理确定上述词语在本发明中的具体含义。
本发明的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
参照图3,在本实施例中是指的乱序键盘是一种虚拟键盘,用户在每次调用键盘的时候,键盘中按钮的位置均不相同。如图3所示,第一次调用和第二次调用时,键盘的排序不相同。这一特定对传统的自动测试方案造成困难,用户不得不手动撰写剧本,修改函数键值。
可以理解的是本申请涉及到人工智能技术中的图像识别技术,具体地,本方案是将图像识别技术应用在自动测试程序之中。
参照图1,一种软件的自动测试脚本录制方法,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
S1、录制指令组;
S2、将所述指令组写入所述自动测试脚本中,返回步骤S1或者录制结束;
本实施例所指的指令组,是指由多个指令组合在一起具有一定逻辑关系的指令。例如,可以将一个图像识别指令和一个点击指令作为一个指令组,在该指令组中,图像识别指令为点击指令的执行条件,当图像识别指令识别到特定的图像时,执行该点击指令,否则不执行。
在录制剧本的过程中,用户的操作指令(点击等操作)的数量可能会有很多个,因此剧本中会写入很多指令组。其中,本实施例中的录制可以理解为产生和/或保存指令组,例如产生指令后临时存储在缓存区域,再依次写入脚本,写入是指将指令写入特定的文件之中的动作。
如图1所示,其中,所述步骤S1包括:
S11、检测针对所述软件的操作指令。
可以通过监听触摸屏或者鼠标的操作指令来实施本步骤。
S12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第一截图,根据所述第一截图生成识别所述第一截图的第一指令。
在本步骤中,每当检测到操作指令时,都会对操作指令发生时的画面进行截图,然后生成识别第一截图的第一指令,其中,通过将第一截图保存的位置作为变量,写入到图像识别函数中,并生成调用该图像识别函数的指令,即可得到第一指令。其中,该图像识别函数用于比对变量中图像与当前软件的图像是否一致。
S13、检测所述第一截图中是否存在虚拟键盘,若是,则执行步骤S14,若否,则执行步骤S16。判断是否存在虚拟键盘的方式可以通过图像识别的方式,判断是否存在键盘,也可以利用键盘的设置习惯,通过操作指令点击的位置判断当前用户是否有可能在点击键盘,如果没有,则判定没有虚拟键盘的存在。例如,键盘通常位于界面的下半部分,针对上半部分的点击一般不是针对键盘的点击,因此,可以断定用户并不是在操作键盘。
S14、检测所述操作指令是否点击所述虚拟键盘所在的区域,若是,则执行步骤S15,若否,则执行步骤S16。
在检测到虚拟键盘的情况下,可以进一步判断操作指令是否在点击虚拟键盘,如果是,则需要进一步检测操作指令所点击的按钮。
S15、识别所述操作指令所点击的按钮对应的第一键值,生成调用按钮识别函数的第二指令,然后将所述第一键值作为所述按钮识别函数的变量,根据所述第二指令完成一个指令组的录制,其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置。
在本步骤中,可以通过图像识别的手段识别操作指令所点击的按钮,在得到操作指令点击的按钮的第一键值的时候,生成用于调用按钮识别函数的指令,并以第一键值作为按钮识别函数的变量。当函数被调用的时候,从软件的画面中识别出对应的按钮并执行点击操作。
S16、生成用于点击所述操作指令所点击的位置的第三指令,根据所述第一指令和所述第三指令完成一个指令组的录制。
本申请实施例在录制指令组时,通过判断虚拟键盘是否存在以及操作指令是否点击虚拟键盘来确定是否需要识别键盘键值,当操作指令点击虚拟键盘时,识别出具体的键值,并生成用于调用识别键值对应按钮的按钮识别函数,通过这样的方式,使得乱序键盘的测试不受到键位变化的影响,此外,本方案可以识别并生成对应的指令,用户可以一次录制完毕,可以不需要时候手动编辑输入账号/密码的函数。
在一些实施例中,在所述步骤S13中,通过以下方式检测所述第一截图是否存在虚拟键盘:
检测所述操作指令的点击位置是否位于所述第一截图的预设区域中,若是,则调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘;若否,则判定所述第一截图中不存在虚拟键盘。
基于上述实施例可知,基于键盘的设置习惯,通过操作指令点击的位置作为判断依据,在大多数情况下(非输入操作下),可以免去调用图像识别功能,大大减少了连续录制时的运算量。
在一些实施例中,所述调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘,具体为:
将所述第一截图输入到第一图像识别模型中,得到所述第一截图中存在所述虚拟键盘的概率,当所述概率大于第一阈值时,判定所述第一截图中存在虚拟键盘;当所述概率小于等于第一阈值时,判定所述第一截图中不存在虚拟键盘。
基于上述实施例可知,通过第一图像识别模型可以对截图中的虚拟键盘进行识别,当第一图像识别模型得到较高的概率确认截图中存在虚拟键盘时,才判定虚拟键盘的存在。
在一些实施例中,在步骤S15中,所述识别所述操作指令所点击的按钮对应的第一键值,包括:
确定第一截图中所述虚拟键盘的区域,可以在通过第一图像识别模型识别虚拟键盘的时候输出虚拟键盘所在的位置。
对所述虚拟键盘所在的区域进行二值化处理,得到所述虚拟键盘所在区域的多个连通域;由于键盘的按钮和底色一般颜色分明,因此可以通过二值分割的方式分割出按钮所在的连通域,连通域所在的位置就是按钮所在的位置。
将所述操作指令点击的位置对应的连通域所在区域从所述第一截图中截取出来得到第一子图。根据操作指令点击的位置对应的连通域,通常这一连通域是矩形或者圆角矩形,因此,实际上可以选择操作指令点击的位置对应的矩形/圆角矩形连通域。
将第一子图输入到第二图像识别模型中,并根据所述第二图像识别模型输出所述第一键值。由于截取的按钮图像(第一子图)和识别截图中是否存在键盘是两个任务,因此采用不同的卷积神经网络模型实现。
需要理解的是,上述的图像识别模型都是经过大量的训练数据进行训练得到的,具有一定的准确率。
基于上述实施例可知,通过对截图中虚拟键盘所在的区域进行二值化处理,利用了键盘的特点,可以快速得到按钮对应的连通域,然后将操作指令点击的连通域对应的截图区域,即第一子图送入到第二图像识别模型中进行识别,得到操作指令点击的按钮的键值。
然而,与传统的剧本录制不同,由于存在识别的过程,模型具有一定的差错率。在识别错误后,需要用户手动检测脚本是否正确,在一些实施例中,所述步骤S15还包括键值自检步骤:
截取与所述第一截图相隔预设帧数的第二截图。通常可以根据软件的反应时间进行设置,例如可以根据输入一个字符到字符显示的时间,以及字符输入后变成屏蔽符号“*”的时间设置。可以理解的是,本方案适用于具有上述特点的输入场景,即字符输入后会在至少一段时间内显示字符的输入场景。在本步骤中,第一截图点击发生时的截图,此时新输入的字符还没出现。而第二截图是在第一截图的预设帧数之后,因此,此时新输入的字符已经出现。在非键盘区域,两个截图的差异在于第二截图多出了新输入的字符。
将第二截图与第一截图相减得到第一图像。两个截图相减,得到的第一图像中新输入字符对应的像素点的取值与图像中的其他像素点的取值不同(当然会有一些像素值以负数标识)。当然,相减之后通过反色操作或者绝对值操作,也可以得到正常的图案,例如白底黑字的图像。另外,对于图像识别模型而言,在进行充分的抗噪训练的情况下,像素点的取值正反(或者具体的颜色值)并不影响模型正确识别字符。
从所述第一图像中截取第一截图和第二截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外。其中,由于按钮在被触发后按钮样式可能会短暂变化。本实施例的思路是通过不同位置的图像来验证之前检测的键值是否正确,因此选择的区域位于键盘所在区域外,即输入框区域。所述差异区域为包围全部像素值为非零值的像素点的区域(优选地是最小区域)。需要理解的是,该区域所包围的像素值为非零值的像素点均位于虚拟键盘所在的区域外。
将截取所述差异区域输入到所述第二图像识别模型或者第三图像识别模型,得到第二键值。在本步骤中,可以将差异区域按照设定的大小进行截取,然后输入到相同的图像识别模型或者另一个图像识别模型中进行识别,这样就可以得到第二键值。
当所述第一键值和第二键值不相同时,产生提示信息。如果两个键值不同,说明其中一个识别可能有误。通过产生提示信息时,可以通过日志报错或者在脚本上自动标注。
在进行脚本录制时,如果第二图像识别模型受到干扰出错,例如受到按钮颜色或者花纹的影响而出错,测试人员需要在最后阅读整个脚本才能发现问题,消耗的时间较长。上述实施例通过在与第一截图相隔预设帧数的第二截图,并将两者作差,将差异区域作为图像识别的对象,用以校对键值。本实施例实际上利用了软件在输入账号或者密码时的特点,每输入一个键值,画面之差是多出来的字符,因此将两个截图作差,可以差异区域便是字母的图形,这样的方式还可以将背景花纹颜色等抵消,提升识别的准确性。通过这样的方式,可以校验键值是否正确,如果两次测试键值不同时,通过提示信息提醒用户,可以让用户快速地确认脚本需要修改的位置。
在一些实施例中,所述提示信息被写入所述自动测试脚本中,用以提示对应的指令的键值自检不通过。在本实施例中,还包括向用户显示录制完成的自动测试剧本,对键值自检不通过的指令进行颜色标注。
通过将提示信息写入测试脚本中,用户可以快速定位出需要修改的指令位置。
参照图2,一种软件自动测试脚本录制方法,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
A1、录制指令组;与步骤S1类似。
A2、将所述指令组写入所述自动测试脚本中,返回步骤A1或者录制结束;与步骤S2类似。
所述步骤A1包括以下步骤:
A11、检测针对所述软件的操作指令;本步骤与步骤S11类似。
A12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第三截图,根据所述第三截图生成识别所述第三截图的第四指令;本步骤与步骤S12类似。
A13、检测所述第三截图中是否存在虚拟键盘,若是,则执行步骤A14,若否,则执行步骤A15;本步骤与步骤S13类似。
A14、截取与所述第三截图相隔预设帧数的第四截图;将第四截图与第三截图相减得到第二图像;从所述第二图像中截取第三截图和第四截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外;从截取的所述差异区域中识别第三键值,生成调用按钮识别函数的第五指令,然后将所述第三键值作为所述按钮识别函数的变量,根据所述第五指令完成一个指令组的录制;其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置。
本实施例通过将与第三截图相隔预设帧数的第四截图,以及操作指令点击时的第三截图进行相减,得到第二图像,通过第二图像的差异区域识别出用户实际上输入的键值,这一方法相对于不键盘进行分割识别的方式相比可以达到近似的效果,亦可以解决乱序键盘存在的问题。
A15、生成用于点击所述操作指令所点击的位置的第六指令,根据所述第四指令和所述第六指令完成一个指令组的录制。
通过上述实施例,通过截取与第三截图相隔预设帧数的第四截图,然后将两个截图相减得到第二图像,从第二图像中截取差异区域,来识别输入的键值,这样的方式无需针对键盘进行图像识别,不需要对键盘进行分割,实施方案相对简化,同时,相对于识别键盘的方案,其受到底纹的影响比较小。当然,可以在步骤A14中加入执行条件,即检测到操作指令点击的位置位于虚拟键盘所在区域中时才执行步骤A14。
可以理解的是,类似的步骤在本实施例中也可以运用图1对应的实施例的实施方式实现。
另一方面,本申请实施例提供了:一种软件自动测试脚本录制系统,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,所述系统包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行软件自动测试脚本录制方法。
另一方面,本申请实施例提供了:一种存储介质,其存储有程序,所述程序被处理器执行时实现软件自动测试脚本录制方法。
注意,上述仅为本申请的较佳实施例及所运用技术原理。本领域技术人员会理解,本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由所附的权利要求范围决定。
Claims (9)
1.一种软件的自动测试脚本录制方法,其特征在于:所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
S1、录制指令组;
S2、将所述指令组写入所述自动测试脚本中,返回步骤S1或者录制结束;
其中,所述步骤S1包括:
S11、检测针对所述软件的操作指令;
S12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第一截图,根据所述第一截图生成用于识别所述第一截图的第一指令;
S13、检测所述第一截图中是否存在虚拟键盘,若是,则执行步骤S14,若否,则执行步骤S16;
S14、检测所述操作指令是否点击所述虚拟键盘所在的区域,若是,则执行步骤S15,若否,则执行步骤S16;
S15、识别所述操作指令所点击的按钮对应的第一键值,生成调用按钮识别函数的第二指令,然后将所述第一键值作为所述按钮识别函数的变量,根据所述第二指令完成一个指令组的录制,其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置;
S16、生成用于点击所述操作指令所点击的位置的第三指令,根据所述第一指令和所述第三指令完成一个指令组的录制;
在步骤S15中,所述识别所述操作指令所点击的按钮对应的第一键值,包括:
确定第一截图中所述虚拟键盘的区域;
对所述虚拟键盘所在的区域进行二值化处理,得到所述虚拟键盘所在区域的多个连通域;
将所述操作指令点击的位置对应的连通域所在区域从所述第一截图中截取出来得到第一子图;
将第一子图输入到第二图像识别模型中,并根据所述第二图像识别模型输出所述第一键值。
2.根据权利要求1所述的软件的自动测试脚本录制方法,其特征在于,在步骤S13中,通过以下方式检测所述第一截图是否存在虚拟键盘:
检测所述操作指令的点击位置是否位于所述第一截图的预设区域中,若是,则调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘;若否,则判定所述第一截图中不存在虚拟键盘。
3.根据权利要求2所述的软件的自动测试脚本录制方法,其特征在于,所述调用第一图像识别模型识别所述第一截图中是否存在虚拟键盘,具体为:
将所述第一截图输入到第一图像识别模型中,得到所述第一截图中存在所述虚拟键盘的概率,当所述概率大于第一阈值时,判定所述第一截图中存在虚拟键盘;当所述概率小于等于第一阈值时,判定所述第一截图中不存在虚拟键盘。
4.根据权利要求1所述的软件的自动测试脚本录制方法,其特征在于,所述步骤S15还包括键值自检步骤:
截取与所述第一截图相隔预设帧数的第二截图;
将第二截图与第一截图相减得到第一图像;
从所述第一图像中截取第一截图和第二截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外;
将截取所述差异区域输入到所述第二图像识别模型或者第三图像识别模型,得到第二键值;
当所述第一键值和第二键值不相同时,产生提示信息。
5.根据权利要求4所述的软件的自动测试脚本录制方法,其特征在于,所述差异区域为包围全部像素值为非零值的像素点的区域。
6.根据权利要求4所述的软件的自动测试脚本录制方法,其特征在于,所述提示信息被写入所述自动测试脚本中,用以提示对应的指令的键值自检不通过。
7.一种软件的自动测试脚本录制方法,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述方法包括以下步骤:
A1、录制指令组;
A2、将所述指令组写入所述自动测试脚本中,返回步骤A1或者录制结束;
所述步骤A1包括以下步骤:
A11、检测针对所述软件的操作指令;
A12、当检测到所述操作指令时,对所述软件的画面进行截图,得到第三截图,根据所述第三截图生成识别所述第三截图的第四指令;
A13、检测所述第三截图中是否存在虚拟键盘,若是,则执行步骤A14,若否,则执行步骤A15;
A14、截取与所述第三截图相隔预设帧数的第四截图;将第四截图与第三截图相减得到第二图像;从所述第二图像中截取第三截图和第四截图的差异区域,所述差异区域位于所述虚拟键盘所在的区域外;从截取的所述差异区域中识别第三键值,生成调用按钮识别函数的第五指令,然后将所述第三键值作为所述按钮识别函数的变量,根据所述第五指令完成一个指令组的录制;其中,所述按钮识别函数被执行时,用于识别和点击所述变量对应的按钮在所述软件中画面的位置;
A15、生成用于点击所述操作指令所点击的位置的第六指令,根据所述第四指令和所述第六指令完成一个指令组的录制。
8.一种软件的自动测试脚本录制系统,所述软件包括专用虚拟键盘,所述专用虚拟键盘在被调用时,所述虚拟键盘的至少部分按钮随机排布,其特征在于,所述系统包括:
存储器,用于存储程序;
处理器,用于加载所述程序以执行如权利要求1-7任一项所述的方法。
9.一种存储介质,其存储有程序,其特征在于,所述程序被处理器执行时实现如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110418547.3A CN113127348B (zh) | 2021-04-19 | 2021-04-19 | 软件的自动测试脚本录制方法、系统和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110418547.3A CN113127348B (zh) | 2021-04-19 | 2021-04-19 | 软件的自动测试脚本录制方法、系统和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113127348A CN113127348A (zh) | 2021-07-16 |
CN113127348B true CN113127348B (zh) | 2021-10-15 |
Family
ID=76777690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110418547.3A Active CN113127348B (zh) | 2021-04-19 | 2021-04-19 | 软件的自动测试脚本录制方法、系统和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113127348B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241466A (zh) * | 2007-02-08 | 2008-08-13 | 深圳迈瑞生物医疗电子股份有限公司 | 一种嵌入式软件的测试方法和系统 |
CN101957793A (zh) * | 2010-09-03 | 2011-01-26 | 中国科学院软件研究所 | 一种面向Android及其衍生系统的软件操作录制回放方法 |
CN102419732A (zh) * | 2011-12-27 | 2012-04-18 | Tcl集团股份有限公司 | 基于android平台的自动化测试方法及测试工具 |
CN104216823A (zh) * | 2013-06-03 | 2014-12-17 | 联想(北京)有限公司 | 一种自动化测试方法及主控装置 |
CN108664364A (zh) * | 2017-03-31 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种终端测试方法及装置 |
CN109033772A (zh) * | 2018-08-09 | 2018-12-18 | 北京云测信息技术有限公司 | 一种验证信息的输入方法及装置 |
CN110275834A (zh) * | 2019-06-25 | 2019-09-24 | 中国工商银行股份有限公司 | 用户界面自动化测试系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201539247A (zh) * | 2014-04-09 | 2015-10-16 | hong-jian Zhou | 密碼輸入與確認方法及其系統 |
US20170277614A1 (en) * | 2016-03-25 | 2017-09-28 | Adlink Technology Inc. | Intelligent test robot system |
CN109189682B (zh) * | 2018-08-27 | 2022-03-22 | 北京云测信息技术有限公司 | 一种脚本录制方法和装置 |
AU2018448950A1 (en) * | 2018-11-09 | 2021-06-24 | Citrix Systems, Inc. | Automated keyboard mapping for virtual desktops |
CN111124567B (zh) * | 2019-12-02 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 目标应用的操作录制方法和装置 |
-
2021
- 2021-04-19 CN CN202110418547.3A patent/CN113127348B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101241466A (zh) * | 2007-02-08 | 2008-08-13 | 深圳迈瑞生物医疗电子股份有限公司 | 一种嵌入式软件的测试方法和系统 |
CN101957793A (zh) * | 2010-09-03 | 2011-01-26 | 中国科学院软件研究所 | 一种面向Android及其衍生系统的软件操作录制回放方法 |
CN102419732A (zh) * | 2011-12-27 | 2012-04-18 | Tcl集团股份有限公司 | 基于android平台的自动化测试方法及测试工具 |
CN104216823A (zh) * | 2013-06-03 | 2014-12-17 | 联想(北京)有限公司 | 一种自动化测试方法及主控装置 |
CN108664364A (zh) * | 2017-03-31 | 2018-10-16 | 腾讯科技(深圳)有限公司 | 一种终端测试方法及装置 |
CN109033772A (zh) * | 2018-08-09 | 2018-12-18 | 北京云测信息技术有限公司 | 一种验证信息的输入方法及装置 |
CN110275834A (zh) * | 2019-06-25 | 2019-09-24 | 中国工商银行股份有限公司 | 用户界面自动化测试系统及方法 |
Non-Patent Citations (2)
Title |
---|
Medusa Labs Test Tools Suite;VIAVI;《www.viavisolutions.com》;20200830;全文 * |
移动金融类 APP 自动化测试平台技术揭秘;张伟龙;《https://www.infoq.cn/article/feg9vpseid0dlc9wkesb》;20201027;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113127348A (zh) | 2021-07-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11604663B2 (en) | Detection of user interface controls via invariance guided sub-control learning | |
US20110214107A1 (en) | Method and system for testing graphical user interfaces | |
CN109033772B (zh) | 一种验证信息的输入方法及装置 | |
CN104391797A (zh) | Gui控件的识别方法和装置 | |
US9298598B2 (en) | Automated visual testing | |
US10866883B2 (en) | Detection of graphical user interface element of application undergoing functional testing | |
US11599451B2 (en) | Visible elements-based application testing | |
US20180039559A1 (en) | Method and apparatus for creating reference images for an automated test of software with a graphical user interface | |
WO2021010390A1 (ja) | 自動判別処理装置、自動判別処理方法、検査システム、プログラム、および記録媒体 | |
CN111931731A (zh) | 判题方法、装置、电子设备及存储介质 | |
CN112069068A (zh) | 自动化测试数据处理方法、装置、设备及可读存储介质 | |
CN112559341A (zh) | 一种画面测试方法、装置、设备及存储介质 | |
Sun et al. | Ui components recognition system based on image understanding | |
CN113127348B (zh) | 软件的自动测试脚本录制方法、系统和存储介质 | |
CN111026644B (zh) | 操作结果的标注方法、装置、存储介质和电子设备 | |
CN114116474A (zh) | 一种软件校验方法、装置、电子设备及存储介质 | |
CN112612469A (zh) | 一种界面元素的处理方法、装置和电子设备 | |
CN113805861A (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 | |
CN114860604B (zh) | 自动识别动态验证码的自动测试方法、系统和存储介质 | |
CN113012189A (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
Bachtiar et al. | Web-based application development for false images detection for multi images through demosaicing detection | |
CN114780437B (zh) | 软件自动测试脚本辅助修正方法和系统 | |
CN112860544B (zh) | 一种代码检测方法、装置、设备和计算机可读存储介质 | |
KR102392394B1 (ko) | 함수 요약 정보를 생성하는 보안 취약점 분석 방법 및 이를 포함하는 전자 장치 | |
CN110187658B (zh) | 一种芯片处理方法、装置、芯片及电梯外呼板 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |