CN111274152B - 应用程序测试方法、装置、设备及存储介质 - Google Patents
应用程序测试方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111274152B CN111274152B CN202010093383.7A CN202010093383A CN111274152B CN 111274152 B CN111274152 B CN 111274152B CN 202010093383 A CN202010093383 A CN 202010093383A CN 111274152 B CN111274152 B CN 111274152B
- Authority
- CN
- China
- Prior art keywords
- interface
- coverage rate
- preset
- operation interface
- application program
- 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/3676—Test management for coverage analysis
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)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种应用程序测试方法、装置、设备及存储介质,涉及软件测试技术领域。本申请实施例通过判断应用程序的运行界面是否包含预设的操作区,若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试,可以大大减少应用程序测试过程中所模拟的用户操作无法作用于有效操作区的情况,从而提高应用程序测试的效率。
Description
技术领域
本申请涉及软件测试技术领域,具体而言,涉及一种应用程序测试方法、装置、设备及存储介质。
背景技术
应用程序(Application,APP)压力测试一般是指在APP开发过程中,针对APP进行模拟用户操作,以测试APP的运行性能的行为。APP压力测试时,模拟用户操作的次数和测试时间通常远远高于真实的用户使用场景,APP在上线发布之前,若能在多种机型和系统版本上通过APP压力测试,可以保证APP在真实使用场景中具有较高的稳定性。
目前,APP压力测试的方式为根据随机坐标来对运行中的APP进行随机操作。例如,可以通过APP压力测试脚本随机生成一个随机坐标以及一个操作事件,如:可以根据当前机型屏幕的尺寸,随机生成一个坐标,从预设的点击、滑动、缩放等事件中随机生成一个操控事件;然后,在上述随机到的坐标上模拟执行上述随机到的操控事件,实现APP压力测试。
但是,在上述APP压力测试过程中,所模拟的用户操作作用于某个目标用户界面(User Interface,UI)时,若目标UI仅仅作为展示UI,APP不产生反馈;只有模拟的用户操作能够作用于非展示UI(有效UI)时,APP才可以产生反馈,导致上述现有的APP压力测试方式中,根据随机坐标来对运行中的APP进行随机操作时,常常存在所模拟的用户操作无法作用于有效UI的情况,APP压力测试的效率低下。
发明内容
本申请提供一种应用程序测试方法、装置、设备及存储介质,可以提高APP压力测试的效率。
第一方面,本申请实施例提供一种应用程序测试方法,该方法包括:
判断应用程序的运行界面是否包含预设的操作区;
若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试。
可选地,该方法还包括:
若运行界面不包含操作区,则根据运行界面中的随机坐标,对运行界面进行操作测试。
可选地,上述判断应用程序的运行界面是否包含预设的操作区之前,该方法还包括:
获取运行界面的界面标识,界面标识用于表示运行界面中操作区的占比;
根据界面标识,确定运行界面的测试方式;
若测试方式为第一测试方式,则判断运行界面是否包含操作区;
若测试方式为第二测试方式,则根据运行界面中的随机坐标,对运行界面进行操作测试。
可选地,上述根据界面标识,确定运行界面的测试方式,包括:
根据界面标识、以及预设的界面标识和识别概率的映射关系,确定界面标识对应的识别概率为运行界面的识别概率;
根据运行界面的识别概率,确定运行界面的识别概率对应的测试方式。
可选地,该方法还包括:
获取运行界面的识别概率对应的应用程序的第一覆盖率;
对运行界面的识别概率进行第一调节;
获取第一调节之后的识别概率对应的应用程序的第二覆盖率;
若第二覆盖率与第一覆盖率的差异小于或等于预设差异值,则根据第一调节之后的识别概率,更新映射关系。
可选地,该方法还包括:
若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于预设差异值。
可选地,上述若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,包括:
若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率大于第一覆盖率,则继续对运行界面的识别概率进行第一调节。
可选地,上述若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,还包括:
若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率小于第一覆盖率,则对运行界面的识别概率进行第二调节,第二调节和第一调节分别为不同的调节方式。
可选地,上述对运行界面的识别概率进行第一调节,包括:
将运行界面的识别概率增大N,其中,N大于0;
上述对运行界面的识别概率进行第二调节,包括:
将运行界面的识别概率减小N/2。
可选地,第一覆盖率和第二覆盖率均包括:方法覆盖率、行数覆盖率和页面覆盖率。
可选地,上述判断应用程序的运行界面是否包含预设的操作区之前,该方法还包括:
采用预设帧率对应用程序的运行界面进行截屏,得到运行界面对应的多张截屏图像;
从多张截屏图像中选择目标截屏图像;
对应的,上述判断应用程序的运行界面是否包含预设的操作区,包括:
根据操作区的预设图像,对目标截屏图像进行识别;
若目标截屏图像中包含操作区的预设图像,则确定应用程序的运行界面包含操作区;
若目标截屏图像中不包含操作区的预设图像,则确定应用程序的运行界面不包含操作区。
第二方面,本申请实施例提供一种应用程序测试装置,包括:
判断模块,用于判断应用程序的运行界面是否包含预设的操作区;第一测试模块,用于若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试。
可选地,该装置还包括:第二测试模块,用于若运行界面不包含操作区,则根据运行界面中的随机坐标,对运行界面进行操作测试。
可选地,该装置还包括:界面标识获取模块和测试方式确定模块;在判断模块判断应用程序的运行界面是否包含预设的操作区之前,界面标识获取模块用于获取运行界面的界面标识,界面标识用于表示运行界面中操作区的占比;测试方式确定模块用于根据界面标识,确定运行界面的测试方式;若测试方式为第一测试方式,则判断模块判断运行界面是否包含操作区;若测试方式为第二测试方式,则第二测试模块根据运行界面中的随机坐标,对运行界面进行操作测试。
可选地,测试方式确定模块,包括:识别概率确定子模块,用于根据界面标识、以及预设的界面标识和识别概率的映射关系,确定界面标识对应的识别概率为运行界面的识别概率;测试方式确定子模块,用于根据运行界面的识别概率,确定运行界面的识别概率对应的测试方式。
可选地,该装置还包括:第一覆盖率获取模块,用于获取运行界面的识别概率对应的应用程序的第一覆盖率;第一调节模块,用于对运行界面的识别概率进行第一调节;第二覆盖率获取模块,用于获取第一调节之后的识别概率对应的应用程序的第二覆盖率;更新模块,用于若第二覆盖率与第一覆盖率的差异小于或等于预设差异值,则根据第一调节之后的识别概率,更新映射关系。
可选地,该装置还包括:第二调节模块;第一调节模块和第二调节模块,共同用于若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于预设差异值。
可选地,第一调节模块,用于若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率大于第一覆盖率,则继续对运行界面的识别概率进行第一调节。
可选地,第二调节模块,用于若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率小于第一覆盖率,则对运行界面的识别概率进行第二调节,第二调节和第一调节分别为不同的调节方式。
可选地,第一调节模块,具体用于将运行界面的识别概率增大N,其中,N大于0;第二调节模块,具体用于将运行界面的识别概率减小N/2。
可选地,第一覆盖率和第二覆盖率均包括:方法覆盖率、行数覆盖率和页面覆盖率。
可选地,该装置还包括:截屏模块和图像选择模块;在判断模块判断应用程序的运行界面是否包含预设的操作区之前,截屏模块用于采用预设帧率对应用程序的运行界面进行截屏,得到运行界面对应的多张截屏图像;图像选择模块用于从多张截屏图像中选择目标截屏图像;
对应的,判断模块,具体用于根据操作区的预设图像,对目标截屏图像进行识别;若目标截屏图像中包含操作区的预设图像,则确定应用程序的运行界面包含操作区;若目标截屏图像中不包含操作区的预设图像,则确定应用程序的运行界面不包含操作区。
第三方面,本申请实施例提供一种应用程序测试设备包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当应用程序测试设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执行如第一方面所述的方法。
第四方面,本申请实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如第一方面所述的方法。
本申请的有益效果是:
本申请实施例通过判断应用程序的运行界面是否包含预设的操作区,若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试,可以大大减少应用程序测试过程中所模拟的用户操作无法作用于有效操作区的情况,从而提高应用程序测试的效率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的应用程序测试方法的流程示意图;
图2示出了本申请实施例提供的应用程序测试方法的另一流程示意图;
图3示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图4示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图5示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图6示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图7示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图8示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图9示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图10示出了本申请实施例提供的运行界面的示意图;
图11示出了本申请实施例提供的应用程序测试方法的又一流程示意图;
图12示出了本申请实施例提供的应用程序测试装置的结构示意图;
图13示出了本申请实施例提供的应用程序测试装置的另一结构示意图;
图14示出了本申请实施例提供的应用程序测试装置的又一结构示意图;
图15示出了本申请实施例提供的测试方式确定模块的结构示意图;
图16示出了本申请实施例提供的应用程序测试装置的又一结构示意图;
图17示出了本申请实施例提供的应用程序测试装置的又一结构示意图;
图18示出了本申请实施例提供的应用程序测试装置的又一结构示意图;
图19示出了本申请实施例提供的应用程序测试设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。在本申请的描述中,还需要说明的是,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请实施例提供一种应用程序测试方法,通过该方法可以APP开发过程中,对APP进行压力测试。该方法可以应用于服务器、计算机等具备数据处理能力的设备,也可以应用于手机、平板电脑等用户终端。例如,可以将APP安装于手机中,通过手机执行该方法以实现对APP的压力测试。对于该方法的执行设备,本申请不作限制。
图1示出了本申请实施例提供的应用程序测试方法的流程示意图。
如图1所示,该应用程序测试方法可以包括:
S101、判断应用程序的运行界面是否包含预设的操作区。
其中,预设的操作区可以是指用户在使用APP的过程中大概率会点击或者经常点击的区域、可操控的UI控件所在区域等。例如,预设的操作区可以是APP用户界面中的“返回”、“发送”、“确定”、“取消”等控件所在的区域。
可选地,判断应用程序的运行界面是否包含预设的操作区可以是指:对于任一个预设的操作区而言,可以判断应用程序的运行界面中是否包含该操作区。以操作区为“返回”为例,可以在应用程序的运行界面中查找是否存在“返回”所在的区域,若存在,则可以确定应用程序的运行界面中包含“返回”操作区。
可选地,当预设有多个操作区时,可以分别判断每个操作区是否包含在应用程序的运行界面中。例如,若存在操作区1、操作区2、操作区3,则可以依次判断应用程序的运行界面中是否包含操作区1、操作区2、以及操作区3。或者,也可以每次从操作区1、操作区2、操作区3中随机抽取一个操作区进行判断等,本申请在此不作限制。
S102、若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试。
可选地,应用程序的运行界面中的每个操作区均有相应的坐标,该坐标可以用于表示操作区在运行界面中的位置。对于某个预设的操作区而言,若判断得知应用程序的运行界面中包含有该操作区时,可以先获取该操作区在运行界面中的坐标,然后根据运行界面中操作区的坐标,对运行界面进行操作测试。
以上述操作区“返回”为例,若判断得到运行界面包含“返回”操作区,则可以获取“返回”操作区在运行界面中的坐标,如:若以运行界面的中心为坐标原点,则“返回”操作区在运行界面中的坐标可以是(a,b),其中,a表示“返回”操作区相对于运行界面的中心的横向距离,b表示“返回”操作区相对于运行界面的中心的纵向距离。然后,可以根据“返回”操作区在运行界面中的坐标,对运行界面进行操作测试。
可选地,根据运行界面中操作区的坐标,对运行界面进行操作测试可以是指:在运行界面中操作区的坐标上模拟用户操作,对APP进行操控,以实现APP压力测试。例如,可以模拟用户在APP上的点击操作、滑动操作、缩放操作等。
一些实施方式中,可以将点击操作、滑动操作、缩放操作等多种不同的模拟用户操作预先进行设置,当模拟用户操作时,可以从上述预设的点击操作、滑动操作、缩放操作等多种不同的模拟用户操作中随机选择其中一个生成操控事件,从而实现对APP的模拟操控,本申请在此对模拟用户操作的方式不作限制。
与现有技术中基于随机坐标实现应用程序测试的方式相比,上述当应用程序的运行界面中包含有用户在使用APP的过程中大概率会点击或者经常点击的区域、可操控的UI控件所在区域等预设的操作区时,根据运行界面中操作区的坐标,对运行界面进行操作测试的方式,可以大大减少应用程序测试过程中所模拟的用户操作无法作用于有效操作区的情况,从而提高应用程序测试的效率。
图2示出了本申请实施例提供的应用程序测试方法的另一流程示意图。
可选地,如图2所示,该应用程序测试方法还可以包括:
S201、若运行界面不包含操作区,则根据运行界面中的随机坐标,对运行界面进行操作测试。
可选地,可以遍历所有预设的操作区,判断运行界面中是否包含有预设的操作区。若遍历完所有预设的操作区,得到运行界面中不包含操作区,则可以随机生成运行界面中的任一个坐标,得到一个随机坐标,然后基于运行界面中的该随机坐标对运行界面进行操作测试。在得到随机坐标后,基于该随机坐标进行操作测试的方式,与前述实施例中所述的基于操作区在运行界面中的坐标对运行界面进行操作测试的方式相同,在此不再赘述。
图3示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图3所示,上述判断应用程序的运行界面是否包含预设的操作区之前,该应用程序测试方法还可以包括:
S301、获取运行界面的界面标识,界面标识用于表示运行界面中操作区的占比。
一种实施方式中,运行界面的界面标识可以由APP开发人员在APP内进行打点,如:可以直接在APP日志中输出一个标记(界面标识)来标记当前跳转的APP运行界面的类型,不同类型的运行界面中操作区的占比可以不同,即界面标识可以用于表示运行界面中操作区的占比。
另一种实施方式中,也可以在页面跳转过程中获取当前运行界面的视图层级和占比,同样输出一个标记作为界面标识等,本申请在此不作限制。
例如,界面标识可以包括标识1和标识2。当运行界面中操作区的占比小于百分之50时,界面标识可以为标识1;当运行界面中操作区的占比大于或等于百分之50时,界面标识可以为标识2。或者,也可以包括标识1、标识2、标识3、标识4…等更多的界面标识,界面标识与运行界面中操作区的占比之间可以具有对应关系,如:标识1对应百分之10,标识2对应百分之20,标识n(n为大于0的整数)对应百分之100等。
S302、根据界面标识,确定运行界面的测试方式。
可选地,不同的界面标识对应不同的测试方式。测试方式可以包括第一测试方式和第二测试方式。其中,第一测试方式可以为步骤S101、S102所述的测试方式;第二测试方式可以为步骤S201所述的测试方式。操作区的占比小于百分之50的运行界面的界面标识可以均对应第一测试方式;操作区的占比大于或等于百分之50的运行界面的界面标识可以均对应第二测试方式。
S303、若测试方式为第一测试方式,则判断运行界面是否包含操作区。
即,若界面标识对应的测试方式为第一测试方式,则以第一测试方式对应用程序进行测试。
S304、若测试方式为第二测试方式,则根据运行界面中的随机坐标,对运行界面进行操作测试。
即,若界面标识对应的测试方式为第二测试方式,则以第二测试方式对应用程序进行测试。
图4示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图4所示,上述根据界面标识,确定运行界面的测试方式,可以包括:
S401、根据界面标识、以及预设的界面标识和识别概率的映射关系,确定界面标识对应的识别概率为运行界面的识别概率。
S402、根据运行界面的识别概率,确定运行界面的识别概率对应的测试方式。
举例说明:
假设界面标识包括“密集页面”和“稀疏页面”两种,其中,操作区占比(即操作区的像素区域面积总和占应用程序运行界面总像素面积的比例)大于或等于百分之50的运行界面对应的界面标识为“密集页面”,操作区占比小于百分之50的运行界面对应的界面标识为“稀疏页面”,则预设的界面标识和识别概率的映射关系可以为:“密集页面”对应的识别概率为30%,“稀疏页面”对应的识别概率为70%。
对于任一运行界面而言,若获取到该运行界面的界面标识为:“稀疏页面”,则基于该界面标识和上述预设的界面标识和识别概率的映射关系,可以确定该运行界面的识别概率为70%,识别概率为70%可以表示对该运行界面采用第一测试方式进行操作测试的概率,即,若对该运行界面测试10次,则其中7次采用第一测试方式,3次采用第二测试方式。然后,可以基于该运行界面的识别概率,确定运行界面的识别概率对应的测试方式。例如,可以基于该运行界面的识别概率,从第一测试方式和第二测试方式中选择其中一种确定为该运行界面的测试方式。
需要说明的是,上述预设的界面标识和识别概率的映射关系中,密集页面”对应的识别概率也可以是20%、25%、35%等其他值,“稀疏页面”对应的识别概率也可以是80%、75%、65%等对应的其他值,本申请在此不作限制。
图5示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图5所示,该应用程序测试方法还可以包括:
S501、获取运行界面的识别概率对应的应用程序的第一覆盖率。
以运行界面的界面标识为“稀疏页面”为例,该运行界面对应的初始化识别概率为70%,则可以先基于该初始化识别概率,连续执行上述应用程序测试算法一段时间(如4小时),然后,获取该运行界面的识别概率对应的APP的第一覆盖率。
第一覆盖率可以包括方法覆盖率、行数覆盖率和页面覆盖率,例如,可以获取APP代码的方法覆盖率、行数覆盖率和页面覆盖率,然后,计算方法覆盖率、行数覆盖率和页面覆盖率的和作为第一覆盖率。
S502、对运行界面的识别概率进行第一调节。
第一调节可以是指:将运行界面的识别概率增大N,其中,N大于0。例如,N可以是2%、5%、6%、7%等值,本申请对N的具体大小不作限制。
以初始化识别概率为70%为例,第一调节之后的识别概率为:70%+N。
S503、获取第一调节之后的识别概率对应的应用程序的第二覆盖率。
与前述步骤S501类似,可以获取第一调节之后的识别概率对应的应用程序的第二覆盖率。
第二覆盖率的计算方式与第一覆盖率相同,在此不再赘述。
S504、若第二覆盖率与第一覆盖率的差异小于或等于预设差异值,则根据第一调节之后的识别概率,更新映射关系。
如上所述,可以计算第二覆盖率与第一覆盖率的差异。例如,若第一覆盖率为x,第二覆盖率为y,则第二覆盖率与第一覆盖率的差异可以为(y-x)的绝对值。若第二覆盖率与第一覆盖率的差异小于或等于预设差异值,如:预设差异值可以是1%、1.5%等值,在此亦不作限制,则可以根据第一调节之后的识别概率,更新映射关系。也即,可以将上述映射关系中界面标识“稀疏页面”对应的识别概率70%更新为70%+N。
图6示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图6所示,该应用程序测试方法还可以包括:
S601、若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于预设差异值。
图7示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图7所示,上述若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,可以包括:
S701、若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率大于第一覆盖率,则继续对运行界面的识别概率进行第一调节。
S702、若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率小于第一覆盖率,则对运行界面的识别概率进行第二调节。
可选地,第二调节和第一调节分别为不同的调节方式。
部分实施方式中,第一调节可以是指如上所述的将运行界面的识别概率增大N,第二调节可以是指将运行界面的识别概率减小N/2。其他实施方式中,第二调节也可以是将运行界面的识别概率减小N/4、N/5、2N、3N等,本申请对此不作限制。
举例说明:
以第一调节为将运行界面的识别概率增大N,第二调节为将运行界面的识别概率减小N/2为例,假设基于运行界面对应的初始化概率所得到的第一覆盖率为x,基于增大N后的识别概率所得到的第二覆盖率为y,第二覆盖率与第一覆盖率的差异为|y-x|,预设差异值为1%,则:
若|y-x|>1%,且y>x,则可以将初始化概率在增大N的基础上,继续增大N重新进行覆盖率的计算;若|y-x|>1%,且y<x,则可以将识别概率减小N/2,然后,重新进行覆盖率的计算,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于1%,结束该迭代计算过程。
采用前述实施例所述的对运行界面对应的识别概率进行调节的方法,对预设的识别概率和界面标识的映射关系进行更新优化,可以保证不同类型和复杂程度的APP测试达到较好的代码覆盖率。
图8示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
可选地,如图8所示,上述判断应用程序的运行界面是否包含预设的操作区之前,该应用程序测试方法还可以包括:
S801、采用预设帧率对应用程序的运行界面进行截屏,得到运行界面对应的多张截屏图像。
其中,预设帧率可以是10帧每秒(Frames Per Second,FPS)~15FPS。
以手机为例,在测试手机APP时,在手机上单独开一个线程持续对手机以预设帧率进行截屏操作,从而实现对APP的运行界面的截屏,得到运行界面对应的多张截屏图像。
S802、从多张截屏图像中选择目标截屏图像。
可选地,目标截屏图像可以是指多张截屏图像中截屏时间最新的图像,例如:若存在10张截屏图像,则目标截屏图像可以是截屏时间最新的3张或5张图像,从而可以获取到最新的截屏图像,以保证获取到的截屏图像可以包括APP的当前运行界面。
图9示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
对应的,如图9所示,上述判断应用程序的运行界面是否包含预设的操作区,可以包括:
S901、根据操作区的预设图像,对目标截屏图像进行识别。
可选地,操作区的预设图像可以是预先设置好的截图,例如,可以是对“返回”、“发送”、“确定”、“取消”等控件所在的区域截图。
举例说明:
图10示出了本申请实施例提供的运行界面的示意图;
若存在一个运行界面如图10(a)所示,操作区的预设图像可以包括如图10(b)所示的“返回”和如图10(c)所示的“发送”。
当获取到如图10(a)所示的运行界面(目标截屏图像)时,可以将如图10(b)所示的“返回”和如图10(c)所示的“发送”,分别与如图10(a)所示的目标截屏图像进行匹配,判断如图10(a)所示的目标截屏图像中是否包含“返回”和“发送”两个操作区的预设图像。
S902、若目标截屏图像中包含操作区的预设图像,则确定应用程序的运行界面包含操作区。
S903、若目标截屏图像中不包含操作区的预设图像,则确定应用程序的运行界面不包含操作区。
可选地,上述步骤S901中,根据操作区的预设图像,对目标截屏图像进行识别时的图像识别逻辑可以是:用开源计算机视觉库(Open SourceComputer Vision Library,openCV)的模板配对matchTemplate)算法的TM_CCOEFF_NORMED模式进行模板匹配,本申请在此不作限制。
下面,本申请以下述具体实施方式对本申请前述实施例提供的应用程序测试方法作以说明:
图11示出了本申请实施例提供的应用程序测试方法的又一流程示意图。
如图11所示,本实施方式中,应用程序测试过程可以如下:
S1110、获取运行界面的界面标识。
S1120、根据界面标识、以及预设的界面标识和识别概率的映射关系,确定界面标识对应的识别概率为运行界面的识别概率。
S1130、根据运行界面的识别概率,判断运行界面的识别概率对应的测试方式是否为第一测试方式。
若是,则执行步骤S1141;若否,则执行步骤S1150。
S1141、采用预设帧率对应用程序的运行界面进行截屏,得到运行界面对应的多张截屏图像。
S1142、从多张截屏图像中选择目标截屏图像。
S1143、判断目标截屏图像中是否包含操作区的预设图像。
若是,则执行步骤S1144;若否,则执行步骤S1150。
S1144、根据运行界面中操作区的坐标,对运行界面进行操作测试。
S1150、根据运行界面中的随机坐标,对运行界面进行操作测试。
本实施方式中所述的应用程序测试过程具有与前述实施例中所述相同的有益效果,在此不再赘述。
可选地,本申请部分实施方式中,当测试手机、电脑等待测终端设备中的APP时,可以将操作区的预设图像存储于服务器中,手机截图后,可以将截图直接发送给服务器,上述步骤S1143中所述的判断目标截屏图像中是否包含操作区的预设图像的过程可以由服务器完成,使得图像识别过程与待测终端设备脱离,以降低待测终端设备的性能消耗。
一些实施方式中,服务器中还可以利用高性能图形处理器(GraphicsProcessingUnit,GPU)多线程执行目标截屏图像中是否包含操作区的预设图像的判断过程,每个线程可以独立识别单个操作区的预设图像,多个线程可以并行执行。假设在开了20个GPU线程的情况下,识别速度可以提高至单线程执行的20倍左右。该实施方式中,即使多个待测终端设备同时运行进行APP测试,也可以保证较高的测试效率。
基于前述方法实施例中所述的应用程序测试方法,本申请实施例还对应提供一种应用程序测试装置,图12示出了本申请实施例提供的应用程序测试装置的结构示意图。
如图12所示,该应用程序测试装置可以包括:判断模块11和第一测试模块12。判断模块11可以用于判断应用程序的运行界面是否包含预设的操作区。第一测试模块12可以用于若运行界面包含操作区,则根据运行界面中操作区的坐标,对运行界面进行操作测试。
图13示出了本申请实施例提供的应用程序测试装置的另一结构示意图。
可选地,如图13所示,该应用程序测试装置还可以包括:第二测试模块13,可以用于若运行界面不包含操作区,则根据运行界面中的随机坐标,对运行界面进行操作测试。
图14示出了本申请实施例提供的应用程序测试装置的又一结构示意图。
可选地,如图14所示,该应用程序测试装置还可以包括:界面标识获取模块14和测试方式确定模块15。在判断模块11判断应用程序的运行界面是否包含预设的操作区之前,界面标识获取模块14可以用于获取运行界面的界面标识,界面标识用于表示运行界面中操作区的占比。测试方式确定模块15可以用于根据界面标识,确定运行界面的测试方式。若测试方式为第一测试方式,则判断模块11可以判断运行界面是否包含操作区;若测试方式为第二测试方式,则第二测试模块13可以根据运行界面中的随机坐标,对运行界面进行操作测试。
图15示出了本申请实施例提供的测试方式确定模块的结构示意图。
可选地,如图15所示,测试方式确定模块15可以包括:识别概率确定子模块151,可以用于根据界面标识、以及预设的界面标识和识别概率的映射关系,确定界面标识对应的识别概率为运行界面的识别概率;测试方式确定子模块152,可以用于根据运行界面的识别概率,确定运行界面的识别概率对应的测试方式。
图16示出了本申请实施例提供的应用程序测试装置的又一结构示意图。
可选地,如图16所示,该应用程序测试装置还可以包括:第一覆盖率获取模块16,可以用于获取运行界面的识别概率对应的应用程序的第一覆盖率;第一调节模块17,可以用于对运行界面的识别概率进行第一调节;第二覆盖率获取模块18,可以用于获取第一调节之后的识别概率对应的应用程序的第二覆盖率;更新模块19,可以用于若第二覆盖率与第一覆盖率的差异小于或等于预设差异值,则根据第一调节之后的识别概率,更新映射关系。
图17示出了本申请实施例提供的应用程序测试装置的又一结构示意图。
可选地,如图17所示,该应用程序测试装置还可以包括:第二调节模块20;第一调节模块17和第二调节模块20,可以共同用于若第二覆盖率与第一覆盖率的差异大于预设差异值,则继续对运行界面的识别概率进行调节,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于预设差异值。
可选地,第一调节模块17可以用于若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率大于第一覆盖率,则继续对运行界面的识别概率进行第一调节。第二调节模块20可以用于若第二覆盖率与第一覆盖率的差异大于预设差异值,且,第二覆盖率小于第一覆盖率,则对运行界面的识别概率进行第二调节,第二调节和第一调节分别为不同的调节方式。
可选地,第一调节模块17具体可以用于将运行界面的识别概率增大N,其中,N大于0;第二调节模块20具体可以用于将运行界面的识别概率减小N/2。
可选地,第一覆盖率和第二覆盖率均可以包括:方法覆盖率、行数覆盖率和页面覆盖率。
图18示出了本申请实施例提供的应用程序测试装置的又一结构示意图。
可选地,如图18所示,该应用程序测试装置还可以包括:截屏模块21和图像选择模块22。在判断模块11判断应用程序的运行界面是否包含预设的操作区之前,截屏模块21可以用于采用预设帧率对应用程序的运行界面进行截屏,得到运行界面对应的多张截屏图像;图像选择模块22可以用于从多张截屏图像中选择目标截屏图像。
对应的,判断模块11具体可以用于根据操作区的预设图像,对目标截屏图像进行识别;若目标截屏图像中包含操作区的预设图像,则确定应用程序的运行界面包含操作区;若目标截屏图像中不包含操作区的预设图像,则确定应用程序的运行界面不包含操作区。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法实施例中方法的对应过程,本申请中不再赘述。
本申请实施例还提供一种应用程序测试设备,图19示出了本申请实施例提供的应用程序测试设备的结构示意图。
如图19所示,该应用程序测试设备可以包括:处理器100、存储介质200和总线(图中未标出),存储介质200存储有处理器100可执行的机器可读指令,当应用程序测试设备运行时,处理器100与存储介质200之间通过总线通信,处理器100执行机器可读指令,以执行如前述方法实施例中所述的应用程序测试方法。具体实现方式和技术效果类似,在此不再赘述。
本申请实施例还提供一种存储介质,存储介质上存储有计算机程序,计算机程序被处理器运行时执行如前述方法实施例中所述的应用程序测试方法。具体实现方式和技术效果类似,在此同样不再赘述。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (12)
1.一种应用程序测试方法,其特征在于,包括:
判断应用程序的运行界面是否包含预设的操作区;
若所述运行界面包含所述操作区,则根据所述运行界面中所述操作区的坐标,对所述运行界面进行操作测试;
所述判断应用程序的运行界面是否包含预设的操作区之前,所述方法还包括:
获取所述运行界面的界面标识,所述界面标识用于表示所述运行界面中操作区的占比;
根据所述界面标识,确定所述运行界面的测试方式;
若所述测试方式为第一测试方式,则判断所述运行界面是否包含所述操作区;
若所述测试方式为第二测试方式,则根据所述运行界面中的随机坐标,对所述运行界面进行操作测试;
所述根据所述界面标识,确定所述运行界面的测试方式,包括:
根据所述界面标识、以及预设的界面标识和识别概率的映射关系,确定所述界面标识对应的识别概率为所述运行界面的识别概率;
根据所述运行界面的识别概率,确定所述运行界面的识别概率对应的测试方式。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述运行界面不包含所述操作区,则根据所述运行界面中的随机坐标,对所述运行界面进行操作测试。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述运行界面的识别概率对应的所述应用程序的第一覆盖率;
对所述运行界面的识别概率进行第一调节;
获取第一调节之后的识别概率对应的所述应用程序的第二覆盖率;
若所述第二覆盖率与所述第一覆盖率的差异小于或等于预设差异值,则根据所述第一调节之后的识别概率,更新所述映射关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第二覆盖率与所述第一覆盖率的差异大于所述预设差异值,则继续对所述运行界面的识别概率进行调节,直至调节后的识别概率对应的覆盖率与调节前的识别概率对应的覆盖率的差异小于或等于所述预设差异值。
5.根据权利要求4所述的方法,其特征在于,所述若所述第二覆盖率与所述第一覆盖率的差异大于所述预设差异值,则继续对所述运行界面的识别概率进行调节,包括:
若所述第二覆盖率与所述第一覆盖率的差异大于所述预设差异值,且,所述第二覆盖率大于所述第一覆盖率,则继续对所述运行界面的识别概率进行所述第一调节。
6.根据权利要求5所述的方法,其特征在于,所述若所述第二覆盖率与所述第一覆盖率的差异大于所述预设差异值,则继续对所述运行界面的识别概率进行调节,还包括:
若所述第二覆盖率与所述第一覆盖率的差异大于所述预设差异值,且,所述第二覆盖率小于所述第一覆盖率,则对所述运行界面的识别概率进行第二调节,所述第二调节和所述第一调节分别为不同的调节方式。
7.根据权利要求6所述的方法,其特征在于,对所述运行界面的识别概率进行所述第一调节,包括:
将所述运行界面的识别概率增大N,其中,N大于0;
对所述运行界面的识别概率进行第二调节,包括:
将所述运行界面的识别概率减小N/2。
8.根据权利要求3-7任一项所述的方法,其特征在于,所述第一覆盖率和所述第二覆盖率均包括:方法覆盖率、行数覆盖率和页面覆盖率。
9.根据权利要求1所述的方法,其特征在于,所述判断应用程序的运行界面是否包含预设的操作区之前,所述方法还包括:
采用预设帧率对所述应用程序的运行界面进行截屏,得到所述运行界面对应的多张截屏图像;
从多张所述截屏图像中选择目标截屏图像;
对应的,所述判断应用程序的运行界面是否包含预设的操作区,包括:
根据所述操作区的预设图像,对所述目标截屏图像进行识别;
若所述目标截屏图像中包含所述操作区的预设图像,则确定所述应用程序的运行界面包含所述操作区;
若所述目标截屏图像中不包含所述操作区的预设图像,则确定所述应用程序的运行界面不包含所述操作区。
10.一种应用程序测试装置,其特征在于,包括:
判断模块,用于判断应用程序的运行界面是否包含预设的操作区;
第一测试模块,用于若所述运行界面包含所述操作区,则根据所述运行界面中所述操作区的坐标,对所述运行界面进行操作测试;
界面标识获取模块,用于获取所述运行界面的界面标识,所述界面标识用于表示所述运行界面中操作区的占比;
测试方式确定模块,用于根据所述界面标识,确定所述运行界面的测试方式;
若所述测试方式为第一测试方式,则所述判断模块,还用于判断所述运行界面是否包含所述操作区;
若所述测试方式为第二测试方式,则第二测试模块,用于根据所述运行界面中的随机坐标,对所述运行界面进行操作测试;
其中,所述测试方式确定模块,包括:识别概率确定子模块,用于根据所述界面标识、以及预设的界面标识和识别概率的映射关系,确定所述界面标识对应的识别概率为所述运行界面的识别概率;
所述测试方式确定子模块,还用于根据所述运行界面的识别概率,确定所述运行界面的识别概率对应的测试方式。
11.一种应用程序测试设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的机器可读指令,当应用程序测试设备运行时,所述处理器与所述存储介质之间通过所述总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1-9任一项所述的方法。
12.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-9任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093383.7A CN111274152B (zh) | 2020-02-14 | 2020-02-14 | 应用程序测试方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010093383.7A CN111274152B (zh) | 2020-02-14 | 2020-02-14 | 应用程序测试方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111274152A CN111274152A (zh) | 2020-06-12 |
CN111274152B true CN111274152B (zh) | 2022-05-31 |
Family
ID=70999555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010093383.7A Active CN111274152B (zh) | 2020-02-14 | 2020-02-14 | 应用程序测试方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111274152B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656286A (zh) * | 2021-07-27 | 2021-11-16 | 厦门雅基软件有限公司 | 软件测试方法、装置、电子设备及可读存储介质 |
CN113821447B (zh) * | 2021-10-18 | 2023-05-12 | 四川虹美智能科技有限公司 | Ui随机测试方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569938A (zh) * | 2016-10-27 | 2017-04-19 | 厦门美图之家科技有限公司 | 应用程序的压力测试方法和装置 |
CN109117358A (zh) * | 2017-06-23 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 用于电子设备的测试方法和测试装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050049814A1 (en) * | 2003-08-26 | 2005-03-03 | Ramchandani Mahesh A. | Binding a GUI element to a control in a test executive application |
-
2020
- 2020-02-14 CN CN202010093383.7A patent/CN111274152B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106569938A (zh) * | 2016-10-27 | 2017-04-19 | 厦门美图之家科技有限公司 | 应用程序的压力测试方法和装置 |
CN109117358A (zh) * | 2017-06-23 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 用于电子设备的测试方法和测试装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111274152A (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109034397B (zh) | 模型训练方法、装置、计算机设备及存储介质 | |
CN106951346B (zh) | 一种响应时间的测试方法和装置 | |
CN114186632B (zh) | 关键点检测模型的训练方法、装置、设备、存储介质 | |
CN111274152B (zh) | 应用程序测试方法、装置、设备及存储介质 | |
CN116228867B (zh) | 位姿确定方法、装置、电子设备、介质 | |
CN113537374A (zh) | 一种对抗样本生成方法 | |
US10675538B2 (en) | Program, electronic device, system, and method for determining resource allocation for executing rendering while predicting player's intent | |
KR20210065901A (ko) | 이미지에서의 키 포인트 위치의 인식 방법, 장치, 전자기기 및 매체 | |
CN114003160A (zh) | 数据可视化展示方法、装置、计算机设备和存储介质 | |
CN113657518B (zh) | 训练方法、目标图像检测方法、装置、电子设备以及介质 | |
CN112308145A (zh) | 一种分类网络训练方法、分类方法、装置以及电子设备 | |
CN111523467A (zh) | 人脸跟踪方法和装置 | |
CN114445545A (zh) | 一种渲染引擎的测试方法、装置、设备、系统和介质 | |
CN108921138B (zh) | 用于生成信息的方法和装置 | |
CN112835807B (zh) | 界面识别方法、装置、电子设备和存储介质 | |
CN112634408A (zh) | 一种素材选择方法、系统、装置及存储介质 | |
CN117274370A (zh) | 三维位姿确定方法、装置、电子设备和介质 | |
CN115934179B (zh) | 业务功能控制方法及设备 | |
US20220383616A1 (en) | Information processing apparatus and image processing method | |
CN115601555A (zh) | 图像处理方法及装置、设备和介质 | |
CN114863008A (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN111507944B (zh) | 皮肤光滑度的确定方法、装置和电子设备 | |
CN114842476A (zh) | 水印检测方法及装置、模型训练方法及装置 | |
CN115641542B (zh) | 一种数据的处理方法、装置以及存储介质 | |
US20230118460A1 (en) | Segmenting and removing objects from media items |
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 |