CN113254338A - 测试用例生成方法、装置及设备 - Google Patents
测试用例生成方法、装置及设备 Download PDFInfo
- Publication number
- CN113254338A CN113254338A CN202110570992.1A CN202110570992A CN113254338A CN 113254338 A CN113254338 A CN 113254338A CN 202110570992 A CN202110570992 A CN 202110570992A CN 113254338 A CN113254338 A CN 113254338A
- Authority
- CN
- China
- Prior art keywords
- picture
- page
- control
- test case
- target
- 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.)
- Granted
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/3684—Test management for test design, e.g. generating new test cases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种测试用例生成方法、装置及设备,所述方法包括:获取通过预先埋点收集的用户交互事件的事件信息,其中,事件信息至少包括用户交互事件的目标事件类型、用户交互事件所针对页面的目标页面标识和用户交互事件所针对的页面中的目标位置;获取用户交互事件所针对的页面中各页面控件对应的位置范围;将目标位置所在的位置范围对应的页面控件作为目标控件;将目标页面标识对应的页面作为测试用例的待测试页面,将目标事件类型作为测试用例的交互指令类型,从目标控件对应的位置范围中确定测试用例的交互位置,以生成测试用例。实现了自动生成测试用例,而不需要用户手工编写各个测试用例的代码,降低了代码维护难度。
Description
技术领域
本发明涉及自动化测试技术领域,尤其涉及一种测试用例生成方法、装置及设备。
背景技术
测试用例生成(User interface testing,简称UI测试)通常是模拟真实用户使用软件的行为,即模拟用户在软件界面上的各种操作,并验证这些操作对应的结果是否正确。目前,测试人员需要手工编写自动化测试脚本代码来模拟真实用户使用软件的行为,代码维护成本大。
发明内容
本发明的主要目的在于提供一种测试用例生成方法、装置及设备,旨在解决现有UI测试方法通过手工编写自动化测试脚本代码来模拟真实用户使用软件的行为,代码维护成本大的技术问题。
为实现上述目的,本发明提供一种测试用例生成方法,所述方法包括以下步骤:
获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
将所述目标位置所在的位置范围对应的页面控件作为目标控件;
将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
可选地,所述事件信息还包括所述用户交互事件所针对页面的页面图片,所述获取所述用户交互事件所针对的页面中各页面控件对应的位置范围的步骤包括:
从预设数据库内各待测试控件对应的控件图片中选取待比对图片;
将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果,其中,所述第一匹配结果表示所述页面图片中是否存在与所述待比对图片匹配成功的部分图片区域;
根据所述第一匹配结果将与所述页面图片中部分图片区域匹配成功的待比对图片作为已匹配图片;
将所述已匹配图片对应的待测试控件作为所述页面图片中的页面控件,将与所述已匹配图片匹配成功的部分图片区域在所述页面图片中的位置范围作为所述页面控件的位置范围。
可选地,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
将所述待比对图片在所述页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时计算所述待比对图片与所述页面图片中被所述待比对图片覆盖的区域之间的相似度;
根据各所述相似度与第一预设阈值的比较结果得到所述待比对图片对应的第一匹配结果。
可选地,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
从所述待比对图片中选取关键点,并计算所述关键点的描述子;
分别计算所述关键点与所述页面图片中各像素点的描述子相似度;
根据各所述描述子相似度与第二预设阈值的比较结果得到所述关键点的第二匹配结果,其中,所述第二匹配结果表示所述页面图片中是否存在与所述关键点匹配成功的像素点;
当根据所述第二匹配结果确定各所述关键点均不存在匹配成功的像素点时,确定所述页面图片中不存在与所述待比对图片匹配成功的部分图片区域;
当根据所述第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与所述待比对图片匹配成功的部分图片区域在所述页面图片中的位置范围。
可选地,所述事件信息还包括收集所述事件信息的目标设备对应的设备信息,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,还包括:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片所适用设备的设备信息;
所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤包括:
根据所述预设数据库内各待测试控件对应的控件图片的控件信息,选取适用于所述目标设备的控件图片作为待对比图片。
可选地,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,还包括:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片的标识;
所述方法还包括:
将所述目标控件作为所述测试用例的交互控件,将所述目标控件对应的控件图片的标识作为所述交互控件的标识。
可选地,所述将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例的步骤之后,还包括:
统计预设时间段内生成相同测试用例的次数得到各个测试用例的发生频率;
根据所述发生频率确定各个测试用例的测试优先级;
按照所述测试用例的测试优先级执行所述测试用例。
可选地,所述获取通过预先埋点收集的用户交互事件的事件信息的步骤包括:
接收用户终端发送的用户交互事件的事件信息,其中,所述用户终端通过浏览器事件委托机制监听用户交互事件并生成所述事件信息。
为实现上述目的,本发明还提供一种测试用例生成装置,所述装置包括:
第一获取模块,用于获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
第二获取模块,用于获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
确定模块,用于将所述目标位置所在的位置范围对应的页面控件作为目标控件;
生成模块,用于将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
为实现上述目的,本发明还提供一种测试用例生成设备,所述测试用例生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的测试用例生成程序,所述测试用例生成程序被所述处理器执行时实现如上所述的测试用例生成方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有测试用例生成程序,所述测试用例生成程序被处理器执行时实现如上所述的测试用例生成方法的步骤。
本发明中,获取通过预先埋点收集的用户交互事件的事件信息,事件信息至少包括该用户交互事件的目标事件类型、该用户交互事件所针对的页面的目标页面标识和该用户交互事件所针对的页面中的目标位置,获取该用户交互事件所针对的页面中各页面控件对应的位置范围;将该目标位置所在的位置范围对应的页面控件作为目标控件;将该目标页面标识对应的页面作为测试用例的待测试页面,将该目标事件类型作为测试用例的交互指令类型,从该目标控件对应的位置范围中确定测试用例的交互位置,以生成测试用例,实现了自动生成测试用例,而不需要用户手工编写各个测试用例的代码,降低了代码维护难度。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的结构示意图;
图2为本发明测试用例生成方法第一实施例的流程示意图;
图3为本发明实施例涉及的一种图像匹配场景示意图;
图4为本发明实施例涉及的一种相关系数计算公式示意图;
图5为本发明实施例涉及的一种像素矩阵匹配场景示意图;
图6为本发明测试用例生成装置较佳实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的设备结构示意图。
需要说明的是,本发明实施例测试用例生成设备可以是智能手机、个人计算机和服务器等设备,在此不做具体限制。
如图1所示,该测试用例生成设备可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对测试用例生成设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及测试用例生成程序。操作***是管理和控制设备硬件和软件资源的程序,支持测试用例生成程序以及其它软件或程序的运行。在图1所示的设备中,用户接口1003主要用于与客户端进行数据通信;网络接口1004主要用于与服务器建立通信连接;而处理器1001可以用于调用存储器1005中存储的测试用例生成程序,并执行以下操作:
获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
根据所述事件信息生成用于对所述目标页面标识对应的页面中所述目标位置对应的目标控件进行所述目标事件类型的交互测试的测试用例;
获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
将所述目标位置所在的位置范围对应的页面控件作为目标控件;
将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
进一步地,所述事件信息还包括所述用户交互事件所针对页面的页面图片,所述获取所述用户交互事件所针对的页面中各页面控件对应的位置范围的步骤包括:
从预设数据库内各待测试控件对应的控件图片中选取待比对图片;
将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果,其中,所述第一匹配结果表示所述页面图片中是否存在与所述待比对图片匹配成功的部分图片区域;
根据所述第一匹配结果将与所述页面图片中部分图片区域匹配成功的待比对图片作为已匹配图片;
将所述已匹配图片对应的待测试控件作为所述页面图片中的页面控件,将与所述已匹配图片匹配成功的部分图片区域在所述页面图片中的位置范围作为所述页面控件的位置范围。
进一步地,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
将所述待比对图片在所述页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时计算所述待比对图片与所述页面图片中被所述待比对图片覆盖的区域之间的相似度;
根据各所述相似度与第一预设阈值的比较结果得到所述待比对图片对应的第一匹配结果。
进一步地,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
从所述待比对图片中选取关键点,并计算所述关键点的描述子;
分别计算所述关键点与所述页面图片中各像素点的描述子相似度;
根据各所述描述子相似度与第二预设阈值的比较结果得到所述关键点的第二匹配结果,其中,所述第二匹配结果表示所述页面图片中是否存在与所述关键点匹配成功的像素点;
当根据所述第二匹配结果确定各所述关键点均不存在匹配成功的像素点时,确定所述页面图片中不存在与所述待比对图片匹配成功的部分图片区域;
当根据所述第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与所述待比对图片匹配成功的部分图片区域在所述页面图片中的位置范围。
进一步地,所述事件信息还包括收集所述事件信息的目标设备对应的设备信息,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,处理器1001还可以用于调用存储器1005中存储的测试用例生成程序,执行以下操作:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片所适用设备的设备信息;
所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤包括:
根据所述预设数据库内各待测试控件对应的控件图片的控件信息,选取适用于所述目标设备的控件图片作为待对比图片。
进一步地,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,处理器1001还可以用于调用存储器1005中存储的测试用例生成程序,执行以下操作:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片的标识;
将所述目标控件作为所述测试用例的交互控件,将所述目标控件对应的控件图片的标识作为所述交互控件的标识。
进一步地,所述将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例的步骤之后,处理器1001还可以用于调用存储器1005中存储的测试用例生成程序,执行以下操作:
统计预设时间段内生成相同测试用例的次数得到各个测试用例的发生频率;
根据所述发生频率确定各个测试用例的测试优先级;
按照所述测试用例的测试优先级执行所述测试用例。
进一步地,所述获取通过预先埋点收集的用户交互事件的事件信息的步骤包括:
接收用户终端发送的用户交互事件的事件信息,其中,所述用户终端通过浏览器事件委托机制监听用户交互事件并生成所述事件信息。
基于上述的结构,提出测试用例生成方法的各个实施例。
参照图2,图2为本发明测试用例生成方法第一实施例的流程示意图。
本发明实施例提供了测试用例生成方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本发明测试用例生成方法各个实施例的执行主体可以是智能手机、个人计算机和服务器等设备,为便于描述,以下各实施例中以测试设备为执行主体进行阐述。在本实施例中,测试用例生成方法包括:
步骤S10,获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
在本实施例中,对于需要测试的应用软件,可以将其作为待测试应用。安装有待测试应用的设备(测试设备本身或与测试设备通信连接的用户终端)启动待测试应用后,通过显示器显示待测试应用的用户界面,用户对待测试应用的用户界面进行的交互操作会在设备中触发用户交互事件,设备中预先进行了埋点,也即,每当检测到用户交互事件时收集该用户交互事件的事件信息。测试设备获取用户交互事件的事件信息即获取本机收集到的事件信息,或接收用户终端上报的事件信息。
具体地,待测试应用的用户界面一般包括多个页面,各个页面中包括一些控件,例如图标、按钮、图片、可交互文本以及其他组件(如表单、下拉框、菜单等等)。用户对页面中的控件进行交互操作触发设备中的一个用户交互事件,用户的交互操作所针对的该页面即用户交互事件所针对的页面,该交互操作所指向的页面中的位置即用户交互事件所针对的页面中的位置,交互操作的类型即用户交互操作的事件类型,例如单击、双击和滑动等类型。设备收集的用户交互事件的事件信息可以至少包括该用户交互事件的事件类型(以下称为目标事件类型以示区分)、该用户交互事件所针对的页面的标识(以下称为目标页面标识以示区分)和该用户交互事件所针对的页面中的位置(以下称为目标位置以示区分)。其中,可以直接采用待测试应用的业务代码中页面的标识,也可以采用页面的域名、URL(网页地址)和哈希等拼接得到页面的标识。页面中的位置可以采用相对于页面坐标系的坐标值来表示。
在一实施方式中,若获取到的坐标值不是相对于页面坐标系的坐标值,则可以将坐标值转换为相对于页面坐标系的坐标值,避免测试时页面相对于窗口发生滚动导致测试位置不准确。例如,当获取到的是用户交互事件的触发点相对于浏览器视口的坐标(clientX,clientY)时,由于页面可能存在高度超过浏览器视口高度出现滚动的情况,所以按照如下方式计算得到触发点相对于页面的坐标(x,y):
x=clientX+scrollLeft
y=clientY+scrollTop
其中scrollLeft和scrollTop是页面相对于浏览器视口发生滚动的位移量。
需要说明的是,预先埋点的方式可以采用常用的埋点方式,例如业务代码埋点,在本实施例中,对埋点方式并不做限制。
进一步地,在一实施方式中,可以通过浏览器事件委托机制来实现无侵入性埋点,具体地,所述步骤S10包括:
步骤S101,接收用户终端发送的用户交互事件的事件信息,其中,所述用户终端通过浏览器事件委托机制监听用户交互事件并生成所述事件信息。
待测试应用可以是web应用,用户终端通过浏览器加载待测试应用的页面。用户终端可以通过浏览器事件委托机制监听对页面的用户交互事件,并将用户交互事件的事件信息上报给测试设备。具体地,根据事件冒泡机制,document(HTML语言中的一类对象)的所有层级子元素触发事件,都会从当前点击元素依次冒泡传递给父元素直到document根元素,因此通过监听document根元素就可以监听到所有子集元素的交互事件,进而记录并上报事件信息给测试设备。
用户终端可以以请求参数的形式将事件信息上报给测试设备,此时,测试设备相当于是一个日志收集服务器。通过浏览器自带的事件委托机制来监听用户交互事件并上报事件信息实现埋点,不需要对待测试应用的代码进行修改,实现了无侵入性的埋点。
步骤S20,获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
测试设备在获取到事件信息后,可以根据事件信息生成测试用例。事件信息中包括目标事件类型、目标页面标识和目标位置,因此,测试设备根据该时间信息,能够生成一个用于对目标页面标识对应的页面中目标位置对应的目标控件进行目标事件类型的交互测试的测试用例。
具体地,生成测试用例可以是指生成测试用例的结构描述信息,结构描述信息可以包括需要测试的页面(以下称为待测试页面)的页面标识、需要触发的交互指令类型、需要交互的位置(以下称为交互位置),或者进一步地还可以包括需要交互的控件(以下称为交互控件)的标识。测试设备可以直接将事件信息中的目标页面标识作为待测试页面的页面标识,直接将事件信息中的将目标事件类型作为交互指令类型。测试设备可以直接将事件信息中的目标位置作为交互位置,也可以是确定目标位置在用户交互事件所针对的页面中所指向的控件(以下称为目标控件),从目标控件在该页面中的位置范围内选取一个位置作为交互位置。测试设备可以将目标控件作为交互控件,也即,将目标控件的标识作为交互控件的标识。控件是页面中的一个元素,所以在一实施方式中,可以采用元素id、类名或者xpath(元素在文档中的层级路径)来作为控件的标识。
或者,生成测试用例也可以是指生成一段测试代码,具体地,测试设备中可以预先设置一段代码框架,代码框架中预留出待测试页面的页面标识,交互指令类型和交互位置等字段信息的位置,测试设备获取到事件信息后,根据事件信息将字段信息对应填入代码框架的预留位置处,即得到测试用例的完整代码。
在一实施方式中,事件信息中的目标位置是页面中的某个位置,测试设备可以先根据该位置确定用户交互事件所针对的控件,也即先确定目标控件,再从目标控件在页面的位置范围中选取一个点作为测试用例的交互位置。
具体地,用户交互事件所针对的页面中有很多个控件(称为页面控件),测试设备可以先获取各个页面控件对应的位置范围,也即确定各个页面控件在页面中的位置范围。可以理解的是,页面控件一般是页面中的一个区域,所以其在页面中对应的是一个位置范围。位置范围可以采用横坐标范围和纵坐标范围来表示,也可以采用页面控件的几个顶点的坐标表示。
测试设备获取页面中页面控件的方法有多种,在本实施例中并不做限制。例如,一实施方式中,可由上报事件信息的设备记录各个页面中各个页面控件的显示位置,在监测到针对某个页面的用户交互事件时,将该页面的各个页面控件的显示位置(相对于页面)也作为一项事件信息进行上报。测试设备直接将页面控件的显示位置作为该页面控件对应的位置范围。
步骤S30,将所述目标位置所在的位置范围对应的页面控件作为目标控件;
测试设备在获取到页面中各个页面控件的位置范围后,确定目标位置落入哪一个页面控件的位置范围,目标位置所在的位置范围对应的页面控件就是用户交互事件所针对的目标控件。
进一步地,在一实施方式中,若用户的交互操作没有指向任何控件,或者没有指向需要测试的控件,则说明该交互操作是无效操作,此时设备可以不上报该交互操作对应的事件信息,或者,测试设备对该交互操作对应的事件信息可以不做处理,也即不生成对应的测试用例。具体地,当目标位置没有落入任何一个页面控件对应的位置范围时,或者当目标位置没有落入任何一个需要测试的页面控件对应的位置范围时,可确定交互操作是无效操作。
步骤S40,将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
测试设备可直接将目标页面标识对应的页面作为测试用例的待测试页面,也即,将目标页面标识作为测试用例的待测试页面的页面标识。测试设备可直接将目标事件类型作为测试用例的交互指令类型。测试设备可从目标控件对应的位置范围中确定测试用例的交互位置,具体地,可以选取位置范围中的一个点作为交互位置,例如目标控件的中间点。在一实施方式中,也可以从目标控件的位置范围中选取多个点作为交互位置,每个交互位置对应生成一个测试用例,得到根据一条事件信息生成的多个测试用例,也即,这多个测试用例都是针对同一页面中同一页面控件进行测试,只是触发的控件中的位置不同,以测试对控件的不同位置的点进行触发时,是否都能够有正常的响应。
在本实施例中,获取通过预先埋点收集的用户交互事件的事件信息,事件信息至少包括该用户交互事件的目标事件类型、该用户交互事件所针对的页面的目标页面标识和该用户交互事件所针对的页面中的目标位置,获取该用户交互事件所针对的页面中各页面控件对应的位置范围;将该目标位置所在的位置范围对应的页面控件作为目标控件;将该目标页面标识对应的页面作为测试用例的待测试页面,将该目标事件类型作为测试用例的交互指令类型,从该目标控件对应的位置范围中确定测试用例的交互位置,以生成测试用例,实现了自动生成测试用例,而不需要用户手工编写各个测试用例的代码,降低了代码维护难度。
进一步地,在生成测试用例后,测试设备可以自动执行测试用例,以对用户界面进行自动测试。具体地,若测试用例采用结构描述信息的方式表示,则测试设备中可以预先设置测试用例的自动执行代码,通过测试设备运行该自动执行代码,读取测试用例的结构描述信息中的页面标识、交互位置和交互指令类型,按照打开该页面标识对应的页面(也即待测试页面),对待测试页面中的该交互位置处触发该交互指令类型的交互指令,以模拟用户对待测试页面的交互操作。若测试用例采用测试代码的方式表示,则测试设备可以直接读取测试代码进行执行,以执行该测试用例,模拟用户对待测试页面的交互操作。
进一步地,在一实施方式中,测试设备可以将测试用例的结构描述信息输出,以供测试人员了解生成的测试用例有哪些,并在测试设备中选取需要执行的测试用例。测试设备可根据测试人员触发的执行指令来执行测试用例,并展示在测试过程中待测试应用的用户界面,供测试人员直观地查看对待测试页面进行交互操作后页面的变化是否正常。
进一步地,在一实施方式中,上报的事件信息中还可包括对用户交互事件响应后所加载的页面的页面标识,测试设备将该页面标识作为标准结果。测试设备获取执行测试用例后所加载的页面的页面标识,将该页面标识与标准结果进行比较,如果一致则确定测试结果正常,不一致则确定测试结果异常,进行报错提示,提示中可以包括测试用例的结构描述信息,以供用户直观地了解到是对哪一页面中哪一个控件进行哪种交互操作时出错。需要说明的是,收集事件信息的设备所运行的待测试应用可以是经过测试没有异常的版本,以使得根据该版本收集的测试用例的标准结果是正确的,当待测试应用的版本更新后,可针对更新版本执行自动生成的测试用例,对更新版本进行测试。
进一步地,在一实施方式中,事件信息中还可包括收集该事件信息的设备的设备号和用户交互事件的触发时间。当测试设备接收到多个用户终端上报的事件信息时,测试设备对每个设备号对应的事件信息按照触发时间的先后顺序进行排序,依次读取每个设备上有序发生的每一条事件信息进行处理生成测试用例。
进一步地,在一实施方式中,事件信息中可以包括收集该事件信息的设备的设备信息,设备信息可以包括设备型号、设备尺寸或操作***类型等信息,根据该事件信息生成的测试用例可以在相同设备信息的测试设备上执行,以避免设备不兼容导致测试结果有误,例如,上报事件信息的设备的型号是A,根据该事件信息生成的测试用例在型号为A的设备上执行。
进一步地,基于上述第一实施例,提出本发明测试用例生成方法第二实施例,在本实施例中,可以采用图像匹配的方式来获取页面中各个页面控件的位置范围。具体地,所述步骤S20包括:
步骤S201,从预设数据库内各待测试控件对应的控件图片中选取待比对图片;
上报的事件信息还可包括用户交互事件所针对页面的页面图片,页面图片相当于显示该页面时进行的截图。具体地,上报事件信息的设备可以在监控到页面加载完成事件后,对该页面进行截图得到页面图片,并将页面图片作为一项事件信息上报。
在一实施方式中,当待测试应用是web应用时,设备可以通过浏览器事件委托机制监听页面加载完成事件后,执行页面初始化操作,初始化操作主要包括将当前HTML(超文本标记语言)页面转换为包含整个页面内容的图片。具体操作为将页面的body(body是用在网页中的一种HTML标签)节点进行递归克隆,生成body节点的结构描述文件,一般为json格式,然后将克隆的节点信息以<foreignobject>标签进行包装放入到svg(可缩放矢量图形)中,最后将svg作为源创建一个img标签,在canvas画布中进行渲染,并通过canvas转换成base64图片二进制数据生成整个页面的初始化图片。为每个页面创建一个栈数据结构进行页面图片的暂存,将首次初始化的页面图片推入到图片栈中。在监听到用户交互事件后,从图片栈获取该用户交互事件触发前的页面图片,将该页面图片与其他事件信息一起上报。在对用户交互事件进行响应后,设备监听到新的页面加载完成事件,按照同样的方法生成页面图片,并将该页面图片推入到图片栈中,以供下次用户交互事件上报使用。
预先可以设置一个数据库,用于存储需要测试的控件(以下称为待测试控件)的控件图片,待测试控件可以包括待测试应用的各个页面中的各种控件,具体可以由测试人员准备好各个待测试控件的图片,上传至数据库帧。
测试设备从获取到的事件信息中提取出页面图片,并从预设数据库内选取控件图片作为待比对图片。具体地,测试设备可以每次从预设数据库中选取一个控件图片作为待比对图片,直到遍历完预设数据库中所有的控件图片。
步骤S202,将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果,其中,所述第一匹配结果表示所述页面图片中是否存在与所述待比对图片匹配成功的部分图片区域;
对于一张待比对图片,测试设备将该待比对图片与页面图片进行图像匹配,以确定页面图片中是否存在一个部分图片区域与该待比对图片匹配成功。经过图像匹配得到一个匹配结果(以下称为第一匹配结果以示区分),第一匹配结果可以是表示该页面图片中是否存在与该待比对图片匹配成功的部分图片区域,如果存在,则还包括该部分图片区域在页面图片中的位置范围。如图3所示,将右边的控件图片作为待比对图片与左边的页面图片进行匹配,虚线框的部分图片区域就是与该待比对图片匹配成功的区域。
其中,图像匹配的方法有多种,在本实施例中并不做限制,例如,可以将待比对图片在页面图片上进行滑动,与页面图片中的各个区域进行像素比较,以在页面图片中查找是否有与待比对图片的各个像素值对应相同的区域。
进一步地,在一实施方式中,测试设备可以将待比对图片与页面图片的第一匹配结果进行缓存,后续需要将待比对图片与页面图片进行匹配时,可以直接使用缓存中的结果,从而提高匹配效率。
步骤S203,根据所述第一匹配结果将与所述页面图片中部分图片区域匹配成功的待比对图片作为已匹配图片;
测试设备将预设数据库中的各个控件图片一一作为待比对图片与页面图片进行比较得到第一匹配结果。可以理解的是,待比对图片对应的控件在页面图片中出现,那么经过比对,页面图片中会存在一个与该待比对图片匹配成功的部分图片区域。根据第一匹配结果,测试设备可以将与页面图片中的部分图片区域匹配成功的待比对图片作为已匹配图片,也即,若页面图片中存在与待比对图片匹配成功的部分图片区域,则将该待比对图片作为已匹配图片,若页面图片中不存在与待比对图片匹配成功的部分图片区域,则将该待比对图片作为未匹配图片。可以理解的是,若页面图片中有多个页面控件时,最终可以得到多个已匹配图片。
步骤S204,将所述已匹配图片对应的待测试控件作为所述页面图片中的页面控件,将与所述已匹配图片匹配成功的部分图片区域在所述页面图片中的位置范围作为所述页面控件的位置范围。
测试设备将已匹配图片对应的待测试控件作为页面图片中的页面控件,将与已匹配图片匹配成功的部分图片区域在页面图片中的位置范围作为该页面控件的位置范围。也即,通过图像匹配的方式,确定了页面图片中有哪些页面控件,以及各个页面控件在页面图片中的位置范围。
在本实施例中,通过预先将各个待测试控件的控件图片上传至数据库中,测试设备将数据库中的控件图片与页面图片进行图像匹配,根据匹配结果确定页面图片中的页面控件和各个页面控件在页面中的位置范围,实现了页面中控件的识别和定位。且相比于通过控件的元素id、类名或xpath作为标识来管理待测试控件,测试人员通过上传控件图片的方式来管理待测试控件,更加方便更加直观。
进一步地,在一实施方式中,所述步骤S202包括:
步骤A,将所述待比对图片在所述页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时计算所述待比对图片与所述页面图片中被所述待比对图片覆盖的区域之间的相似度;
测试设备可以将待比对图片在页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时,计算待比对图片与页面图片中被待比对图片覆盖的区域之间的相似度。也即,每滑动一次计算一个相似度,滑动多次,得到待比对图片对应的多个相似度。其中,预设起点、预设步长和预设方向均可以根据需要进行设置。例如,预设起点可以设置为待比对图片的中心点与页面图片的左上角像素点对齐的位置。预设步长可以设置为每次滑动一个像素点。预设方向可以设置为从左至右,从上至下。
或者,可以理解为按照一定的方向遍历页面图片上的像素点,每达到一个像素点,以该像素点为左上角顶点或中心点从页面图片中截取出与待比对图片宽高相同的部分图片区域与待比对图片计算相似度。
需要说明的是,两个图片之间的相似度计算方法在本实施例中不做限制。在一些实施方式中,可以对图片进行灰度处理转换为灰度图片后再计算相似度。
假设待比对图片的像素矩阵为T(x',y'),页面图片的像素矩阵为I(x,y),其中待比对图片的宽为w高为h。在待比对图片滑动过程中,遍历页面图片中每个可能的位置与待比对图片的相似度。利用归一化相关系数公式计算页面图片和待比对图片之间的相关系数,得到相关系数矩阵R(x,y),计算方法如图4所示。
以下举个例子说明滑动和计算相似度的过程。假设待比对图片的像素矩阵T、页面图片的像素矩阵I如图5所示,让T的中心点5从I的起点(0,0)从左至右从上往下进行运算,得到未归一化前的相关系数矩阵r(x,y)
r(0,0)=0*1+0*2+0*3+0*4+0*5+0*6+0*7+0*8+1*9=9
r(0,1)=0*1+0*2+0*3+0*4+0*5+0*6+0*7+1*8+2*9=26
…
以此类推,得到相关系数矩阵r。通过对相关系数矩阵r的分析可以看出,矩阵中最大值为285,说明页面图片中心点位置与待比对图片的匹配度最高。最终,对相关系数矩阵进行归一化操作,得到的相关系数R的结果范围为[-1,1],结果值越接近于1表示匹配度越高。需要说明的是,可以以未归一化之前的相关系数作为相似度,也可以以归一化之后的相关系数作为相似度,在本实施例中不做限制。
步骤B,根据各所述相似度与第一预设阈值的比较结果得到所述待比对图片对应的第一匹配结果。
滑动结束后,测试设备得到了待比对图片与页面图片中各部分图片区域之间的相似度。测试设备可以根据各个相似度与第一预设阈值的比较结果得到待比对图片对应的第一匹配结果。其中,第一预设阈值可以根据需要进行设置。具体地,可以将各个相似度与第一预设阈值进行比较,确定是否有大于第一预设阈值的相似度;若没有,则可以确定页面图片中不存在与待比对图片匹配成功的部分图片区域;若有,则确定页面图片中存在与待比对图片匹配成功的部分图片区域;并且将大于第一预设阈值的相似度对应的部分图片区域作为匹配成功的部分图片区域。需要说明的是,大于第一预设阈值的相似度可能有多个;若页面图片中实际存在多个相同的控件,则可以设置为将该多个相似度对应的部分图片区域都作为匹配成功的部分图片区域;若页面图片中实际不存在多个相同的控件,则可以设置为将多个相似度中最大相似度对应的部分图片区域都作为匹配成功的部分图片区域。
进一步地,在一实施方式中,所述步骤S202包括:
步骤C,从所述待比对图片中选取关键点,并计算所述关键点的描述子;
由于在特殊情况下,页面中的控件可能会发生旋转,导致采用上述滑动匹配的方式识别不出来,在本实施例中,提出采用关键点匹配的方式。
具体地,测试设备从待比对图片中选取多个关键点,选取方式可以是随机选取,也可以是选取预设位置的点作为关键点。测试设备计算每个关键点的描述子。其中,描述子的计算方法有多种。例如,以关键点为圆心,以预设长度为半径在待比对图片中做圆,在该圆形区域内随机选取N个点对,通过计算N个点对的灰度值比较,生成该关键点的描述子:
其中,A和B是一对点对,IA和IB分别是两个点的灰度值。
步骤D,分别计算所述关键点与所述页面图片中各像素点的描述子相似度;
测试设备计算得到关键点的描述子后,分别计算该关键点与页面图片中各个像素点的描述子相似度,具体地,也即,对页面图片中的像素点也采用相同方法计算得到其描述子,计算关键点的描述子和页面图片中像素点的描述子之间的相似度,也即描述子相似度。计算描述子相似度的方法与上述实施例中计算两个图像区域之间的相似度方法相同,在此不进行相似赘述。
步骤E,根据各所述描述子相似度与第二预设阈值的比较结果得到所述关键点的第二匹配结果,其中,所述第二匹配结果表示所述页面图片中是否存在与所述关键点匹配成功的像素点;
可以理解的是,一个关键点与多个像素点分别计算描述子相似度,最终得到该关键点对应的多个描述子相似度,将各个描述子相似度与第二预设阈值进行比较,得到比较结果,得到关键点的第二匹配结果,第二匹配结果表示页面图片中是否存在与该关键点匹配成功的像素点,若存在,则可包括匹配成功的像素点的位置。其中,第二预设阈值可以根据需要进行设置。在一实施方式中,可以是在当存在至少一个描述子相似度大于第二预设阈值时,就确定页面图片中存在与该关键点匹配成功的像素点,并将大于第二预设阈值的描述子相似度所对应的像素点作为匹配成功的像素点;否则,当各个描述子相似度都不大于第二预设阈值时,确定页面图片中不存在与该关键点匹配成功的像素点。在另一实施方式中,可以是在当存在两个以上描述子相似度大于第二预设阈值时,检测最大的描述子相似度与第二大的描述子相似度对应的像素点之间的距离,如果距离小于一定距离,则将两个像素点作为匹配成功的像素点,否则,确定页面图片中不存在与关键点匹配成功的像素点。
步骤F,当根据所述第二匹配结果确定各所述关键点均不存在匹配成功的像素点时,确定所述页面图片中不存在与所述待比对图片匹配成功的部分图片区域;
步骤G,当根据所述第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与所述待比对图片匹配成功的部分图片区域在所述页面图片中的位置范围。
在得到各个关键点对应的第二匹配结果后,当根据各个第二匹配结果确定各关键点均不存在匹配成功的像素点时,即可确定页面图片中不存在与待比对图片匹配成功的部分图片区域。当根据各个第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与待比对图片匹配成功的部分图片区域在页面图片中的位置范围。具体地,可以将匹配成功的像素点采用聚类算法(例如K-Means)进行聚类,以聚类的中心点作为与待比对图片匹配成功的部分图片区域的中心点,在中心点周围截取出与待比对图片尺寸相同的区域作为匹配成功的部分图片区域。
在本实施例中,通过从待比对图片中选取关键点,将关键点的描述子与页面图片中像素点的描述子计算相似度,在页面图片中查找与关键点匹配的像素点,根据匹配成功的像素点确定与待比对图片匹配成功的部分图片区域的位置范围,避免了控件发生旋转等情况时无法识别出页面控件,提高了页面控件识别的准确率。
进一步地,基于上述第二实施例,提出本发明测试用例生成方法第三实施例,在本实施例中,所述方法还包括:
步骤S50,将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片所适用设备的设备信息;
测试设备中可以设置供用户上传控件图片的途径。用户(测试人员)可以在测试设备中上传待测试控件的控件图片,以及控件图片对应的控件信息。其中,相同的控件在不同的设备中的显示效果可能是不同,因此,控件信息可包括该控件图片所适用的设备的设备信息,例如设备型号、设备尺寸和操作***类型等,以通过设备信息来区分相同控件适用于不同设备的控件图片。测试设备将控件图片和控件信息添加至数据库中。可以理解的是,测试人员可以根据待测试应用的版本更新,上传、修改或删除数据库中的控件图片。
所述步骤S201包括:
步骤H,根据所述预设数据库内各待测试控件对应的控件图片的控件信息,选取适用于所述目标设备的控件图片作为待对比图片。
上报的事件信息还可以包括收集该事件信息的设备(以下称为目标设备)的设备信息。测试设备在从预设数据库中选取待比对图片时,可以根据控件图片的控件信息中的设备信息,选取适用于目标设备的控件图片作为待比对图片。也即,将预设数据库中各控件图片适用的设备信息与目标设备的设备信息进行比对,确定控件图片是否是适用于目标设备的控件图片,将适用于目标设备的控件图片作为待比对图片。
在本实施例中,通过测试人员上传统一控件适用于不同设备时的控件图片,并设置控件图片所适用的设备的设备信息,收集事件信息的设备将其设备信息也作为一项事件信息上报,使得测试设备可以准确地识别页面中的页面控件,并且,能够生成在不同的设备中测试待测试应用的测试用例,提高了自动化测试用例生成方法的适用范围。
进一步地,在一实施方式中,所述方法还包括:
步骤S60,将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片的标识;
用户(测试人员)可以在测试设备中上传待测试控件的控件图片,以及控件图片对应的控件信息。控件信息可以包括控件图片的标识,标识可以采用简单易区分的标识,也即测试人员可以自定义各个控件图片的标识,以便于对控件图片进行管理。测试设备将控件图片和控件信息添加至数据库中。可以理解的是,测试人员可以根据待测试应用的版本更新,上传、修改或删除数据库中的控件图片。可以理解的是,在其他实施方式中,控件信息可以包括控件图片的标识和控件图片所适用设备的设备信息。
所述方法还包括:
步骤S70,将所述目标控件作为所述测试用例的交互控件,将所述目标控件对应的控件图片的标识作为所述交互控件的标识。
进一步地,测试设备在生成测试用例时,还可以将目标控件作为测试用例的交互控件,将目标控件对应的控件图片作为交互控件的标识。例如,当测试用例采用结构描述信息来表示时,测试用例的结构描述信息中还可以包括交互控件的标识,该标识即测试人员上传控件图片时自定义的标识,测试人员通过该标识即可识别测试用例是用于对哪一控件进行测试的测试用例,相比于采用元素id、类名或xpath作为标识,自定义的标识更加直观方便,使得测试用例更易于理解。
进一步地,基于上述第一、第二和/或第三实施例,提出本发明测试用例生成方法第四实施例,在本实施例中,所述步骤S40之后,还包括:
步骤S80,统计预设时间段内生成相同测试用例的次数得到各个测试用例的发生频率;
测试设备可以统计预设时间段内生成相同测试用例的次数,得到各个测试用例的发生频率。其中,预设时间段可以根据需要进行设置,例如最近一天、最近一周等。需要说明的是,如果测试设备是对上报的事件信息进行暂存,然后统一进行处理生成测试用例,那么相当于测试设备对触发时间在预设时间段内的事件信息生成的测试用例进行统计。相同的测试用例判断方法可以是两个测试用例的待测试页面的页面标识、交互控件的控件标识以及交互指令类型均相同即可确定两个测试用例相同,或者,两个测试用例的待测试页面的页面标识、交互位置以及交互指令类型均相同即可确定两个测试用例相同。
需要说明的是,若多个测试用例相同,则测试设备可以只保留其中一个即可,但该测试用例的发生频率计多次。
步骤S90,根据所述发生频率确定各个测试用例的测试优先级;
在统计得到各个测试用例的发生频率后,测试设备可以根据发生频率确定各个测试用例的测试优先级。具体地,一个测试用例的发生频率越大,说明该测试用例对应的交互控件被用户操作的次数最多,更需要注重其功能是否正常,所以发生频率较大的测试用例的测试优先级可以设置得较高。
步骤S100,按照所述测试用例的测试优先级执行所述测试用例。
在执行测试用例时,测试设备可以按照该测试用例的测试优先级来执行该测试用例,也即,优先级高的测试用例先执行,优先级低的测试用例后执行。
相比于现有技术中通过测试人员凭借个人经验确定测试用例的优先级,本实施例中通过测试用例的发生频率来确定测试优先级,实现了测试用例优先级的自动化确定,并且可以保证重要控件的测试效率。
此外,此外本发明实施例还提出一种测试用例生成装置,参照图6,所述装置包括:
第一获取模块10,用于获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
第二获取模块20,用于获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
确定模块30,用于将所述目标位置所在的位置范围对应的页面控件作为目标控件;
生成模块40,用于将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
进一步地,所述事件信息还包括所述用户交互事件所针对页面的页面图片,所述第二获取模块20包括:
选取单元,用于从预设数据库内各待测试控件对应的控件图片中选取待比对图片;
匹配单元,用于将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果,其中,所述第一匹配结果表示所述页面图片中是否存在与所述待比对图片匹配成功的部分图片区域;
第一确定单元,用于根据所述第一匹配结果将与所述页面图片中部分图片区域匹配成功的待比对图片作为已匹配图片;
第二确定单元,用于将所述已匹配图片对应的待测试控件作为所述页面图片中的页面控件,将与所述已匹配图片匹配成功的部分图片区域在所述页面图片中的位置范围作为所述页面控件的位置范围。
进一步地,所述匹配单元还用于:
将所述待比对图片在所述页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时计算所述待比对图片与所述页面图片中被所述待比对图片覆盖的区域之间的相似度;
根据各所述相似度与第一预设阈值的比较结果得到所述待比对图片对应的第一匹配结果。
进一步地,所述匹配单元还用于:
从所述待比对图片中选取关键点,并计算所述关键点的描述子;
分别计算所述关键点与所述页面图片中各像素点的描述子相似度;
根据各所述描述子相似度与第二预设阈值的比较结果得到所述关键点的第二匹配结果,其中,所述第二匹配结果表示所述页面图片中是否存在与所述关键点匹配成功的像素点;
当根据所述第二匹配结果确定各所述关键点均不存在匹配成功的像素点时,确定所述页面图片中不存在与所述待比对图片匹配成功的部分图片区域;
当根据所述第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与所述待比对图片匹配成功的部分图片区域在所述页面图片中的位置范围。
进一步地,所述事件信息还包括收集所述事件信息的目标设备对应的设备信息,所述装置还包括:
第一添加模块,用于将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片所适用设备的设备信息;
所述选取单元包括还用于:
根据所述预设数据库内各待测试控件对应的控件图片的控件信息,选取适用于所述目标设备的控件图片作为待对比图片。
进一步地,所述装置还包括:
第二添加模块,用于将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片的标识;
所述生成模块40还用于:
将所述目标控件作为所述测试用例的交互控件,将所述目标控件对应的控件图片的标识作为所述交互控件的标识。
进一步地,所述装置还包括:
统计模块,用于统计预设时间段内生成相同测试用例的次数得到各个测试用例的发生频率;
所述确定模块30还用于根据所述发生频率确定各个测试用例的测试优先级;
执行模块,用于按照所述测试用例的测试优先级执行所述测试用例。
进一步地,所述获取模块10还用于:
接收用户终端发送的用户交互事件的事件信息,其中,所述用户终端通过浏览器事件委托机制监听用户交互事件并生成所述事件信息。
本发明测试用例生成装置的具体实施方式的拓展内容与上述测试用例生成方法各实施例基本相同,在此不做赘述。
此外,本发明实施例还提出一种计算机可读存储介质,所述存储介质上存储有测试用例生成程序,所述测试用例生成程序被处理器执行时实现如下所述的测试用例生成方法的步骤。
本发明测试用例生成设备和计算机可读存储介质各实施例,均可参照本发明测试用例生成方法各个实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种测试用例生成方法,其特征在于,所述方法包括以下步骤:
获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
将所述目标位置所在的位置范围对应的页面控件作为目标控件;
将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
2.如权利要求1所述的测试用例生成方法,其特征在于,所述事件信息还包括所述用户交互事件所针对页面的页面图片,所述获取所述用户交互事件所针对的页面中各页面控件对应的位置范围的步骤包括:
从预设数据库内各待测试控件对应的控件图片中选取待比对图片;
将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果,其中,所述第一匹配结果表示所述页面图片中是否存在与所述待比对图片匹配成功的部分图片区域;
根据所述第一匹配结果将与所述页面图片中部分图片区域匹配成功的待比对图片作为已匹配图片;
将所述已匹配图片对应的待测试控件作为所述页面图片中的页面控件,将与所述已匹配图片匹配成功的部分图片区域在所述页面图片中的位置范围作为所述页面控件的位置范围。
3.如权利要求2所述的测试用例生成方法,其特征在于,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
将所述待比对图片在所述页面图片中从预设起点开始按照预设步长和预设方向进行滑动,每步滑动停留时计算所述待比对图片与所述页面图片中被所述待比对图片覆盖的区域之间的相似度;
根据各所述相似度与第一预设阈值的比较结果得到所述待比对图片对应的第一匹配结果。
4.如权利要求2所述的测试用例生成方法,其特征在于,所述将所述待比对图片与所述页面图片进行图像匹配,得到所述待比对图片对应的第一匹配结果的步骤包括:
从所述待比对图片中选取关键点,并计算所述关键点的描述子;
分别计算所述关键点与所述页面图片中各像素点的描述子相似度;
根据各所述描述子相似度与第二预设阈值的比较结果得到所述关键点的第二匹配结果,其中,所述第二匹配结果表示所述页面图片中是否存在与所述关键点匹配成功的像素点;
当根据所述第二匹配结果确定各所述关键点均不存在匹配成功的像素点时,确定所述页面图片中不存在与所述待比对图片匹配成功的部分图片区域;
当根据所述第二匹配结果确定存在与所述关键点匹配成功的像素点时,根据匹配成功的像素点得到与所述待比对图片匹配成功的部分图片区域在所述页面图片中的位置范围。
5.如权利要求2所述的测试用例生成方法,其特征在于,所述事件信息还包括收集所述事件信息的目标设备对应的设备信息,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,还包括:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片所适用设备的设备信息;
所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤包括:
根据所述预设数据库内各待测试控件对应的控件图片的控件信息,选取适用于所述目标设备的控件图片作为待对比图片。
6.如权利要求2所述的测试用例生成方法,其特征在于,所述从预设数据库内各待测试控件对应的控件图片中选取待比对图片的步骤之前,还包括:
将用户上传的待测试控件的控件图片和控件信息添加至预设数据库,其中,所述控件信息包括所述控件图片的标识;
所述方法还包括:
将所述目标控件作为所述测试用例的交互控件,将所述目标控件对应的控件图片的标识作为所述交互控件的标识。
7.如权利要求1至6任一项所述的测试用例生成方法,其特征在于,所述将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例的步骤之后,还包括:
统计预设时间段内生成相同测试用例的次数得到各个测试用例的发生频率;
根据所述发生频率确定各个测试用例的测试优先级;
按照所述测试用例的测试优先级执行所述测试用例。
8.如权利要求1至6任一项所述的测试用例生成方法,其特征在于,所述获取通过预先埋点收集的用户交互事件的事件信息的步骤包括:
接收用户终端发送的用户交互事件的事件信息,其中,所述用户终端通过浏览器事件委托机制监听用户交互事件并生成所述事件信息。
9.一种测试用例生成装置,其特征在于,所述装置包括:
第一获取模块,用于获取通过预先埋点收集的用户交互事件的事件信息,其中,所述事件信息至少包括所述用户交互事件的目标事件类型、所述用户交互事件所针对页面的目标页面标识和所述用户交互事件所针对的页面中的目标位置;
第二获取模块,用于获取所述用户交互事件所针对的页面中各页面控件对应的位置范围;
确定模块,用于将所述目标位置所在的位置范围对应的页面控件作为目标控件;
生成模块,用于将所述目标页面标识对应的页面作为测试用例的待测试页面,将所述目标事件类型作为所述测试用例的交互指令类型,从所述目标控件对应的位置范围中确定所述测试用例的交互位置,以生成所述测试用例。
10.一种测试用例生成设备,其特征在于,所述测试用例生成设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的测试用例生成程序,所述测试用例生成程序被所述处理器执行时实现如权利要求1至8中任一项所述的测试用例生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110570992.1A CN113254338B (zh) | 2021-05-25 | 2021-05-25 | 测试用例生成方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110570992.1A CN113254338B (zh) | 2021-05-25 | 2021-05-25 | 测试用例生成方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254338A true CN113254338A (zh) | 2021-08-13 |
CN113254338B CN113254338B (zh) | 2023-01-24 |
Family
ID=77184211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110570992.1A Active CN113254338B (zh) | 2021-05-25 | 2021-05-25 | 测试用例生成方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254338B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836025A (zh) * | 2021-09-28 | 2021-12-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 页面测试方法及装置、存储介质及电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140132571A1 (en) * | 2012-11-12 | 2014-05-15 | Sap Ag | Automated testing of gesture-based applications |
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN107391538A (zh) * | 2017-04-26 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 点击数据采集、处理和展示方法、装置、设备及存储介质 |
CN108763068A (zh) * | 2018-05-15 | 2018-11-06 | 福建天泉教育科技有限公司 | 一种基于机器学习的自动化测试方法及终端 |
CN110287111A (zh) * | 2019-06-21 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种用户界面的测试用例生成方法及装置 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
CN110377500A (zh) * | 2019-06-14 | 2019-10-25 | 平安科技(深圳)有限公司 | 网站页面的测试方法、装置、终端设备及介质 |
CN111782490A (zh) * | 2019-04-04 | 2020-10-16 | 北京奇虎科技有限公司 | 数据采集方法及装置 |
CN111881019A (zh) * | 2020-07-07 | 2020-11-03 | 北京三快在线科技有限公司 | 一种用户界面测试方法及装置 |
CN112015652A (zh) * | 2020-08-28 | 2020-12-01 | 北京达佳互联信息技术有限公司 | 埋点测试方法、装置、设备以及存储介质 |
CN112527664A (zh) * | 2020-12-18 | 2021-03-19 | 中国平安财产保险股份有限公司 | 生成测试用例的方法、装置、电子设备及存储介质 |
CN112749081A (zh) * | 2020-03-23 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 用户界面测试方法及相关装置 |
-
2021
- 2021-05-25 CN CN202110570992.1A patent/CN113254338B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140132571A1 (en) * | 2012-11-12 | 2014-05-15 | Sap Ag | Automated testing of gesture-based applications |
US20150339213A1 (en) * | 2014-05-21 | 2015-11-26 | Cgi Technologies And Solutions Inc. | Automated testing of an application system |
CN107391538A (zh) * | 2017-04-26 | 2017-11-24 | 阿里巴巴集团控股有限公司 | 点击数据采集、处理和展示方法、装置、设备及存储介质 |
CN108763068A (zh) * | 2018-05-15 | 2018-11-06 | 福建天泉教育科技有限公司 | 一种基于机器学习的自动化测试方法及终端 |
CN111782490A (zh) * | 2019-04-04 | 2020-10-16 | 北京奇虎科技有限公司 | 数据采集方法及装置 |
CN110297758A (zh) * | 2019-05-20 | 2019-10-01 | 深圳壹账通智能科技有限公司 | 用户界面自动化测试方法、装置及计算机可读存储介质 |
CN110377500A (zh) * | 2019-06-14 | 2019-10-25 | 平安科技(深圳)有限公司 | 网站页面的测试方法、装置、终端设备及介质 |
CN110287111A (zh) * | 2019-06-21 | 2019-09-27 | 深圳前海微众银行股份有限公司 | 一种用户界面的测试用例生成方法及装置 |
CN112749081A (zh) * | 2020-03-23 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 用户界面测试方法及相关装置 |
CN111881019A (zh) * | 2020-07-07 | 2020-11-03 | 北京三快在线科技有限公司 | 一种用户界面测试方法及装置 |
CN112015652A (zh) * | 2020-08-28 | 2020-12-01 | 北京达佳互联信息技术有限公司 | 埋点测试方法、装置、设备以及存储介质 |
CN112527664A (zh) * | 2020-12-18 | 2021-03-19 | 中国平安财产保险股份有限公司 | 生成测试用例的方法、装置、电子设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
李智等: "基于层次结构的参数化装配模型重用机制", 《上海交通大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113836025A (zh) * | 2021-09-28 | 2021-12-24 | 湖南快乐阳光互动娱乐传媒有限公司 | 页面测试方法及装置、存储介质及电子设备 |
CN113836025B (zh) * | 2021-09-28 | 2024-07-19 | 湖南快乐阳光互动娱乐传媒有限公司 | 页面测试方法及装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113254338B (zh) | 2023-01-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107562620B (zh) | 一种埋点自动设置方法和装置 | |
CN107861655B (zh) | 控件匹配方法、装置、计算机设备和存储介质 | |
CN110069463B (zh) | 用户行为处理方法、装置电子设备及存储介质 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理*** | |
JP7385740B2 (ja) | ユーザ入力を使用したgui要素の取得プロセスの改善 | |
US8671389B1 (en) | Web application resource manager on the web and localizable components | |
US11216288B1 (en) | Capturing and processing interactions with a user interface of a native application | |
JP6823265B2 (ja) | 分析装置、分析システム、分析方法および分析プログラム | |
CN112817817B (zh) | 埋点信息查询方法、装置、计算机设备和存储介质 | |
US11349942B2 (en) | Methods and apparatus to identify sponsored media in a document object model | |
CN111130987A (zh) | Awr报告自动获取方法、装置、电子设备及存储介质 | |
CN112597052A (zh) | 接口测试方法、装置及计算机可读存储介质 | |
CN112612690B (zh) | 一种用户界面信息处理方法、装置、电子设备及存储介质 | |
CN105678127A (zh) | 一种身份信息的验证方法和装置 | |
CN111400575B (zh) | 用户标识生成方法、用户识别方法及其装置 | |
Choudhary et al. | A cross-browser web application testing tool | |
CN110781427A (zh) | 一种首屏时间的计算方法、装置、设备和存储介质 | |
CN113254338B (zh) | 测试用例生成方法、装置及设备 | |
CN113448834A (zh) | 埋点测试方法、装置、电子设备及存储介质 | |
JP6505849B2 (ja) | 要素識別子の生成 | |
CN111273980B (zh) | 界面线程可视化方法、装置、计算机设备及存储介质 | |
US20210271588A1 (en) | Rendering gui test object of application under test to reflect test information | |
CN112130944A (zh) | 页面异常的检测方法、装置、设备及存储介质 | |
CN109542743B (zh) | 日志校验方法、装置、电子设备及计算机可读存储介质 | |
CN114020589B (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 |