CN110633196A - 应用程序的自动化用例执行方法和装置 - Google Patents
应用程序的自动化用例执行方法和装置 Download PDFInfo
- Publication number
- CN110633196A CN110633196A CN201810645842.0A CN201810645842A CN110633196A CN 110633196 A CN110633196 A CN 110633196A CN 201810645842 A CN201810645842 A CN 201810645842A CN 110633196 A CN110633196 A CN 110633196A
- Authority
- CN
- China
- Prior art keywords
- popup
- authority
- permission
- user interface
- use case
- 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.)
- Pending
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
Abstract
本发明实施例提出一种应用程序的自动化用例执行方法和装置。其中,该方法包括:根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。本发明实施例根据权限文本库中的各权限弹窗的文案,关闭自动化用例执行时出现的权限弹窗,能够在执行自动化用例过程中解决各种不确定的权限弹窗造成自动化用例失败的问题,减少由于权限弹窗遮挡而造成用例执行不成功的情况,提升自动化测试的稳定性。
Description
技术领域
本发明实施例涉及应用程序测试领域,尤其是一种应用程序的自动化用例执行方法和装置。
背景技术
在安卓(android)和IOS的UI(User Interface,用户界面)自动化过程中,会出现一些权限申请的弹窗。例如,请求开启位置的弹窗、请求读取联系人的弹窗、请求使用电话权限的弹窗等。
由于android、IOS高版本的系统对于系统权限的控制越来越严,基本上需要用到的权限就要通过弹窗向用户申请,所以弹窗的时机在自动化过程中也是不可预知的。这些弹窗会遮盖自动化用例执行所显示的用户界面中的某些控件,造成自动化用例在执行的过程中找不到这些控件,造成用例执行不稳定的问题。
发明内容
本发明实施例提供一种应用程序的自动化用例执行方法和装置,以至少解决现有技术中的一个或多个技术问题。
第一方面,本发明实施例提供了一种应用程序的自动化用例执行方法,其特征在于,包括:
根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
在一种可能的实现方式中,该方法还包括:
预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
在一种可能的实现方式中,该方法还包括:
统计各种类型的权限弹窗的文案在多个自动化用例执行过程中分别对应的命中次数;
按照各种类型的权限弹窗的文案分别对应的命中次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中按照各文案对应的命中次数从高到低排序。
在一种可能的实现方式中,该方法还包括:
在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则触发权限弹窗校验。
在一种可能的实现方式中,该方法还包括:
在应用程序启动时,触发权限弹窗校验。
在一种可能的实现方式中,该方法还包括:
在执行自动化用例的每个步骤之前,触发权限弹窗校验。
在一种可能的实现方式中,根据权限文本库中的各权限弹窗的文案,判断当前的用户界面是否包括权限弹窗,包括:
根据权限文本库中各权限弹窗的文案构造可扩展标记语言路径XPath规则,根据所述XPath规则遍历用户界面的页面元素;
如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
在一种可能的实现方式中,该方法还包括:
如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
第二方面,本发明实施例提供了一种应用程序的自动化用例执行装置,包括:
判断模块,用于根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
关闭模块,用于如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
在一种可能的实现方式中,该装置还包括:
建立模块,用于预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
在一种可能的实现方式中,该装置还包括:
统计模块,用于统计各种类型的权限弹窗的文案在多个自动化用例执行过程中分别对应的命中次数;
更新模块,用于按照各种类型的权限弹窗的文案分别对应的命中次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中按照各文案对应的命中次数从高到低排序。
在一种可能的实现方式中,该装置还包括:
第一触发模块,用于在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则触发所述判断模块开始权限弹窗校验。
在一种可能的实现方式中,该装置还包括:
第二触发模块,用于在应用程序启动时,触发所述判断模块开始权限弹窗校验。
在一种可能的实现方式中,该装置还包括:
第三触发模块,用于在执行自动化用例的每个步骤之前,触发所述判断模块开始权限弹窗校验。
在一种可能的实现方式中,所述判断模块还包括:
遍历子模块,用于根据权限文本库中各权限弹窗的文案构造可扩展标记语言路径XPath规则,根据所述XPath规则遍历用户界面的页面元素;
第一判定子模块,用于如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
第二判定子模块,用于如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
在一种可能的实现方式中,该装置还包括:
失败模块,用于如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
第三方面,本发明实施例提供了一种应用程序的自动化用例执行装置,所述装置的功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
所述装置的结构中包括处理器和存储器,所述存储器用于存储支持该装置执行上述方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。所述装置还可以包括通信接口,用于所述装置与其他设备或通信网络通信。
第四方面,本发明实施例提供了一种计算机可读存储介质,用于存储应用程序的自动化用例执行装置所用的计算机软件指令,其包括用于执行上述方法所涉及的程序。
上述技术方案具有如下优点或有益效果:能够在执行自动化用例过程中解决各种不确定的权限弹窗造成自动化用例失败的问题,减少由于权限弹窗遮挡而造成用例执行不成功的情况,提升自动化测试的稳定性。
进一步地,通过自动触发权限弹窗校验,可以降低用例编写的难度,用例编写者不用再考虑权限弹窗的影响。
另外,基于加权的权限文本库排序,能更好的节省用例执行的时间,提升自动化测试的效率。
上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本发明实施例进一步的方面、实施方式和特征将会是容易明白的。
附图说明
在附图中,除非另外规定,否则贯穿多个附图相同的附图标记表示相同或相似的部件或元素。这些附图不一定是按照比例绘制的。应该理解,这些附图仅描绘了根据本发明实施例公开的一些实施方式,而不应将其视为是对本发明实施例范围的限制。
图1示出根据本发明实施例的应用程序的自动化用例执行方法的流程图。
图2示出根据本发明实施例的应用程序的自动化用例执行方法的流程图。
图3示出根据本发明实施例的应用程序的自动化用例执行方法中权限弹窗的示意图。
图4示出根据本发明实施例的应用程序的自动化用例执行方法的应用示例的流程图。
图5示出根据本发明实施例应用程序的自动化用例执行装置的结构框图。
图6示出根据本发明实施例应用程序的自动化用例执行装置的结构框图。
图7示出根据本发明实施例应用程序的自动化用例执行装置的结构框图。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明实施例的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
图1示出根据本发明实施例的应用程序的自动化用例执行方法的流程图。如图1所示,该方法包括以下弹窗校验的步骤:
步骤101、根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
步骤102、如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
在终端设备例如手机、平板电脑等的操作系统例如安卓或IOS系统中可以安装各种应用程序(Application,APP)。这些应用程序,可以通过自动化测试工具例如Appium等进行UI自动化测试。在UI自动化测试过程中,可能出现各种权限弹窗。权限弹窗用于显示应用程序请求用户开启的各种权限,也可以称为系统弹窗。例如,电话权限、读取联系人权限、定位权限、存储权限、话筒控制权限等。如图3所示,为一种权限弹窗的示例。在该示例中,通过权限弹窗显示“某学习”的应用程序请求使用电话权限,询问用户是否允许为该应用程序开启该权限。
在一种可能的实现方式中,如图2所示,该方法还包括:
步骤103、如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
如果执行失败,终端设备可以生成自动化用例执行失败的截图,并向UI自动化测试的控制端返回测试结果。
在一种可能的实现方式中,如图2所示,该方法还包括:
步骤201、预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
在本发明实施例中,可以预先根据各权限弹窗的文案封装得到权限文本库。在权限文本库中保存各权限弹窗的文案。例如,分别保存电话权限、读取联系人权限、定位权限、存储权限、话筒控制权限等对应的文案。如果权限弹窗的类型发生了变化,可以增加或删除权限文本库中的权限弹窗的文案,因此可扩展性好。
在一种可能的实现方式中,如图2所示,该方法还包括:
步骤202、统计各种类型的权限弹窗的文案在多个自动化用例执行过程中分别对应的命中次数;
步骤203、按照各种类型的权限弹窗的文案分别对应的命中次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中按照各文案对应的命中次数从高到低排序。
在需要校验当前的用户页面是否包括权限弹窗时,可以依次按照权限文本库每个权限弹窗的文案遍历用户页面的页面元素,以判断该用户页面是否被权限弹窗遮挡。在权限文本库中可以按照权限弹窗文案各自的命中次数进行排序,将命中次数多的排在前面。这样可以先利用出现概率大的权限弹窗进行校验,有利于提升权限弹窗提前命中的概率,节省遍历权限弹窗文案匹配的时间和次数,从而节省用例执行的时间,提升用例执行的效率。
在一种可能的实现方式中,根据权限文本库中的各权限弹窗的文案,判断当前的用户界面是否包括权限弹窗,包括:
根据权限文本库中各权限弹窗的文案构造可扩展标记语言路径(XPath)规则,根据所述XPath规则遍历用户界面的页面元素;
如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
例如,每次从权限文本库中读取一个权限弹窗的文案,构造XPath规则,遍历用户界面的页面元素是否有与该XPath规则对应的XPath控件。如果有,则表示遍历到了匹配的页面元素。如果没有,可以读取下一个权限弹窗的文案,继续进行遍历。如果遍历到匹配的页面元素,就停止遍历。或者,利用权限文本库中所有的权限弹窗的文案都遍历了用户界面的页面元素之后停止遍历。
在本发明实施例中,可以采用多种方式判断是否需要校验权限弹窗。
方式一、根据自动化用例的每一步的执行结果自动触发权限弹窗校验。如果用例的当前步骤执行成功,继续执行下一步。如果用例的当前步骤执行不成功,校验是否与权限弹窗有关。
采用该方式,在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则执行步骤101触发权限弹窗校验,根据所述权限文本库中的各权限弹窗的文案,判断当前的用户界面是否包括权限弹窗;如果权限弹窗校验的结果是所述用户界面包括权限弹窗,执行步骤102关闭所述权限弹窗后,再重新执行所述测试用例的当前步骤。
也就是说,在用例首次执行失败时,可以自动启动利用权限文本库遍历权限弹窗的过程。举例而言,如图4所示,该方法可以包括:首先,判断自动化用例是否执行结束(步骤401)。如果没有执行结束,则继续执行自动化用例(步骤402)。在执行该用例的某个步骤时,如果某个页面元素例如控件找不到,则该步骤执行不成功(步骤403)。利用权限文本库中各权限弹窗的文案,判断是否是当前的用户界面是否具有权限弹窗(步骤404)。如果当前的用户界面具有权限弹窗,则关闭该权限弹窗(步骤405),再去执行该用例之前的那个步骤。如果当前的用户界面不具有权限弹窗,则表示该页面元素确实找不到,可以判定该用例执行失败(步骤405),生成用例执行失败的结果。
方式二、在应用程序启动时自动触发权限弹窗校验。
采用该方式,在应用程序启动时,执行步骤101自动触发权限弹窗校验,根据所述权限文本库中的各权限弹窗的文案,判断所述用户界面是否包括权限弹窗;如果权限弹窗校验的结果是所述用户界面包括权限弹窗,执行步骤102关闭所述权限弹窗后,开始执行所述自动化用例。
方式三、在执行自动化用例的每个步骤之前,自动触发权限弹窗校验。
采用该方式,在执行自动化用例的每个步骤之前,先执行步骤101自动触发权限弹窗校验,根据权限文本库中的各权限弹窗的文案,判断所述用户界面是否包括权限弹窗;如果权限弹窗校验的结果是所述用户界面包括权限弹窗,执行步骤102关闭所述权限弹窗后,再执行所述自动化用例的步骤。
本发明实施例的应用程序的自动化用例执行方法,根据权限文本库中的各权限弹窗的文案,关闭自动化用例执行时出现的权限弹窗,能够在执行自动化用例过程中解决各种不确定的权限弹窗造成自动化用例失败的问题,减少由于权限弹窗遮挡而造成用例执行不成功的情况,提升自动化测试的稳定性。
进一步地,通过自动触发权限弹窗校验,可以降低用例编写的难度,用例编写者不用再考虑权限弹窗的影响。
另外,基于加权的权限文本库排序,能更好的节省用例执行的时间,提升自动化测试的效率。
图5示出根据本发明实施例应用程序的自动化用例执行装置的结构框图。如图5所示,该装置可以包括:
判断模块51,用于根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
关闭模块53,用于如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
在一种可能的实现方式中,所述判断模块51包括:第一判断子模块,用于在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则根据所述权限文本库中的各权限弹窗的文案,判断当前的用户界面是否包括权限弹窗;
所述关闭模块53包括:第一关闭子模块,用于关闭所述权限弹窗后,再重新执行所述当前步骤。
在一种可能的实现方式中,所述判断模块51还包括:
遍历子模块,用于根据权限文本库中各权限弹窗的文案构造XPath规则,根据所述XPath规则遍历用户界面的页面元素;
第一判定子模块,用于如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
第二判定子模块,用于如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
在一种可能的实现方式中,如图6所示,该装置还包括:
建立模块55,用于预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
在一种可能的实现方式中,如图6所示,该装置还包括:
统计模块57,用于统计各种类型的权限弹窗在多个自动化用例执行过程中出现的次数;
更新模块58,用于按照各种类型的权限弹窗出现的次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中各文案按照所对应的权限弹窗出现的次数从高到低排序。
在一种可能的实现方式中,如图6所示,该装置还包括:
失败模块59,用于如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
在一种可能的实现方式中,该装置还包括:
第一触发模块61,用于在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则触发所述判断模块开始权限弹窗校验。
在一种可能的实现方式中,该装置还包括:
第二触发模块63,用于在应用程序启动时,触发所述判断模块开始权限弹窗校验。
在一种可能的实现方式中,该装置还包括:
第三触发模块65,用于在执行自动化用例的每个步骤之前,触发所述判断模块开始权限弹窗校验。
本发明实施例各装置中的各模块的功能可以参见上述方法中的对应描述,在此不再赘述。
图7示出根据本发明一实施例的应用程序的自动化用例执行装置的结构框图。如图7所示,该装置包括:存储器910和处理器920,存储器910内存储有可在处理器920上运行的计算机程序。所述处理器920执行所述计算机程序时实现上述实施例中的应用程序的自动化用例执行方法。所述存储器910和处理器920的数量可以为一个或多个。
该装置还包括:
通信接口930,用于与外界设备进行通信,进行数据交互传输。
存储器910可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
如果存储器910、处理器920和通信接口930独立实现,则存储器910、处理器920和通信接口930可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,PeripheralComponent)总线或扩展工业标准体系结构(EISA,Extended Industry StandardComponent)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
可选的,在具体实现上,如果存储器910、处理器920及通信接口930集成在一块芯片上,则存储器910、处理器920及通信接口930可以通过内部接口完成相互间的通信。
本发明实施例提供了一种计算机可读存储介质,其存储有计算机程序,该程序被处理器执行时实现上述实施例中任一所述的方法。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明实施例的至少一个实施例或示例中。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或隐含地包括至少一个该特征。在本发明实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明实施例的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明实施例的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明实施例的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明实施例各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读存储介质中。所述存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅为本发明实施例的具体实施方式,但本发明实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明实施例揭露的技术范围内,可轻易想到其各种变化或替换,这些都应涵盖在本发明实施例的保护范围之内。因此,本发明实施例的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种应用程序的自动化用例执行方法,其特征在于,包括:
根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
2.根据权利要求1所述的方法,其特征在于,还包括:
预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
3.根据权利要求2所述的方法,其特征在于,还包括:
统计各种类型的权限弹窗的文案在多个自动化用例执行过程中分别对应的命中次数;
按照各种类型的权限弹窗的文案分别对应的命中次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中按照各文案对应的命中次数从高到低排序。
4.根据权利要求1所述的方法,其特征在于,还包括:
在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则触发权限弹窗校验。
5.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
在应用程序启动时,触发权限弹窗校验。
6.根据权利要求1至3中任一项所述的方法,其特征在于,
在执行自动化用例的每个步骤之前,触发权限弹窗校验。
7.根据权利要求1至3中任一项所述的方法,其特征在于,根据权限文本库中的各权限弹窗的文案,判断当前的用户界面是否包括权限弹窗,包括:
根据权限文本库中各权限弹窗的文案构造可扩展标记语言路径XPath规则,根据所述XPath规则遍历用户界面的页面元素;
如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
8.根据权利要求1至3中任一项所述的方法,其特征在于,还包括:
如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
9.一种应用程序的自动化用例执行装置,其特征在于,包括:
判断模块,用于根据权限文本库中的各权限弹窗的文案,判断执行自动化用例的用户界面是否包括权限弹窗;
关闭模块,用于如果所述用户界面包括权限弹窗,则关闭所述权限弹窗后,再执行所述自动化用例。
10.根据权利要求9所述的装置,其特征在于,还包括:
建立模块,用于预先建立权限文本库,所述权限文本库包括各种类型的权限弹窗的文案。
11.根据权利要求10所述的装置,其特征在于,还包括:
统计模块,用于统计各种类型的权限弹窗的文案在多个自动化用例执行过程中分别对应的命中次数;
更新模块,用于按照各种类型的权限弹窗的文案分别对应的命中次数,更新权限文本库中各种类型的权限弹窗的文案的排序,其中,所述权限文本库中按照各文案对应的命中次数从高到低排序。
12.根据权利要求9至11中任一项所述的装置,其特征在于,还包括:
第一触发模块,用于在执行自动化用例的当前步骤时,如果出现在所述用户界面中无法找到页面元素的状态,则触发所述判断模块开始权限弹窗校验。
13.根据权利要求9至11中任一项所述的装置,其特征在于,还包括:
第二触发模块,用于在应用程序启动时,触发所述判断模块开始权限弹窗校验。
14.根据权利要求9至11中任一项所述的装置,其特征在于,还包括:
第三触发模块,用于在执行自动化用例的每个步骤之前,触发所述判断模块开始权限弹窗校验。
15.根据权利要求9至11中任一项所述的装置,其特征在于,所述判断模块还包括:
遍历子模块,用于根据权限文本库中各权限弹窗的文案构造可扩展标记语言路径XPath规则,根据所述XPath规则遍历用户界面的页面元素;
第一判定子模块,用于如果遍历到匹配的页面元素,则判定所述用户界面包括权限弹窗;
第二判定子模块,用于如果未遍历到匹配的页面元素,则判定所述用户界面不包括权限弹窗。
16.根据权利要求9至11中任一项所述的装置,其特征在于,还包括:
失败模块,用于如果所述用户界面不包括权限弹窗,则生成所述自动化用例执行失败的结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810645842.0A CN110633196A (zh) | 2018-06-21 | 2018-06-21 | 应用程序的自动化用例执行方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810645842.0A CN110633196A (zh) | 2018-06-21 | 2018-06-21 | 应用程序的自动化用例执行方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633196A true CN110633196A (zh) | 2019-12-31 |
Family
ID=68966838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810645842.0A Pending CN110633196A (zh) | 2018-06-21 | 2018-06-21 | 应用程序的自动化用例执行方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633196A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559338A (zh) * | 2020-12-11 | 2021-03-26 | 北京百度网讯科技有限公司 | 应用程序的校验方法、装置、设备及存储介质 |
CN112742026A (zh) * | 2020-03-17 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 游戏控制方法、装置、存储介质和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283764A1 (en) * | 2004-04-28 | 2005-12-22 | Leo Chiu | Method and apparatus for validating a voice application |
CN104462950A (zh) * | 2014-12-17 | 2015-03-25 | 中国人民解放军国防科学技术大学 | 一种用于操作系统的应用程序执行权限控制方法 |
CN105573911A (zh) * | 2015-12-10 | 2016-05-11 | 北京奇虎科技有限公司 | 一种应用弹窗的处理方法和装置 |
CN106066793A (zh) * | 2016-05-27 | 2016-11-02 | 努比亚技术有限公司 | 标记语言生成装置及方法 |
-
2018
- 2018-06-21 CN CN201810645842.0A patent/CN110633196A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050283764A1 (en) * | 2004-04-28 | 2005-12-22 | Leo Chiu | Method and apparatus for validating a voice application |
CN104462950A (zh) * | 2014-12-17 | 2015-03-25 | 中国人民解放军国防科学技术大学 | 一种用于操作系统的应用程序执行权限控制方法 |
CN105573911A (zh) * | 2015-12-10 | 2016-05-11 | 北京奇虎科技有限公司 | 一种应用弹窗的处理方法和装置 |
CN106066793A (zh) * | 2016-05-27 | 2016-11-02 | 努比亚技术有限公司 | 标记语言生成装置及方法 |
Non-Patent Citations (2)
Title |
---|
@QINYUN: "从 0 开始构建 Android 通用脚本测试解决方案", 《HTTPS://WWW.ZYBULUO.COM/QINYUN/NOTE/938063》 * |
OSC_E2112IAC: "appium+python自动化47-首次打开app权限弹窗问题", 《HTTPS://MY.OSCHINA.NET/U/4370390/BLOG/3970512》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112742026A (zh) * | 2020-03-17 | 2021-05-04 | 腾讯科技(深圳)有限公司 | 游戏控制方法、装置、存储介质和电子设备 |
CN112559338A (zh) * | 2020-12-11 | 2021-03-26 | 北京百度网讯科技有限公司 | 应用程序的校验方法、装置、设备及存储介质 |
CN112559338B (zh) * | 2020-12-11 | 2024-02-06 | 北京百度网讯科技有限公司 | 应用程序的校验方法、装置、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108073519B (zh) | 测试用例生成方法和装置 | |
CN109062809B (zh) | 一种线上测试用例生成方法、装置及电子设备 | |
CN105573911A (zh) | 一种应用弹窗的处理方法和装置 | |
CN106326120B (zh) | 一种应用软件的回归测试方法及装置、电子设备 | |
CN110866258B (zh) | 快速定位漏洞方法、电子装置及存储介质 | |
CN104850427B (zh) | 一种代码升级方法及装置 | |
CN110554962A (zh) | 回归测试的流程覆盖方法、服务器及计算机可读存储介质 | |
CN109684795B (zh) | 应用程序反调试的方法、装置及电子设备 | |
CN111615688A (zh) | 一种断言验证代码绑定方法及装置 | |
CN110633196A (zh) | 应用程序的自动化用例执行方法和装置 | |
CN110704311B (zh) | 一种应用程序测试方法、装置、电子设备及可读存储介质 | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
Usman et al. | Test case generation from android mobile applications focusing on context events | |
CN112818331A (zh) | 一种adb工具加密控制方法、装置、设备及存储介质 | |
CN110889116B (zh) | 一种广告拦截方法、装置及电子设备 | |
CN109684205B (zh) | 系统测试方法、装置、电子设备及存储介质 | |
CN112216337A (zh) | 固件参数检测方法、装置及固件设置方法 | |
CN110580221A (zh) | 控件测试方法、装置、存储介质及电子设备 | |
CN109144874A (zh) | 一种测试环境的监测方法和装置 | |
CN107291618B (zh) | 应用存储方法、装置及终端设备 | |
CN109165127B (zh) | 问题接口的定位方法、装置及电子设备 | |
CN111258899A (zh) | 用例生成方法、装置、电子设备和计算机可读存储介质 | |
CN111309598A (zh) | 一种测试用例执行环境恢复方法、系统、终端及存储介质 | |
US20150095373A1 (en) | String generation tool | |
CN108881585B (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191231 |