一种非标准控件自动化测试方法和装置与流程

文档序号:11638349阅读:264来源:国知局
一种非标准控件自动化测试方法和装置与流程
本发明涉及计算机领域,特别涉及一种非标准控件自动化测试方法和装置。

背景技术:
UI(UserInterface,用户界面)自动化测试的对象主要包括基于GUI(GraphicalUserInterface,图形用户接口)的控件,例如按钮、文本框和复选框等。控件分为标准控件和非标准控件。标准控件由操作系统的API(ApplicationProgrammingInterface,应用程序编程接口)提供;非标准控件则由各应用程序供应商自行绘制。目前,大部分UI自动化测试工具只支持测试标准控件,而无法测试非标准控件。这是因为这些UI自动化测试工具是通过API实现的,只能识别API提供的标准控件。为了对非标准控件进行测试,现有测试方式采用虚拟对象来定位非标准控件。其中,该虚拟对象为预先设置的需测试非标准控件的虚拟对象。具体地,现有测试方式包括,首先,捕捉需测试非标准控件所在界面的区域来设置虚拟对象,并相应设置虚拟对象的停靠及尺寸类型等信息;其次,根据虚拟对象信息、屏幕坐标信息和界面坐标,动态计算虚拟对象在界面中的坐标;然后,根据该坐标对虚拟对象进行识别并操作;最后,查看执行结果,验证是否与预期结果一致。在实现本发明的过程中,发明人发现现有技术至少存在以下问题:现有技术需要动态计算虚拟对象在界面中的坐标,当需测试的非标准控件数量比较多时,需设置和维护的虚拟对象数量相应增加,动态计算坐标的工作量也随之变大,将增加自动化测试的负担,造成资源的浪费。

技术实现要素:
为了节省资源,并对非标准控件进行UI自动化测试,本发明实施例提供了一种非标准控件自动化测试方法和装置。所述技术方案如下:一种非标准控件自动化测试方法,所述方法包括:预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件。其中,所述根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置,包括:启动所述待测软件,使所述当前屏幕显示所述待测软件的UI;获取所述当前屏幕中显示的存在所述预先获取的所述待测非标准控件的GUI图像的UI;根据所述UI,计算出所述GUI图像在所述当前屏幕的实际显示位置。其中,所述获取所述当前屏幕中显示的存在所述预先获取的所述待测非标准控件的GUI图像的UI之前,还包括:实时读取所述当前屏幕显示的所述待测软件的UI;根据所述GUI图像,搜索所述待测软件的UI中是否存在与所述GUI图像相同的图像;若不存在,则继续读取所述当前屏幕显示的所述待测软件的UI。其中,所述方法还包括:预先设置屏幕中显示所述GUI图像的屏幕区域;相应地,所述实时读取所述当前屏幕显示的所述待测软件的UI为,在所述屏幕区域内,实时读取所述当前屏幕显示的所述待测软件的UI。其中,所述根据所述UI,计算出所述GUI图像在所述当前屏幕的实际显示位置,包括:计算所述GUI图像在所述UI中的位置;获取所述UI与所述当前屏幕的相对位置关系;根据所述GUI图像在所述UI中的位置、及所述UI与所述当前屏幕的相对位置关系,计算出所述GUI在所述当前屏幕的显示位置。一种非标准控件自动化测试装置,所述装置包括:获取模块,用于预先获取待测软件的待测非标准控件的GUI图像;确定模块,用于根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;模拟模块,用于在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件。其中,所述确定模块包括:启动单元,用于启动所述待测软件,使所述当前屏幕显示所述待测软件的UI;获取单元,用于获取所述当前屏幕中显示的存在所述预先获取的所述待测非标准控件的GUI图像的UI;计算单元,用于根据所述UI,计算出所述GUI图像在所述当前屏幕的实际显示位置。其中,所述确定模块还包括:读取单元,用于实时读取所述当前屏幕显示的所述待测软件的UI;搜索单元,用于根据所述GUI图像,搜索所述待测软件的UI中是否存在与所述GUI图像相同的图像;相应地,所述读取单元还用于,若不存在,则继续读取所述当前屏幕显示的所述待测软件的UI。其中,所述确定模块还包括:设置单元,用于预先设置屏幕中显示所述GUI图像的屏幕区域;相应地,所述读取单元用于,在所述屏幕区域内,实时读取所述当前屏幕显示的所述待测软件的UI。其中,所述计算单元包括:第一计算子单元,用于获取所述GUI图像在所述UI中的位置;获取子单元,用于获取所述UI与所述当前屏幕的相对位置关系;第二计算子单元,用于根据所述GUI图像在所述UI中的位置、及所述UI与所述当前屏幕的相对位置关系,计算出所述GUI在所述当前屏幕的显示位置。本发明实施例提供的技术方案带来的有益效果是:通过预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件;由于非标准控件的GUI图像容易获取,根据非标准控件的GUI图像来确定非标准控件的实际位置,能够减轻自动化测试的负担,提高自动化测试的效率,节省资源。附图说明为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例中提供的UI、GUI元素和控件三者之间的关系的示意图;图2是本发明实施例1中提供的一种非标准控件自动化测试方法的流程图;图3是本发明实施例2中提供的一种非标准控件自动化测试方法的流程图;图4是本发明实施例3中提供的一种非标准控件自动化测试装置的示意图;图5是本发明实施例4中提供的一种非标准控件自动化测试装置的示意图。具体实施方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。为便于对本发明实施方式所描述的技术方案的理解,参见图1,首先对UI、GUI元素和控件三者之间的关系进行介绍。其中,UI包括很多可视化的界面图形元素。GUI元素是UI包括的界面图形元素中一种,体现为具体的图形设计。控件是一种方法封装,UI即为设计者根据若干控件创建的。具体地,各GUI元素对应不同的控件。用户运行软件应用后,正是通过可视的GUI元素来操作各控件,从而对软件应用进行使用。实施例1参见图2,本发明实施例1提供了一种非标准控件自动化测试方法,该方法包括:101:预先获取待测软件的待测非标准控件的GUI图像。102:根据预先获取的待测非标准控件的GUI图像,确定该待测非标准控件的GUI图像在当前屏幕中的实际显示位置。103:在该实际显示位置,模拟用户对待测非标准控件的GUI图像进行操作,以测试待测非标准控件。本发明实施例提供的技术方案带来的有益效果是:通过预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件;由于非标准控件的GUI图像容易获取,根据非标准控件的GUI图像来确定非标准控件的实际位置,能够减轻自动化测试的负担,提高自动化测试的效率,节省资源。实施例2参见图3,本发明实施例2提供了一种非标准控件自动化测试方法,该方法包括:201:预先获取待测软件的待测非标准控件的GUI图像。其中,测试人员打算对某软件进行非标准控件测试。测试人员应先获取待测软件中待测非标准控件的GUI图像。进一步地,获取的方式包括两种,第一种,通过待测软件的UI资源包获取。测试人员从待测软件的UI资源包中匹配待测非标准控件的GUI图像,匹配成功后,直接将该GUI图像导出。第二种,通过图像辅助工具获取。首先,测试人员通过点击图标或其他方式启动该软件。该软件被启动后,将实时在桌面显示一系列的UI,以呈现该软件的程序逻辑。其次,测试人员查找并获取待测非标准控件的GUI图像。具体地,假设当前屏幕显示的UI包括待测非标准控件所对应的GUI图像。测试人员阅览当前屏幕显示的UI,目测到待测非标准控件所对应的GUI图像后,将通过图像辅助工具以截图的方式获取待测非标准控件的GUI图像。其中,获取待测非标准控件的GUI图像后,将GUI图像存储到服务器数据库中。具体地,存储的GUI图像为PNG格式的图片文件。202:根据预先获取的待测非标准控件的GUI图像,确定该待测非标准控件的GUI图像在当前屏幕中的实际显示位置。进一步地,本步骤包括:2021:预先设置屏幕中显示该GUI图像的屏幕区域。其中,显示该GUI图像的屏幕区域为,该GUI图像被屏幕显示后,该GUI图像在屏幕上的物理位置区域。具体地,屏幕区域由大量的屏幕坐标信息组成。进一步地,屏幕坐标信息的获取能够通过本领域熟知的技术完成,在此不再详述。值得说明的是,在本发明实施例2中,将不限定屏幕区域的大小。屏幕区域的最大值为全屏幕;屏幕区域的最小值为待测标准控件对应的GUI图像所占用的屏幕区域。优选地,显示该GUI图像的屏幕区域为显示该GUI图像所在UI占用的屏幕区域。2022:启动该待测软件,使当前屏幕显示该待测软件的UI。具体地,如201中所述,测试人员通过点击图标或其他方式启动该待测软件,使当前屏幕显示该待测软件的UI。值得说明的是,在本发明实施例2中2021和2022的执行顺序仅为较佳顺序。实际应用中,将不限定2021和2022的先后执行顺序,2021和2022可同时执行。2023:在设置的屏幕区域内,实时读取当前屏幕显示的待测软件的UI。其中,在当前屏幕显示该待测软件的UI时,同步读取设置的屏幕区域内屏幕显示的待测软件的UI。具体地,以扫描图像的方式进行读取。2024:根据获取的GUI图像,搜索该待测软件的UI中是否存在与该GUI图像相同的图像。若存在,则执行2025;若不存在,则判断为当前屏幕未显示该GUI图像,执行2023。其中,通过图像识别技术在设置的屏幕区域内搜索该待测软件的UI中是否存在相同的GUI图像。具体地,将获取的GUI图像和屏幕显示的UI作为两幅图,然后采用相应的图像识别技术对两幅图像进行匹配。图像匹配的内容包括像素、轮廓和亮度等。若在屏幕显示的UI中匹配到GUI图像,则执行2025;若在屏幕显示的UI中未匹配到GUI图像,则执行2023。进一步地,前述的图像识别技术包括SIFT(ScaleInvariantFeatureTransform)算法。SIFT算法为基于尺度空间的、对图像缩放、旋转甚至仿射变换保持不变性的图像局部特征算法。通过SITF算法能够处理两幅图像之间发生平移、旋转、仿射变化情况下的匹配问题,甚至对任意角度拍摄的图像也具备较为温度的特征匹配能力。此为图像处理领域熟知技术,在此不再详述。2025:获取当前屏幕中显示的存在预先获取的待测非标准控件的GUI图像的UI。其中,若该待测软件的UI中存在与该GUI图像相同的图像,则获取当前屏幕中显示的存在预先获取的待测非标准控件的GUI图像的UI。具体地,可采用快照的方式获取存在预先获取的待测非标准控件的GUI图像的UI。2026:根据该UI,计算出该GUI图像在当前屏幕的实际显示位置。进一步地,本步骤包括:2026a:获取当前屏幕显示的UI与当前屏幕的相对位置关系。其中,当前屏幕显示的UI实际上是当前屏幕显示的窗体。一般地,在设计UI时,将对应坐标系,设置UI的尺寸属性,包括窗体距屏幕上边界(top)和左边界(left)的距离值、窗体本身的宽度(width)和高度(height)。而坐标系是从屏幕的左上角为原点,向右为X轴,向下为Y轴。因此,获取当前屏幕显示的UI与当前屏幕的相对位置关系具体包括,首先,获取当前屏幕显示的UI的ID;其次,根据UI的ID,从UI属性中拉取该UI距屏幕上边界和左边界的距离值;然后,将该距离值作为UI与当前屏幕的相对位置关系。2026b:计算该GUI图像在当前屏幕显示的UI中的位置。其中,GUI图像在UI中的位置,具体体现为,子图像在主图像中的位置。具体地,首先,获取GUI图像的像素值范围;其次,将UI进行像素分布;然后,在UI的像素分布中,通过像素值比对,获取GUI图像的像素值范围在UI中的位置。此为图像处理领域熟知技术,在此不再详述。2026c:根据当前屏幕显示的UI与当前屏幕的相对位置关系,计算出该GUI在当前屏幕的显示位置。具体地,首先,根据当前屏幕显示的UI与当前屏幕的相对位置关系,将UI的像素分布一一映射成屏幕坐标;然后,根据GUI图像的像素值范围在UI中的位置,获取GUI图像的像素值范围对应的屏幕坐标;该屏幕坐标即为GUI图像在当前屏幕中的屏幕坐标。203:在该实际显示位置,模拟用户对待测非标准控件的GUI图像进行操作,以测试待测非标准控件。其中,定位至该GUI图像在当前屏幕中的实际显示位置后,将模拟用户对该GUI图像进行操作。进一步地,以按钮非标准控件为例,简单描述非标准控件的测试内容。针对该按钮非标准控件,将模拟用户对该控件的GUI图像进行单击或双击,查看该按钮得到的响应。具体地,测试人员将结合该待测软件的设计文档,根据设计文档需求验证该响应是否正确。例如,点击该按钮是否弹出窗体;点击窗体中取消按钮后,窗体是否关闭;文本输入值为null时,按钮的提示状态是否正确;或,点击按钮能否提交页面数据并关闭页面窗体等。其中,具体的测试操作流程通过预定义的测试例完成。预定义的测试例体现为具体的脚本程序。此为现有技术,在此不再详述。本发明实施例提供的技术方案带来的有益效果是:通过预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件;由于非标准控件的GUI图像容易获取,根据非标准控件的GUI图像来确定非标准控件的实际位置,能够减轻自动化测试的负担,提高自动化测试的效率,节省资源。实施例3参见图4,本发明实施例3提供了一种非标准控件自动化测试装置,该装置包括:获取模块301,用于预先获取待测软件的待测非标准控件的GUI图像。确定模块302,用于根据预先获取的待测非标准控件的GUI图像,确定该待测非标准控件的GUI图像在当前屏幕中的实际显示位置。模拟模块303,用于在该实际显示位置,模拟用户对待测非标准控件的GUI图像进行操作,以测试待测非标准控件。本发明实施例提供的技术方案带来的有益效果是:通过预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件;由于非标准控件的GUI图像容易获取,根据非标准控件的GUI图像来确定非标准控件的实际位置,能够减轻自动化测试的负担,提高自动化测试的效率,节省资源。实施例4参见图5,本发明实施例4提供了一种非标准控件自动化测试装置,该装置包括:获取模块401,用于预先获取待测软件的待测非标准控件的GUI图像。确定模块402,用于根据预先获取的待测非标准控件的GUI图像,确定该待测非标准控件的GUI图像在当前屏幕中的实际显示位置。其中,确定模块402包括:启动单元4021,用于启动待测软件,使当前屏幕显示待测软件的UI。获取单元4022,用于获取当前屏幕中显示的存在预先获取的待测非标准控件的GUI图像的UI。计算单元4023,用于根据该UI,计算出GUI图像在当前屏幕的实际显示位置。其中,计算单元4023包括:第一计算子单元4023a,用于获取GUI图像在UI中的位置。获取子单元4023b,用于获取UI与当前屏幕的相对位置关系。第二计算子单元4023c,用于根据GUI图像在UI中的位置、及UI与当前屏幕的相对位置关系,计算出GUI在当前屏幕的显示位置。其中,确定模块402还包括:读取单元4024,用于实时读取当前屏幕显示的待测软件的UI。搜索单元4025,用于根据GUI图像,搜索待测软件的UI中是否存在与GUI图像相同的图像。相应地,获取单元4022还用于,若存在,则获取当前屏幕中显示的存在预先获取的待测非标准控件的GUI图像的UI。相应地,读取单元4024还用于,若不存在,则继续读取当前屏幕显示的待测软件的UI。其中,确定模块402还包括:设置单元4026,用于预先设置屏幕中显示GUI图像的屏幕区域。相应地,读取单元4024用于,在屏幕区域内,实时读取当前屏幕显示的待测软件的UI。模拟模块403,用于在该实际显示位置,模拟用户对待测非标准控件的GUI图像进行操作,以测试待测非标准控件。本发明实施例提供的技术方案带来的有益效果是:通过预先获取待测软件的待测非标准控件的GUI图像;根据所述预先获取的待测非标准控件的GUI图像,确定所述待测非标准控件的GUI图像在当前屏幕中的实际显示位置;在所述实际显示位置,模拟用户对所述待测非标准控件的GUI图像进行操作,以测试所述待测非标准控件;由于非标准控件的GUI图像容易获取,根据非标准控件的GUI图像来确定非标准控件的实际位置,能够减轻自动化测试的负担,提高自动化测试的效率,节省资源。需要说明的是:上述实施例提供的自动化测试装置在对非标准控件进行测试时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的自动化测试装置与自动化测试方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1