CN112131111A - 一种对页面进行自动化测试的方法、装置和存储介质 - Google Patents
一种对页面进行自动化测试的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN112131111A CN112131111A CN202010998381.2A CN202010998381A CN112131111A CN 112131111 A CN112131111 A CN 112131111A CN 202010998381 A CN202010998381 A CN 202010998381A CN 112131111 A CN112131111 A CN 112131111A
- Authority
- CN
- China
- Prior art keywords
- page
- tested
- visible
- queue
- visible operation
- 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
- 238000012360 testing method Methods 0.000 title claims abstract description 89
- 238000000034 method Methods 0.000 title claims abstract description 62
- 238000001914 filtration Methods 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 18
- 230000000694 effects Effects 0.000 claims description 44
- 230000002159 abnormal effect Effects 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000003973 paint Substances 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
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
技术领域
本申请涉及互联网技术领域,尤其涉及一种对页面进行自动化测试的方法、装置和存储介质。
背景技术
用户界面(User Interface,UI)自动化测试是对应用程序进行测试的一种非常重要的辅助手段。利用自动化测试技术代替手工测试,对于提高测试效率、降低回归测试成本具有很大的作用。然而传统的UI自动化实现方案,在提供便利的同时,也产生了很高的维护成本。一般地,传统的UI自动化测试模式,每一步必须预先声名明确的操作元素,每个测试用例都是由一系列固定的操作步骤组成。这就使得在APP界面产生较大变化时,测试用例必须进行全面的修改以匹配最新界面,维护成本巨大,因此导致自动化用例规模受限,很难做到对APP界面的全覆盖。
发明内容
本申请实施例提供了一种对页面进行自动化测试的方法,克服了进行页面测试时测试样例需要重新声明的问题。
该方法包括:
加载待测试页面;
遍历所述待测试页面,读取所述待测试页面上的可见操作元素,并获取所述可见操作元素的包名属性,基于所述包名属性,过滤不属于所述待测试页面的所述可见操作元素;
遍历已经生成的待操作队列中包含的所述可见操作元素,并与当前的所述可见操作元素进行对比,在所述待操作队列中不存在当前的所述可见操作元素时,将所述可见操作元素放入待操作队列;
对在所述待操作队列中的所述可见操作元素执行对应的操作,并将已经完成操作的所述可见操作元素放入已执行操作队列;
当所述待操作队列为空时,基于所述已执行操作队列中的所述可见操作元素,生成所述待测试页面对应的测试报告。
可选地,对在所述待操作队列中的所述可见操作元素执行对应的操作;
获取所述可见操作元素所在的所述待测试页面的第一活动类名,以及所述可见操作元素在执行完操作后的显示页面的第二活动类名;
当所述第一活动类名和所述第二活动类名不一致时,判断所述待测试页面是否已经遍历结束,并将遍历结束的所述显示页面对应的所述可操作元素放入已执行操作队列中。
可选地,在对所述可见操作元素执行完成对应的操作后,在所述待操作队列中查找是否存在与已执行完所述操作的所述可见操作元素属于同一所述第一活动类名的所述可见操作元素,并当不存在时,确定当前的所述待测试页面已经遍历结束。
可选地,在对所述可见操作元素执行对应的操作的过程中,获取所述待测试页面上执行的所述操作的数量和各个所述操作对应的操作内容截图;
记录所述待测试页面上的异常信息;
将至少一个所述待测试页面中的至少一个所述可见操作元素的所述操作内容截图和所述异常信息,以及所述待测试页面所在应用程序的版本号信息和测试时间段进行关联,生成所述待测试页面对应的测试报告。
可选地,基于所述待测试页面的所述第一活动类名,当所述第一活动类名携带黑名单页面标识时,过滤所述待测试页面。
可选地,基于所述可见操作元素的所述包名属性,当所述包名属性携带黑名单元素标识时,过滤所述可见操作元素。
在本发明的另一个实施例中,提供了一种对页面进行自动化测试的装置,该装置包括:
加载模块,用于加载待测试页面;
第一遍历模块,用于遍历所述待测试页面,读取所述待测试页面上的可见操作元素,并获取所述可见操作元素的包名属性,基于所述包名属性,过滤不属于所述待测试页面的所述可见操作元素;
第二遍历模块,用于遍历已经生成的待操作队列中包含的所述可见操作元素,并与当前的所述可见操作元素进行对比,在所述待操作队列中不存在当前的所述可见操作元素时,将所述可见操作元素放入待操作队列;
执行模块,用于对在所述待操作队列中的所述可见操作元素执行对应的操作,并将已经完成操作的所述可见操作元素放入已执行操作队列;
生成模块,用于当所述待操作队列为空时,基于所述已执行操作队列中的所述可见操作元素,生成所述待测试页面对应的测试报告。
可选地,所述执行模块包括:
执行单元,用于对在所述待操作队列中的所述可见操作元素执行对应的操作;
第一获取单元,用于获取所述可见操作元素所在的所述待测试页面的第一活动类名,以及所述可见操作元素在执行完操作后的显示页面的第二活动类名;
判断单元,用于当所述第一活动类名和所述第二活动类名不一致时,判断所述待测试页面是否已经遍历结束,并将遍历结束的所述显示页面对应的所述可操作元素放入已执行操作队列中。
可选地,所述判断单元还用于:
在对所述可见操作元素执行完成对应的操作后,在所述待操作队列中查找是否存在与已执行完所述操作的所述可见操作元素属于同一所述第一活动类名的所述可见操作元素,并当不存在时,确定当前的所述待测试页面已经遍历结束。
可选地,所述生成模块包括:
第二获取单元,用于在对所述可见操作元素执行对应的操作的过程中,获取所述待测试页面上执行的所述操作的数量和各个所述操作对应的操作内容截图;
记录单元,用于记录所述待测试页面上的异常信息;
生成单元,用于将至少一个所述待测试页面中的至少一个所述可见操作元素的所述操作内容截图和所述异常信息,以及所述待测试页面所在应用程序的版本号信息和测试时间段进行关联,生成所述待测试页面对应的测试报告。
可选地,所述装置进一步包括:
第一过滤模块,用于基于所述待测试页面的所述第一活动类名,当所述第一活动类名携带黑名单页面标识时,过滤所述待测试页面。
可选地,所述装置进一步包括:
第二过滤模块,用于基于所述可见操作元素的所述包名属性,当所述包名属性携带黑名单元素标识时,过滤所述可见操作元素。
在本发明的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述一种对页面进行自动化测试的方法中的各个步骤。
在本发明的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种对页面进行自动化测试的方法中的各个步骤。
基于上述实施例,首先加载待测试页面,其次,遍历待测试页面,读取待测试页面上的可见操作元素,并获取可见操作元素的包名属性,基于包名属性,过滤不属于待测试页面的可见操作元素,进一步地,遍历已经生成的待操作队列中包含的可见操作元素,并与当前的可见操作元素进行对比,在待操作队列中不存在当前的可见操作元素时,将可见操作元素放入待操作队列,然后,对在待操作队列中的可见操作元素执行对应的操作,并将已经完成操作的可见操作元素放入已执行操作队列,最后,当待操作队列为空时,基于已执行操作队列中的可见操作元素,生成待测试页面对应的测试报告。本申请实施例通过在运行过程中识别当前界面上的元素结构,对待测试页面进行自动化遍历,实现应用程序中待测试页面的全覆盖,降低了维护成本且提升了页面覆盖度。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例100所提供的一种对页面进行自动化测试的方法的流程示意图;
图2示出了本申请实施例200提供的一种对页面进行自动化测试的方法的具体流程的示意图;
图3示出了本申请实施例300还提供一种对页面进行自动化测试的装置的示意图;
图4示出了本申请实施例400所提供的一种终端设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
基于现有技术中的问题,本申请实施例提供了一种对页面进行自动化测试的方法,主要适用于互联网技术领域。基于对遍历程序的简单配置实现对应用程序中包含的待测试页面的自动化遍历测试,极大地降低了遍历测试成本,实现应用程序中对待测试页面进行测试的高度盖度。下面以具体实施例对本发明的技术方案进行详细说明,以实现一种对页面进行自动化测试的方法。以下几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。如图1所示,为本申请实施例100提供的一种对页面进行自动化测试的方法的流程示意图。其中,详细步骤如下:
S11,加载待测试页面。
本步骤中,使用Android的Robotium框架驱动待测试的应用程序,进一步地,使用UIAutomator工具UiDevice模块提供的dumpWindowHierarchy方法加载待测试页面。
S12,遍历待测试页面,读取待测试页面上的可见操作元素,并获取可见操作元素的包名属性,基于包名属性,过滤不属于待测试页面的可见操作元素。
本步骤中,遍历各个待测试页面,并用UIAutomator工具提供的UiDevice.getInstance().dumpWindowHierarchy()方法获取当前的待测试页面上的可见操作元素。进一步地,基于可见操作元素的包名属性,当包名属性携带黑名单元素标识时,过滤可见操作元素。具体地,根据元素所属的包名属性packageName,判断是否携带黑名单元素标识,并将携带黑名单元素标识的可见操作元素进行过滤。
S13,遍历已经生成的待操作队列中包含的可见操作元素,并与当前的可见操作元素进行对比,在待操作队列中不存在当前的可见操作元素时,将可见操作元素放入待操作队列。
本步骤中,创建待操作队列,将读取的可见操作元素按照读取顺序依次放入待操作队列中。进一步地,根据元素所属的包名属性packageName过滤不属于当前的应用程序的待测试页面的可见操作元素,比如过滤状态栏的内容。
S14,对在待操作队列中的可见操作元素执行对应的操作,并将已经完成操作的可见操作元素放入已执行操作队列。
本步骤中,基于在待操作队列中读取的各个可操作元素对应的类型,如读取的可操作元素为ImageView、TextView和EditView等可操作元素时,执行对应的输入和点击等对应的操作。进一步地,创建已执行操作队列,将执行相应操作完毕的可操作元素依次放入已执行操作队列。
S15,当待操作队列为空时,基于已执行操作队列中的可见操作元素,生成待测试页面对应的测试报告。
本步骤中,在对待测试页面遍历结束后,在测试过程中对每个可见操作元素执行的操作自动截图,并且监控应用程序的测试运行情况,执行结束后自动生成超级文本标记语言(Hyper Text Markup Language,html)格式的测试报告。其中,待测试页面的测试报告一般包括应用程序的版本信息、测试时间段、测试结果和包括本次测试覆盖的待测试页面的列表,以及在每个待测试页面上执行的点击、输入事件的数量和操作对应的内容截图等。
如上所述,基于上述实施例,具体为首先加载待测试页面,其次,遍历待测试页面,读取待测试页面上的可见操作元素,并获取可见操作元素的包名属性,基于包名属性,过滤不属于待测试页面的可见操作元素,进一步地,遍历已经生成的待操作队列中包含的可见操作元素,并与当前的可见操作元素进行对比,在待操作队列中不存在当前的可见操作元素时,将可见操作元素放入待操作队列,然后,对在待操作队列中的可见操作元素执行对应的操作,并将已经完成操作的可见操作元素放入已执行操作队列,最后,当待操作队列为空时,基于已执行操作队列中的可见操作元素,生成待测试页面对应的测试报告。本申请实施例通过在运行过程中识别当前界面上的元素结构,对待测试页面进行自动化遍历,实现应用程序中待测试页面的全覆盖,降低了维护成本且提升了页面覆盖度。
如图2所示,为本申请实施例200提供的一种对页面进行自动化测试的方法的具体流程的示意图。其中,该具体流程的详细过程如下:
S201,进行测试前配置。
本步骤中,为待测试的应用程序设置配置文件。其中,配置文件采用可扩展标记语言(Extensible Markup Language,XML)结构。具体地,在配置文件中存储不需要进行遍历的待测试页面的黑名单页面标识,以及不需要执行操作的可见操作元素的黑名单元素标识。对于待测试页面上的可执行输入的可见操作元素,可以配置输入内容,在遍历测试过程中遇到对应的可见操作元素时,会自动输入指定文本,常用于登录页面输入账号密码等。进一步地,可以配置可见操作元素的操作顺序,即可配置待测试页面上多个可见操作元素的操作顺序,遇到对应的待测试页面时,会根据顺序依次操作相关的可见操作元素。如登录页面,需要先输入用户名,然后输入密码,再点击登录按钮,才能完成整个登录流程。另外,默认只会对待测试页面上的可见操作元素进行一次操作,如果需要对某个可见操作元素执行多次操作,可在配置文件中声名此可见操作元素的操作次数。
S202,加载待测试页面。
这里,使用Android的Robotium框架驱动被测的应用程序,并加载应用程序中的待测试页面。另外,加载完待测试页面后,使用Android的DocumentBuilderFactory类来解析xml配置文件。
S203,遍历待测试页面。
S204,过滤被列入黑名单的待测试页面。
这里,基于待测试页面的第一活动类名,当第一活动类名携带黑名单页面标识时,过滤待测试页面。具体地,本申请实施例通过获取应用程序的待测试页面的ActivityName,来作为待测试页面的唯一标识。基于待测试页面的活动类名名称即Activity名称来区分不同页面,例如<page name="ProcessCompatibilityActivity">,表示当前的配置仅在ProcessCompatibilityActivity页面生效。进一步地,而当活动类名名称携带黑名单页面标识action="blackPage"时,表示当前的待测试页面为黑名单页面,并对黑名单页面进行过滤。
S205,读取待测试页面上的可见操作元素。
这里,在本申请实施例中使用UIAutomator工具提供的UiDevice.getInstance().dumpWindowHierarchy()方法把待测试页面的可见操作元素以树形结构输出到内存中。另外,可操作元素采用resource-id区分,<resource-id action="input"content="19100001002">etMobile</resource-id>表示对资源ID为etMobile的可操作元素,输入文本为“19100001002”。
S206,过滤被列入黑名单的可见操作元素。
这里,基于可见操作元素的包名属性,当包名属性携带黑名单元素标识时,过滤可见操作元素。具体地,根据元素所属的包名属性packageName,判断是否携带黑名单元素标识,并将携带黑名单元素标识的可见操作元素进行过滤。
S207,过滤不属于待测试页面的可见操作元素。
本步骤中,获取可见操作元素的包名属性,基于包名属性,过滤不属于待测试页面的可见操作元素。具体地,根据元素所属的包名属性packageName过滤不属于当前的应用程序的待测试页面的可见操作元素,比如过滤状态栏的内容。
S208,将可见操作元素放入待操作队列。
这里,遍历待操作队列中包含的可见操作元素,并与当前的可见操作元素进行对比,在待操作队列中不存在当前的可见操作元素时,将当前的可见操作元素放入待操作队列waitingClickViewList中。
S209,对在待操作队列中的可见操作元素执行对应的操作。
本步骤中,每次从waitingClickViewList队列末尾取出一个可见操作元素,判断此可见操作元素当前是否可见,如果已经不可见则跳过操作;如果可见,则根据可见操作元素的类型执行不同的操作。如此可见操作元素是EditText可输入控件,则执行输入操作;如此可见操作元素是TextView文本控件,则执行点击操作。
S210,判断执行完操作的可见操作元素是否可以加入已执行操作队列。
本步骤中,首先判断执行完操作的可见操作元素是否为新打开的待测试页面上的可见操作元素。具体地,获取可见操作元素所在的待测试页面的第一活动类名,以及可见操作元素在执行完操作后的显示页面的第二活动类名;当第一活动类名和第二活动类名不一致时,判断待测试页面是否已经遍历结束,并将遍历结束的显示页面对应的可操作元素放入已执行操作队列clickedViewList中。其中,通过判断当前操作的可见操作元素所属的第一活动类名activity name,和执行操作后的显示页面的activity name是否一致,如果不一致,则说明这次点击事件过后,打开了一个新的待测试页面。
进一步地,在对可见操作元素执行完成对应的操作后,在待操作队列中查找是否存在与已执行完操作的可见操作元素属于同一第一活动类名的可见操作元素,并当不存在时,确定当前的待测试页面已经遍历结束。其中,如执行完操作的可见操作元素所属的待测试页面,在待操作队列waitingClickViewList中没有和它同一待测试页面的可见操作元素,则表示此待测试页面已经遍历完全,可以记录到已执行操作队列clickedPageList中。
另外,如果当前的待测试页面的所有可见操作元素都已完成操作,则返回上一级页面。若某一步操作后,打开了一个已经遍历过的待测试页面,则自动返回上一级页面。若某一步操作后,跳转到了其他应用程序,则重新回到被测应用程序。
S211,将已经完成操作的可见操作元素放入已执行操作队列。
S212,判断待操作队列是否为空。
这里,当待操作队列不为空时,继续执行步骤S203至本步骤的内容。
S213,基于已执行操作队列中的可见操作元素,生成待测试页面对应的测试报告。·
本步骤中,在对可见操作元素执行对应的操作的过程中,获取待测试页面上执行的操作的数量和各个操作对应的操作内容截图;记录待测试页面上的异常信息;将至少一个待测试页面中的至少一个可见操作元素的操作内容截图和异常信息,以及待测试页面所在应用程序的版本号信息和测试时间段进行关联,生成待测试页面对应的测试报告。具体地,测试报告中显示应用承租版本信息,以及测试时间段。报告主体部分显示测试结果,以及测试详情,包括本次测试覆盖的待测试页面的列表,以及在每个待测试页面上执行的点击、输入事件的数量和操作内容截图。进一步地,遍历测试运行遇到Crash时自动保存日志,通过调用Android系统的异常处理类CrashHandler,实现了系统UncaughtExceptionHandler,当crash发生的时候,可以捕获到异常信息,并且把crash内容添加到测试报告中,
另外,应用程序的版本号信息通过PackageManager类获取APP的versionName,测试时间段中的测试开始开始时间和结束时间分别在测试类中的setUp()和tearDown()方法中设置。报告主体使用HTML格式,把测试过程中产生的数据动态组装成HTML格式,然后写入到报告模板中,并且和操作内容截图关联起来。遍历测试运行结束后,报告自动保存在客户端存储空间中。其中,截图分为了两步操作,先截取一张原始图,再添加边框,具体步骤为:使用UIAutomator或者Robotium的截图API获取一张原始图,保存在客户端内存卡中;读取原始图,转化为Bitmap对象;在bitmap对象上,创建一个画布Canvas;给画布添加Paint,给Paint设置边框厚度、颜色;以可见操作元素的bounds属性例如"[200,906][880,960]"中的坐标点进行绘制,添加到Canvas上;最后把bitmap对象输出为一个便携式网络图形(Portable Network Graphics,PNG)文件。
本申请基于上述步骤实现上述一种对页面进行自动化测试的方法。通过使用Android的Robotium框架驱动被测应用程序。开始测试首先加载xml配置文件的内容,然后使用UIAutomator工具UiDevice模块提供的dumpWindowHierarchy方法,获取待测试页面上的可见操作元素,并且把这些可见操作元素加入待操作队列,再从队列中依次取出可见操作元素,逐个去执行点击或者输入事件。在测试过程中,会对每一步操作自动截图,并且监控应用程序的测试运行情况,执行结束后自动生成html格式的测试报告。其中,测试报告包括对每一次点击、输入操作前后进行截屏,并且在截图上标记操作的可见操作元素;统计本次遍历测试所覆盖的待测试页面,以及在每个待测试页面上的点击、输入事件的次数;支持自动获取客户端系统、应用程序的基本信息,比如系统Android版本、APP版本信息等信息;支持自动获取遍历测试过程中产生的CRASH日志,并且把CRASH堆栈信息添加到测试报告中;自动化汇总HTML格式的测试报告,方便查看测试结果,保存在客户端。
基于同一发明构思,本申请实施例300还提供一种对页面进行自动化测试的装置,其中,如图3所示,该装置包括:
加载模块31,用于加载待测试页面;
第一遍历模块32,用于遍历待测试页面,读取待测试页面上的可见操作元素,并获取可见操作元素的包名属性,基于包名属性,过滤不属于待测试页面的可见操作元素;
第二遍历模块33,用于遍历已经生成的待操作队列中包含的可见操作元素,并与当前的可见操作元素进行对比,在待操作队列中不存在当前的可见操作元素时,将可见操作元素放入待操作队列;
执行模块34,用于对在待操作队列中的可见操作元素执行对应的操作,并将已经完成操作的可见操作元素放入已执行操作队列;
生成模块35,用于当待操作队列为空时,基于已执行操作队列中的可见操作元素,生成待测试页面对应的测试报告。
本实施例中,加载模块31、第一遍历模块32、第二遍历模块33、执行模块34和生成模块35的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
可选地,执行模块34包括:
执行单元,用于对在待操作队列中的可见操作元素执行对应的操作;
第二获取单元,用于获取可见操作元素所在的待测试页面的第一活动类名,以及可见操作元素在执行完操作后的显示页面的第二活动类名;
判断单元,用于当第一活动类名和第二活动类名不一致时,判断待测试页面是否已经遍历结束,并将遍历结束的显示页面对应的可操作元素放入已执行操作队列中。
可选地,判断单元还用于:
在对可见操作元素执行完成对应的操作后,在待操作队列中查找是否存在与已执行完操作的可见操作元素属于同一第一活动类名的可见操作元素,并当不存在时,确定当前的待测试页面已经遍历结束。
可选地,生成模块35包括:
第二获取单元,用于在对可见操作元素执行对应的操作的过程中,获取待测试页面上执行的操作的数量和各个操作对应的操作内容截图;
记录单元,用于记录待测试页面上的异常信息;
生成单元,用于将至少一个待测试页面中的至少一个可见操作元素的操作内容截图和异常信息,以及待测试页面所在应用程序的版本号信息和测试时间段进行关联,生成待测试页面对应的测试报告。
可选地,该装置进一步包括:
第一过滤模块36,用于基于待测试页面的第一活动类名,当第一活动类名携带黑名单页面标识时,过滤待测试页面。
可选地,该装置进一步包括:
第二过滤模块37,用于基于可见操作元素的包名属性,当包名属性携带黑名单元素标识时,过滤可见操作元素。
如图4所示,本申请的又一实施例400还提供一种终端设备,包括处理器401,其中,处理器401用于执行上述一种对页面进行自动化测试的方法的步骤。从图4中还可以看出,上述实施例提供的终端设备还包括非瞬时计算机可读存储介质402,该非瞬时计算机可读存储介质402上存储有计算机程序,该计算机程序被处理器401运行时执行上述一种对页面进行自动化测试的方法的步骤。实际应用中,该终端设备可以是一台或多台计算机,只要包括上述计算机可读介质和处理器即可。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘和FLASH等,该存储介质上的计算机程序被运行时,能够执行上述的一种对页面进行自动化测试的方法中的各个步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,能够执行上述的一种对页面进行自动化测试的方法中的各个步骤。
根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标注的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行变更或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些变更、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种对页面进行自动化测试的方法,其特征在于,包括:
加载待测试页面;
遍历所述待测试页面,读取所述待测试页面上的可见操作元素,并获取所述可见操作元素的包名属性,基于所述包名属性,过滤不属于所述待测试页面的所述可见操作元素;
遍历已经生成的待操作队列中包含的所述可见操作元素,并与当前的所述可见操作元素进行对比,在所述待操作队列中不存在当前的所述可见操作元素时,将所述可见操作元素放入待操作队列;
对在所述待操作队列中的所述可见操作元素执行对应的操作,并将已经完成操作的所述可见操作元素放入已执行操作队列;
当所述待操作队列为空时,基于所述已执行操作队列中的所述可见操作元素,生成所述待测试页面对应的测试报告。
2.根据权利要求1所述的方法,其特征在于,所述对在所述待操作队列中的所述可见操作元素执行对应的操作,并将已经完成操作的所述可见操作元素放入已执行操作队列,包括:
对在所述待操作队列中的所述可见操作元素执行对应的操作;
获取所述可见操作元素所在的所述待测试页面的第一活动类名,以及所述可见操作元素在执行完操作后的显示页面的第二活动类名;
当所述第一活动类名和所述第二活动类名不一致时,判断所述待测试页面是否已经遍历结束,并将遍历结束的所述显示页面对应的所述可操作元素放入已执行操作队列中。
3.根据权利要求2所述的方法,其特征在于,所述判断所述待测试页面是否已经遍历结束的步骤包括:
在对所述可见操作元素执行完成对应的操作后,在所述待操作队列中查找是否存在与已执行完所述操作的所述可见操作元素属于同一所述第一活动类名的所述可见操作元素,并当不存在时,确定当前的所述待测试页面已经遍历结束。
4.根据权利要求1所述的方法,其特征在于,所述生成所述待测试页面对应的测试报告的步骤包括:
在对所述可见操作元素执行对应的操作的过程中,获取所述待测试页面上执行的所述操作的数量和各个所述操作对应的操作内容截图;
记录所述待测试页面上的异常信息;
将至少一个所述待测试页面中的至少一个所述可见操作元素的所述操作内容截图和所述异常信息,以及所述待测试页面所在应用程序的版本号信息和测试时间段进行关联,生成所述待测试页面对应的测试报告。
5.根据权利要求2所述的方法,其特征在于,在所述遍历所述待测试页面的步骤和所述读取所述待测试页面上的可见操作元素的步骤之间,所述方法进一步包括:
基于所述待测试页面的所述第一活动类名,当所述第一活动类名携带黑名单页面标识时,过滤所述待测试页面。
6.根据权利要求1所述的方法,其特征在于,所述读取所述待测试页面上的可见操作元素的步骤进一步包括:
基于所述可见操作元素的所述包名属性,当所述包名属性携带黑名单元素标识时,过滤所述可见操作元素。
7.一种对页面进行自动化测试的装置,其特征在于,所述装置包括:
加载模块,用于加载待测试页面;
第一遍历模块,用于遍历所述待测试页面,读取所述待测试页面上的可见操作元素,并获取所述可见操作元素的包名属性,基于所述包名属性,过滤不属于所述待测试页面的所述可见操作元素;
第二遍历模块,用于遍历已经生成的待操作队列中包含的所述可见操作元素,并与当前的所述可见操作元素进行对比,在所述待操作队列中不存在当前的所述可见操作元素时,将所述可见操作元素放入待操作队列;
执行模块,用于对在所述待操作队列中的所述可见操作元素执行对应的操作,并将已经完成操作的所述可见操作元素放入已执行操作队列;
生成模块,用于当所述待操作队列为空时,基于所述已执行操作队列中的所述可见操作元素,生成所述待测试页面对应的测试报告。
8.根据权利要求7所述的装置,其特征在于,所述执行模块包括:
执行单元,用于对在所述待操作队列中的所述可见操作元素执行对应的操作;
获取单元,用于获取所述可见操作元素所在的所述待测试页面的第一活动类名,以及所述可见操作元素在执行完操作后的显示页面的第二活动类名;
判断单元,用于当所述第一活动类名和所述第二活动类名不一致时,判断所述待测试页面是否已经遍历结束,并将遍历结束的所述显示页面对应的所述可操作元素放入已执行操作队列中。
9.一种非瞬时计算机可读存储介质,其特征在于,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如权利要求1至6任一项所述的一种对页面进行自动化测试的方法中的各个步骤。
10.一种终端设备,其特征在于,包括处理器,所述处理器用于执行如权利要求1至6中任一项所述的一种对页面进行自动化测试的方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010998381.2A CN112131111A (zh) | 2020-09-21 | 2020-09-21 | 一种对页面进行自动化测试的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010998381.2A CN112131111A (zh) | 2020-09-21 | 2020-09-21 | 一种对页面进行自动化测试的方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112131111A true CN112131111A (zh) | 2020-12-25 |
Family
ID=73841935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010998381.2A Pending CN112131111A (zh) | 2020-09-21 | 2020-09-21 | 一种对页面进行自动化测试的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112131111A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113468058A (zh) * | 2021-07-09 | 2021-10-01 | 深圳希施玛数据科技有限公司 | 软件即服务平台的回归测试方法、装置及电子设备 |
CN113760721A (zh) * | 2021-01-13 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种页面测试方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170324803A1 (en) * | 2016-05-09 | 2017-11-09 | Salesforce.Com, Inc. | Automated testing of perceptible web page elements |
CN108399124A (zh) * | 2018-02-07 | 2018-08-14 | 深圳壹账通智能科技有限公司 | 应用测试方法、装置、计算机设备和存储介质 |
CN110245308A (zh) * | 2019-05-21 | 2019-09-17 | 平安银行股份有限公司 | 图像提取方法、装置及终端设备 |
CN110990258A (zh) * | 2019-10-29 | 2020-04-10 | 贝壳技术有限公司 | 基于Android系统的APP测试方法、装置、可读存储介质及处理器 |
-
2020
- 2020-09-21 CN CN202010998381.2A patent/CN112131111A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170324803A1 (en) * | 2016-05-09 | 2017-11-09 | Salesforce.Com, Inc. | Automated testing of perceptible web page elements |
CN108399124A (zh) * | 2018-02-07 | 2018-08-14 | 深圳壹账通智能科技有限公司 | 应用测试方法、装置、计算机设备和存储介质 |
CN110245308A (zh) * | 2019-05-21 | 2019-09-17 | 平安银行股份有限公司 | 图像提取方法、装置及终端设备 |
CN110990258A (zh) * | 2019-10-29 | 2020-04-10 | 贝壳技术有限公司 | 基于Android系统的APP测试方法、装置、可读存储介质及处理器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113760721A (zh) * | 2021-01-13 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种页面测试方法和装置 |
CN113468058A (zh) * | 2021-07-09 | 2021-10-01 | 深圳希施玛数据科技有限公司 | 软件即服务平台的回归测试方法、装置及电子设备 |
CN113468058B (zh) * | 2021-07-09 | 2024-05-03 | 深圳希施玛数据科技有限公司 | 软件即服务平台的回归测试方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783388B (zh) | Ui自动化测试方法、装置及电子设备 | |
CN105740144B (zh) | 一种Android移动终端的自动化测试方法及系统 | |
US9471453B2 (en) | Management of test artifacts using cascading snapshot mechanism | |
CN112131111A (zh) | 一种对页面进行自动化测试的方法、装置和存储介质 | |
CN111818123A (zh) | 网络前端远程回放方法、装置、设备及存储介质 | |
CN112597028A (zh) | 一种用例测试结果的展示方法、装置及可读存储介质 | |
CN110597704B (zh) | 应用程序的压力测试方法、装置、服务器和介质 | |
CN111274130A (zh) | 一种自动化测试方法、装置、设备及存储介质 | |
CN114003269A (zh) | 组件处理方法、装置、电子设备及存储介质 | |
CN107038117B (zh) | 一种基于事件处理函数间定义-引用的web自动化测试方法 | |
CN112527643A (zh) | 一种前端错误检测方法、装置、电子设备及可读存储介质 | |
CN112631704A (zh) | 一种界面元素识别方法、装置、存储介质及电子设备 | |
CN113742211A (zh) | 一种测试方法、Appium客户端及计算机存储介质 | |
CN112162908A (zh) | 基于字节码注入技术的程序调用链路监控实现方法及装置 | |
US8291389B2 (en) | Automatically detecting non-modifying transforms when profiling source code | |
CN111400171A (zh) | 一种接口测试方法、系统、装置及可读存储介质 | |
CN110597733A (zh) | 自动化前端稳定性测试方法、装置及存储介质 | |
CN113031995B (zh) | 一种更新规则的方法、装置、存储介质以及电子设备 | |
CN111258875A (zh) | 界面测试方法及系统、电子设备、存储介质 | |
CN114519008A (zh) | 一种回归测试用例的推荐方法、装置、介质及设备 | |
CN110071848B (zh) | 自动化测试命令行命令的方法、设备及存储介质 | |
CN109948251B (zh) | 基于cad的数据处理方法、装置、设备及存储介质 | |
CN113326193A (zh) | 一种小程序测试方法及装置 | |
CN115705187A (zh) | 项目依赖关系展示方法、装置、终端设备和存储介质 | |
US20160275002A1 (en) | Image capture in application lifecycle management for documentation and support |
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 |