CN113505079A - 应用程序测试方法、装置、设备及介质 - Google Patents
应用程序测试方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113505079A CN113505079A CN202110850086.7A CN202110850086A CN113505079A CN 113505079 A CN113505079 A CN 113505079A CN 202110850086 A CN202110850086 A CN 202110850086A CN 113505079 A CN113505079 A CN 113505079A
- Authority
- CN
- China
- Prior art keywords
- test
- data
- function
- application program
- tested
- 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 claims abstract description 269
- 238000000034 method Methods 0.000 claims abstract description 65
- 230000008569 process Effects 0.000 claims abstract description 46
- 230000006870 function Effects 0.000 claims description 140
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000004088 simulation Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 10
- 230000000694 effects Effects 0.000 abstract description 10
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004590 computer program Methods 0.000 description 10
- 238000011161 development Methods 0.000 description 7
- 238000004458 analytical method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral 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/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- 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/362—Software debugging
- G06F11/366—Software debugging using diagnostics
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
技术领域
本发明涉及测试技术领域,尤其涉及一种应用程序测试方法、装置、设备及介质。
背景技术
随着目前各大应用程序的业务复杂度越来越高,手机性能越来越强,很多应用程序都采用了混合式开发,包括H5(HTML5)、ReactNative、Weex、Flutter等,以便基于混合应用带来更快的迭代效率,使用户在无感知的情况下进行静默更新,方便用户使用。
由于混合应用的功能较多,为了保证功能的可用性,每开发一个新的功能都需要做相应的测试,即便是很小的改动也需要进行回滚测试。
但是,在测试过程中,需要大量的人为操作(如点击操作等),工作效率比较低,并且,由于人为操作容易产生误差,很可能出现有些功能被忽略回滚或者忽略测试等情况,造成不必要的失误。
发明内容
鉴于以上内容,有必要提供一种应用程序测试方法、装置、设备及介质,能够直接调用测试数据,在满足压力测试对数据需求的同时又节约了计算资源,提高了测试效率,在发生测试错误时也不影响其他测试的正常执行,在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果。
一种应用程序测试方法,所述应用程序测试方法包括:
当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表;
获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序;
获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本;
在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件;
当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件;
当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本;
当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格;
对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
根据本发明优选实施例,所述将埋点的记录写入埋点数据表包括:
获取预先配置的每个功能点的执行顺序;
获取每个功能点的标识;
将每个功能点的执行顺序及每个功能点的标识写入表格,得到所述埋点数据表。
根据本发明优选实施例,在按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本时,所述方法还包括:
当检测到有流程分支执行完毕时,获取检测到的流程分支对应的当前页面;
获取所述检测到的流程分支的分支起点;
将所述当前页面回退至所述分支起点;
根据每个功能的流程分支的执行顺序确定与所述检测到的流程分支对应的下一流程分支;
从所述下一流程分支开始继续执行所述模拟点击脚本。
根据本发明优选实施例,所述通过所述目标接口调取数据处理所述数据填充事件包括:
通过所述目标接口连接至配置数据库,其中,所述配置数据库中存储着开发所述待测试应用程序时的测试数据;
获取所述数据填充事件所对应的待填充栏位的标识作为目标标识;
利用所述目标标识在所述配置数据库中进行查询,并将查询到的具有所述目标标识的数据确定为待填充数据;
将所述待填充数据填充至所述待填充栏位;
在确定所述待填充栏位填充完毕后,继续按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
根据本发明优选实施例,当检测到所述错误事件时,所述方法还包括:
确定所述错误事件所属的流程分支,并中断所述错误事件所属的流程分支;
根据埋点获取所述错误事件所属的流程分支内每个功能点的测试结果;
根据每个功能点的测试结果确定发生错误的功能点;
获取所述发生错误的功能点的测试结果生成错误报告。
根据本发明优选实施例,所述对比所述测试表格与所述埋点数据表,得到对比结果包括:
获取所述测试表格中功能点的数量作为第一数量,及获取所述埋点数据表中功能点的数量作为第二数量;
当所述第一数量小于所述第二数量时,将所述测试表格中的功能点与所述埋点数据表中的功能点进行匹配,并将所述埋点数据表中没有匹配到的功能点确定为遗漏功能点,将所述对比结果确定为所述待测试应用程序中的所述遗漏功能点被漏测试;
当所述第一数量等于所述第二数量时,检测所述测试表格中是否有重复的功能点,当所述测试表格中没有重复的功能点时,将所述对比结果确定为所述待测试应用程序中每个功能的流程分支的功能点都完成测试。
根据本发明优选实施例,在根据所述对比结果生成测试报告后,所述方法还包括:
当检测到所述测试报告时,确定完成测试;
将所述测试报告传输至Kafka;
连接至邮件通知接口;
当所述邮件通知接口监控到所述Kafka消费了所述测试报告时,通过所述邮件通知接口发送带有所述测试报告的提示邮件至指定终端设备。
一种应用程序测试装置,所述应用程序测试装置包括:
埋点单元,用于当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表;
插入单元,用于获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序;
执行单元,用于获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本;
监控单元,用于在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件;
处理单元,用于当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件;
所述执行单元,还用于当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本;
生成单元,用于当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格;
所述生成单元,还用于对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
一种计算机设备,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述应用程序测试方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述应用程序测试方法。
由以上技术方案可以看出,本发明能够当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表,以便自动获取到埋点数据进行测试分析,获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序,无需用户手动操作便可自动模拟对所述待测试应用程序的点击,释放了人力,由机器自动运行,同时也提高了效率,获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本,以实现测试的自动化执行,在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件,当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件,直接调用开发时的测试数据,在满足压力测试对数据需求的同时,相较于传统的方式,既释放了人力,又节约了计算资源,同时提高了测试效率,当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本,在发生测试错误时也不影响其他测试的正常执行,保证了测试的完整性,侧面提高了测试效率,当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格,对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告,在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果,进而实现对应用程序的自动化测试,同时提高了测试效率,且提升了测试效果。
附图说明
图1是本发明应用程序测试方法的较佳实施例的流程图。
图2是本发明应用程序测试装置的较佳实施例的功能模块图。
图3是本发明实现应用程序测试方法的较佳实施例的计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明应用程序测试方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述应用程序测试方法应用于一个或者多个计算机设备中,所述计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital SignalProcessor,DSP)、嵌入式设备等。
所述计算机设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能式穿戴式设备等。
所述计算机设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表。
在本实施例中,所述待测试应用程序可以为混合开发的应用程序,也可以为一般应用程序,本发明不限制。
可以理解的是,每个应用程序都对应于不同的业务,而每个业务下可能包括多种业务需求,因此,每个功能的实现也都对应于多个功能的流程分支,每个流程分支下又可以包括多个功能点(如选择任意图标)。
本实施例通过对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,以便自动获取到埋点数据进行测试分析。
在本发明的至少一个实施例中,所述将埋点的记录写入埋点数据表包括:
获取预先配置的每个功能点的执行顺序;
获取每个功能点的标识;
将每个功能点的执行顺序及每个功能点的标识写入表格,得到所述埋点数据表。
其中,所述埋点数据表可以为任意形式的表格,如Excel等,本发明不限制
通过上述实施方式,生成的所述埋点数据表记录了需要被测试的各个功能点,以供后续进行比对。
S11,获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序。
在本发明的至少一个实施例中,所述模拟点击脚本的编写方式可以包括,但不限于以下任意一种方式:
(1)利用Android单元测试Instrumentation框架;
(2)利用AccessibilityService辅助功能类,可以监听手机等智能终端的焦点、窗口、按钮点击等,只需要给予辅助功能相应的权限,无需root权限;
(3)通过sendevent命令实现,向该命令传入参数设备路径名、事件类型、事件代码、事件值,通过getevent命令可以查看对应哪个设备是触摸屏驱动,需要root权限实现;
(4)利用代码实现,通过ioctl向设备文件中直接写入数据,需要使用root权限;
(5)找到从设备驱动文件开始到UI(User Interface)显示的过程中的某一节点,并构造点击事件传入。
当然,在其他实施例中,还可以采用其他方式编写所述模拟点击脚本,本发明在此不限制。
进一步地,在编写得到所述模拟点击脚本后,即可将所述模拟点击脚本插入所述待测试应用程序,并在所述待测试应用程序上运行所述模拟点击脚本,无需用户手动操作便可自动模拟对所述待测试应用程序的点击,释放了人力,由机器自动运行,同时也提高了效率。
S12,获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
可以理解的是,每个功能的流程分支都有执行顺序,以匹配不同的功能需求,如对于购物类应用程序来说,首先应该获取到用户对产品的选择,然后才能执行产品的详细展示页面的跳转。因此,本实施例按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本,以便与实际执行的顺序进行匹配。
在本发明的至少一个实施例中,在按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本时,所述方法还包括:
当检测到有流程分支执行完毕时,获取检测到的流程分支对应的当前页面;
获取所述检测到的流程分支的分支起点;
将所述当前页面回退至所述分支起点;
根据每个功能的流程分支的执行顺序确定与所述检测到的流程分支对应的下一流程分支;
从所述下一流程分支开始继续执行所述模拟点击脚本。
通过上述实施方式,能够在检测到有流程分支执行完毕后自动执行下一流程分支,实现测试的自动化执行。
S13,在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件。
在本发明的至少一个实施例中,所述数据填充事件是指有数据需要填充的事件,如:需要用户填充身份证号或者姓名等的事件。
在本发明的至少一个实施例中,所述错误事件是指在测试过程中出现中断的事件,所述错误事件可能是由于所述待测试应用程序本身的不稳定性造成,也可能是由于错误操作等原因导致,本发明不限制。
在本实施例中,不断监控所述数据填充事件及所述错误事件,以便及时响应,以提高响应速度。
S14,当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件。
在本发明的至少一个实施例中,所述通过所述目标接口调取数据处理所述数据填充事件包括:
通过所述目标接口连接至配置数据库,其中,所述配置数据库中存储着开发所述待测试应用程序时的测试数据;
获取所述数据填充事件所对应的待填充栏位的标识作为目标标识;
利用所述目标标识在所述配置数据库中进行查询,并将查询到的具有所述目标标识的数据确定为待填充数据;
将所述待填充数据填充至所述待填充栏位;
在确定所述待填充栏位填充完毕后,继续按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
需要说明的是,在传统的测试方案中,当遇到需要填充的栏位时,通常需要人为干预填充,浪费大量的人力,且容易出错,效率也较低;或者通过造数据的方式进行填充,虽然在一定程度上释放了人力,但是造数据的成本也较高,需要耗费大量的计算机资源及时间,测试效率受到一定影响。
本实施例直接调用开发时的测试数据,在满足压力测试对数据需求的同时,相较于传统的方式,既释放了人力,又节约了计算资源,同时提高了测试效率。
S15,当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本。
需要说明的是,在传统的测试方案中,当检测到所述错误事件时,通常的方式是直接中断测试,导致测试无法正常执行。
在本发明的至少一个实施例中,当检测到所述错误事件时,所述方法还包括:
确定所述错误事件所属的流程分支,并中断所述错误事件所属的流程分支;
根据埋点获取所述错误事件所属的流程分支内每个功能点的测试结果;
根据每个功能点的测试结果确定发生错误的功能点;
获取所述发生错误的功能点的测试结果生成错误报告。
在本实施例中,当在测试过程中检测到所述错误事件时,只中断所述错误事件所属的流程分支,并从下一个待执行的流程分支开始继续执行,在发生测试错误时也不影响其他测试的正常执行,保证了测试的完整性,侧面提高了测试效率。
同时,在中断所述错误事件所属的流程分支后,找到发生测试异常的功能点,并生成错误报告,以便提醒相关人员及时处理,提高了异常响应的效率。
S16,当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格。
在本实施例中,所述测试表格可以为任意形式的表格,如Excel等,本发明不限制。
通过所述埋点数据生成所述测试表格,能够保证在测试过程中,相关的测试数据都被完整且全面的获取到,避免有数据遗漏。
S17,对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
在本发明的至少一个实施例中,所述对比所述测试表格与所述埋点数据表,得到对比结果包括:
获取所述测试表格中功能点的数量作为第一数量,及获取所述埋点数据表中功能点的数量作为第二数量;
当所述第一数量小于所述第二数量时,将所述测试表格中的功能点与所述埋点数据表中的功能点进行匹配,并将所述埋点数据表中没有匹配到的功能点确定为遗漏功能点,将所述对比结果确定为所述待测试应用程序中的所述遗漏功能点被漏测试;
当所述第一数量等于所述第二数量时,检测所述测试表格中是否有重复的功能点,当所述测试表格中没有重复的功能点时,将所述对比结果确定为所述待测试应用程序中每个功能的流程分支的功能点都完成测试。
通过上述实施方式,能够在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果。
进一步地,生成的所述测试报告中可以包括每个功能点的测试结果(通过测试还是未通过测试),测试的功能点的总数量等信息,以供查阅。
在本发明的至少一个实施例中,在根据所述对比结果生成测试报告后,所述方法还包括:
当检测到所述测试报告时,确定完成测试;
将所述测试报告传输至Kafka;
连接至邮件通知接口;
当所述邮件通知接口监控到所述Kafka消费了所述测试报告时,通过所述邮件通知接口发送带有所述测试报告的提示邮件至指定终端设备。
其中,所述指定终端设备可以为相关工作人员的终端设备,如测试人员、开发人员,本发明不限制。
通过上述实施方式,能够及时通知到相关工作人员及时查看测试报告,以辅助提高报告的反馈效率。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,所述测试报告可存储于区块链节点中。
由以上技术方案可以看出,本发明能够当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表,以便自动获取到埋点数据进行测试分析,获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序,无需用户手动操作便可自动模拟对所述待测试应用程序的点击,释放了人力,由机器自动运行,同时也提高了效率,获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本,以实现测试的自动化执行,在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件,当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件,直接调用开发时的测试数据,在满足压力测试对数据需求的同时,相较于传统的方式,既释放了人力,又节约了计算资源,同时提高了测试效率,当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本,在发生测试错误时也不影响其他测试的正常执行,保证了测试的完整性,侧面提高了测试效率,当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格,对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告,在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果,进而实现对应用程序的自动化测试,同时提高了测试效率,且提升了测试效果。
如图2所示,是本发明应用程序测试装置的较佳实施例的功能模块图。所述应用程序测试装置11包括埋点单元110、插入单元111、执行单元112、监控单元113、处理单元114、生成单元115。本发明所称的模块/单元是指一种能够被处理器13所执行,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
当接收到待测试应用程序时,埋点单元110对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表。
在本实施例中,所述待测试应用程序可以为混合开发的应用程序,也可以为一般应用程序,本发明不限制。
可以理解的是,每个应用程序都对应于不同的业务,而每个业务下可能包括多种业务需求,因此,每个功能的实现也都对应于多个功能的流程分支,每个流程分支下又可以包括多个功能点(如选择任意图标)。
本实施例通过对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,以便自动获取到埋点数据进行测试分析。
在本发明的至少一个实施例中,所述埋点单元110将埋点的记录写入埋点数据表包括:
获取预先配置的每个功能点的执行顺序;
获取每个功能点的标识;
将每个功能点的执行顺序及每个功能点的标识写入表格,得到所述埋点数据表。
其中,所述埋点数据表可以为任意形式的表格,如Excel等,本发明不限制
通过上述实施方式,生成的所述埋点数据表记录了需要被测试的各个功能点,以供后续进行比对。
插入单元111获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序。
在本发明的至少一个实施例中,所述模拟点击脚本的编写方式可以包括,但不限于以下任意一种方式:
(1)利用Android单元测试Instrumentation框架;
(2)利用AccessibilityService辅助功能类,可以监听手机等智能终端的焦点、窗口、按钮点击等,只需要给予辅助功能相应的权限,无需root权限;
(3)通过sendevent命令实现,向该命令传入参数设备路径名、事件类型、事件代码、事件值,通过getevent命令可以查看对应哪个设备是触摸屏驱动,需要root权限实现;
(4)利用代码实现,通过ioctl向设备文件中直接写入数据,需要使用root权限;
(5)找到从设备驱动文件开始到UI(User Interface)显示的过程中的某一节点,并构造点击事件传入。
当然,在其他实施例中,还可以采用其他方式编写所述模拟点击脚本,本发明在此不限制。
进一步地,在编写得到所述模拟点击脚本后,即可将所述模拟点击脚本插入所述待测试应用程序,并在所述待测试应用程序上运行所述模拟点击脚本,无需用户手动操作便可自动模拟对所述待测试应用程序的点击,释放了人力,由机器自动运行,同时也提高了效率。
执行单元112获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
可以理解的是,每个功能的流程分支都有执行顺序,以匹配不同的功能需求,如对于购物类应用程序来说,首先应该获取到用户对产品的选择,然后才能执行产品的详细展示页面的跳转。因此,本实施例按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本,以便与实际执行的顺序进行匹配。
在本发明的至少一个实施例中,在按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本时,当检测到有流程分支执行完毕时,获取检测到的流程分支对应的当前页面;
获取所述检测到的流程分支的分支起点;
将所述当前页面回退至所述分支起点;
根据每个功能的流程分支的执行顺序确定与所述检测到的流程分支对应的下一流程分支;
从所述下一流程分支开始继续执行所述模拟点击脚本。
通过上述实施方式,能够在检测到有流程分支执行完毕后自动执行下一流程分支,实现测试的自动化执行。
监控单元113在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件。
在本发明的至少一个实施例中,所述数据填充事件是指有数据需要填充的事件,如:需要用户填充身份证号或者姓名等的事件。
在本发明的至少一个实施例中,所述错误事件是指在测试过程中出现中断的事件,所述错误事件可能是由于所述待测试应用程序本身的不稳定性造成,也可能是由于错误操作等原因导致,本发明不限制。
在本实施例中,不断监控所述数据填充事件及所述错误事件,以便及时响应,以提高响应速度。
当检测到所述数据填充事件时,处理单元114确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件。
在本发明的至少一个实施例中,所述处理单元114通过所述目标接口调取数据处理所述数据填充事件包括:
通过所述目标接口连接至配置数据库,其中,所述配置数据库中存储着开发所述待测试应用程序时的测试数据;
获取所述数据填充事件所对应的待填充栏位的标识作为目标标识;
利用所述目标标识在所述配置数据库中进行查询,并将查询到的具有所述目标标识的数据确定为待填充数据;
将所述待填充数据填充至所述待填充栏位;
在确定所述待填充栏位填充完毕后,继续按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
需要说明的是,在传统的测试方案中,当遇到需要填充的栏位时,通常需要人为干预填充,浪费大量的人力,且容易出错,效率也较低;或者通过造数据的方式进行填充,虽然在一定程度上释放了人力,但是造数据的成本也较高,需要耗费大量的计算机资源及时间,测试效率受到一定影响。
本实施例直接调用开发时的测试数据,在满足压力测试对数据需求的同时,相较于传统的方式,既释放了人力,又节约了计算资源,同时提高了测试效率。
当检测到所述错误事件时,所述执行单元112根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本。
需要说明的是,在传统的测试方案中,当检测到所述错误事件时,通常的方式是直接中断测试,导致测试无法正常执行。
在本发明的至少一个实施例中,当检测到所述错误事件时,确定所述错误事件所属的流程分支,并中断所述错误事件所属的流程分支;
根据埋点获取所述错误事件所属的流程分支内每个功能点的测试结果;
根据每个功能点的测试结果确定发生错误的功能点;
获取所述发生错误的功能点的测试结果生成错误报告。
在本实施例中,当在测试过程中检测到所述错误事件时,只中断所述错误事件所属的流程分支,并从下一个待执行的流程分支开始继续执行,在发生测试错误时也不影响其他测试的正常执行,保证了测试的完整性,侧面提高了测试效率。
同时,在中断所述错误事件所属的流程分支后,找到发生测试异常的功能点,并生成错误报告,以便提醒相关人员及时处理,提高了异常响应的效率。
当所述模拟点击脚本执行结束时,生成单元115获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格。
在本实施例中,所述测试表格可以为任意形式的表格,如Excel等,本发明不限制。
通过所述埋点数据生成所述测试表格,能够保证在测试过程中,相关的测试数据都被完整且全面的获取到,避免有数据遗漏。
所述生成单元115对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
在本发明的至少一个实施例中,所述生成单元115对比所述测试表格与所述埋点数据表,得到对比结果包括:
获取所述测试表格中功能点的数量作为第一数量,及获取所述埋点数据表中功能点的数量作为第二数量;
当所述第一数量小于所述第二数量时,将所述测试表格中的功能点与所述埋点数据表中的功能点进行匹配,并将所述埋点数据表中没有匹配到的功能点确定为遗漏功能点,将所述对比结果确定为所述待测试应用程序中的所述遗漏功能点被漏测试;
当所述第一数量等于所述第二数量时,检测所述测试表格中是否有重复的功能点,当所述测试表格中没有重复的功能点时,将所述对比结果确定为所述待测试应用程序中每个功能的流程分支的功能点都完成测试。
通过上述实施方式,能够在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果。
进一步地,生成的所述测试报告中可以包括每个功能点的测试结果(通过测试还是未通过测试),测试的功能点的总数量等信息,以供查阅。
在本发明的至少一个实施例中,在根据所述对比结果生成测试报告后,当检测到所述测试报告时,确定完成测试;
将所述测试报告传输至Kafka;
连接至邮件通知接口;
当所述邮件通知接口监控到所述Kafka消费了所述测试报告时,通过所述邮件通知接口发送带有所述测试报告的提示邮件至指定终端设备。
其中,所述指定终端设备可以为相关工作人员的终端设备,如测试人员、开发人员,本发明不限制。
通过上述实施方式,能够及时通知到相关工作人员及时查看测试报告,以辅助提高报告的反馈效率。
需要说明的是,为了进一步提高数据的安全性,避免数据被恶意篡改,所述测试报告可存储于区块链节点中。
由以上技术方案可以看出,本发明能够当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表,以便自动获取到埋点数据进行测试分析,获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序,无需用户手动操作便可自动模拟对所述待测试应用程序的点击,释放了人力,由机器自动运行,同时也提高了效率,获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本,以实现测试的自动化执行,在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件,当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件,直接调用开发时的测试数据,在满足压力测试对数据需求的同时,相较于传统的方式,既释放了人力,又节约了计算资源,同时提高了测试效率,当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本,在发生测试错误时也不影响其他测试的正常执行,保证了测试的完整性,侧面提高了测试效率,当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格,对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告,在测试执行完毕后通过与埋点数据的比较进行再次确认,避免在测试过程中发生遗漏测试,以保证测试流程的完整性,有效提升了测试效果,进而实现对应用程序的自动化测试,同时提高了测试效率,且提升了测试效果。
如图3所示,是本发明实现应用程序测试方法的较佳实施例的计算机设备的结构示意图。
所述计算机设备1可以包括存储器12、处理器13和总线,还可以包括存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如应用程序测试程序。
本领域技术人员可以理解,所述示意图仅仅是计算机设备1的示例,并不构成对计算机设备1的限定,所述计算机设备1既可以是总线型结构,也可以是星形结构,所述计算机设备1还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置,例如所述计算机设备1还可以包括输入输出设备、网络接入设备等。
需要说明的是,所述计算机设备1仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
其中,存储器12至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、移动硬盘、多媒体卡、卡型存储器(例如:SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器12在一些实施例中可以是计算机设备1的内部存储单元,例如该计算机设备1的移动硬盘。存储器12在另一些实施例中也可以是计算机设备1的外部存储设备,例如计算机设备1上配备的插接式移动硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(SecureDigital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器12还可以既包括计算机设备1的内部存储单元也包括外部存储设备。存储器12不仅可以用于存储安装于计算机设备1的应用软件及各类数据,例如应用程序测试程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器13在一些实施例中可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。处理器13是所述计算机设备1的控制核心(Control Unit),利用各种接口和线路连接整个计算机设备1的各个部件,通过运行或执行存储在所述存储器12内的程序或者模块(例如执行应用程序测试程序等),以及调用存储在所述存储器12内的数据,以执行计算机设备1的各种功能和处理数据。
所述处理器13执行所述计算机设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个应用程序测试方法实施例中的步骤,例如图1所示的步骤。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机可读指令段,该指令段用于描述所述计算机程序在所述计算机设备1中的执行过程。例如,所述计算机程序可以被分割成埋点单元110、插入单元111、执行单元112、监控单元113、处理单元114、生成单元115。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、计算机设备,或者网络设备等)或处理器(processor)执行本发明各个实施例所述应用程序测试方法的部分。
所述计算机设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指示相关的硬件设备来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器等。
进一步地,计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
总线可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,在图3中仅用一根直线表示,但并不表示仅有一根总线或一种类型的总线。所述总线被设置为实现所述存储器12以及至少一个处理器13等之间的连接通信。
尽管未示出,所述计算机设备1还可以包括给各个部件供电的电源(比如电池),优选地,电源可以通过电源管理装置与所述至少一个处理器13逻辑相连,从而通过电源管理装置实现充电管理、放电管理、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机设备1还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
进一步地,所述计算机设备1还可以包括网络接口,可选地,所述网络接口可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该计算机设备1与其他计算机设备之间建立通信连接。
可选地,该计算机设备1还可以包括用户接口,用户接口可以是显示器(Display)、输入单元(比如键盘(Keyboard)),可选地,用户接口还可以是标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在计算机设备1中处理的信息以及用于显示可视化的用户界面。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
图3仅示出了具有组件12-13的计算机设备1,本领域技术人员可以理解的是,图3示出的结构并不构成对所述计算机设备1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。
结合图1,所述计算机设备1中的所述存储器12存储多个指令以实现一种应用程序测试方法,所述处理器13可执行所述多个指令从而实现:
当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表;
获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序;
获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本;
在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件;
当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件;
当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本;
当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格;
对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。本发明中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一、第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种应用程序测试方法,其特征在于,所述应用程序测试方法包括:
当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表;
获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序;
获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本;
在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件;
当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件;
当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本;
当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格;
对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
2.如权利要求1所述的应用程序测试方法,其特征在于,所述将埋点的记录写入埋点数据表包括:
获取预先配置的每个功能点的执行顺序;
获取每个功能点的标识;
将每个功能点的执行顺序及每个功能点的标识写入表格,得到所述埋点数据表。
3.如权利要求1所述的应用程序测试方法,其特征在于,在按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本时,所述方法还包括:
当检测到有流程分支执行完毕时,获取检测到的流程分支对应的当前页面;
获取所述检测到的流程分支的分支起点;
将所述当前页面回退至所述分支起点;
根据每个功能的流程分支的执行顺序确定与所述检测到的流程分支对应的下一流程分支;
从所述下一流程分支开始继续执行所述模拟点击脚本。
4.如权利要求1所述的应用程序测试方法,其特征在于,所述通过所述目标接口调取数据处理所述数据填充事件包括:
通过所述目标接口连接至配置数据库,其中,所述配置数据库中存储着开发所述待测试应用程序时的测试数据;
获取所述数据填充事件所对应的待填充栏位的标识作为目标标识;
利用所述目标标识在所述配置数据库中进行查询,并将查询到的具有所述目标标识的数据确定为待填充数据;
将所述待填充数据填充至所述待填充栏位;
在确定所述待填充栏位填充完毕后,继续按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本。
5.如权利要求1所述的应用程序测试方法,其特征在于,当检测到所述错误事件时,所述方法还包括:
确定所述错误事件所属的流程分支,并中断所述错误事件所属的流程分支;
根据埋点获取所述错误事件所属的流程分支内每个功能点的测试结果;
根据每个功能点的测试结果确定发生错误的功能点;
获取所述发生错误的功能点的测试结果生成错误报告。
6.如权利要求1所述的应用程序测试方法,其特征在于,所述对比所述测试表格与所述埋点数据表,得到对比结果包括:
获取所述测试表格中功能点的数量作为第一数量,及获取所述埋点数据表中功能点的数量作为第二数量;
当所述第一数量小于所述第二数量时,将所述测试表格中的功能点与所述埋点数据表中的功能点进行匹配,并将所述埋点数据表中没有匹配到的功能点确定为遗漏功能点,将所述对比结果确定为所述待测试应用程序中的所述遗漏功能点被漏测试;
当所述第一数量等于所述第二数量时,检测所述测试表格中是否有重复的功能点,当所述测试表格中没有重复的功能点时,将所述对比结果确定为所述待测试应用程序中每个功能的流程分支的功能点都完成测试。
7.如权利要求1所述的应用程序测试方法,其特征在于,在根据所述对比结果生成测试报告后,所述方法还包括:
当检测到所述测试报告时,确定完成测试;
将所述测试报告传输至Kafka;
连接至邮件通知接口;
当所述邮件通知接口监控到所述Kafka消费了所述测试报告时,通过所述邮件通知接口发送带有所述测试报告的提示邮件至指定终端设备。
8.一种应用程序测试装置,其特征在于,所述应用程序测试装置包括:
埋点单元,用于当接收到待测试应用程序时,对所述待测试应用程序中每个功能的流程分支的功能点进行埋点,并将埋点的记录写入埋点数据表;
插入单元,用于获取预先编写的模拟点击脚本,将所述模拟点击脚本插入所述待测试应用程序;
执行单元,用于获取预先配置的每个功能的流程分支的执行顺序,并按照每个功能的流程分支的执行顺序在所述待测试应用程序上执行所述模拟点击脚本;
监控单元,用于在执行所述模拟点击脚本的过程中,监控数据填充事件及错误事件;
处理单元,用于当检测到所述数据填充事件时,确定所述数据填充事件所属的流程分支作为目标分支,并将与所述目标分支相关联的接口确定为目标接口,通过所述目标接口调取数据处理所述数据填充事件;
所述执行单元,还用于当检测到所述错误事件时,根据所述错误事件确定下一个待执行的流程分支,并从所述下一个待执行的流程分支开始继续执行所述模拟点击脚本;
生成单元,用于当所述模拟点击脚本执行结束时,获取所述待测试应用程序中所有功能点的埋点数据,并根据所述埋点数据生成测试表格;
所述生成单元,还用于对比所述测试表格与所述埋点数据表,得到对比结果,并根据所述对比结果生成测试报告。
9.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至7中任意一项所述的应用程序测试方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现如权利要求1至7中任意一项所述的应用程序测试方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110850086.7A CN113505079A (zh) | 2021-07-27 | 2021-07-27 | 应用程序测试方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110850086.7A CN113505079A (zh) | 2021-07-27 | 2021-07-27 | 应用程序测试方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113505079A true CN113505079A (zh) | 2021-10-15 |
Family
ID=78014835
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110850086.7A Pending CN113505079A (zh) | 2021-07-27 | 2021-07-27 | 应用程序测试方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113505079A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017167042A1 (zh) * | 2016-04-01 | 2017-10-05 | 阿里巴巴集团控股有限公司 | 前端用户行为统计方法及装置 |
CN109376078A (zh) * | 2018-09-25 | 2019-02-22 | 平安普惠企业管理有限公司 | 移动应用的测试方法、终端设备及介质 |
CN109800123A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 自动化电量测试方法、装置、计算机设备及存储介质 |
CN110362480A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 客户端埋点测试方法、装置、设备及存储介质 |
CN111427803A (zh) * | 2020-06-11 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | 自动化随机测试方法、装置、计算机设备及介质 |
-
2021
- 2021-07-27 CN CN202110850086.7A patent/CN113505079A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017167042A1 (zh) * | 2016-04-01 | 2017-10-05 | 阿里巴巴集团控股有限公司 | 前端用户行为统计方法及装置 |
CN109376078A (zh) * | 2018-09-25 | 2019-02-22 | 平安普惠企业管理有限公司 | 移动应用的测试方法、终端设备及介质 |
CN109800123A (zh) * | 2018-12-14 | 2019-05-24 | 深圳壹账通智能科技有限公司 | 自动化电量测试方法、装置、计算机设备及存储介质 |
CN110362480A (zh) * | 2019-06-19 | 2019-10-22 | 平安普惠企业管理有限公司 | 客户端埋点测试方法、装置、设备及存储介质 |
CN111427803A (zh) * | 2020-06-11 | 2020-07-17 | 平安国际智慧城市科技股份有限公司 | 自动化随机测试方法、装置、计算机设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112015663B (zh) | 测试数据录制方法、装置、设备及介质 | |
CN113468049B (zh) | 基于可配置化接口的测试方法、装置、设备及介质 | |
CN113238929B (zh) | 基于Mock数据的代码测试方法、装置、电子设备及存储介质 | |
CN112579475A (zh) | 代码测试方法、装置、设备及可读存储介质 | |
CN112486957A (zh) | 数据库迁移检测方法、装置、设备及存储介质 | |
CN114816371B (zh) | 消息处理方法、装置、设备及介质 | |
CN113434397B (zh) | 任务系统的测试方法、装置、电子设备及存储介质 | |
CN114911479A (zh) | 基于配置化的界面生成方法、装置、设备及存储介质 | |
CN113505079A (zh) | 应用程序测试方法、装置、设备及介质 | |
CN114896164A (zh) | 接口优化方法、装置、电子设备及存储介质 | |
CN113051171A (zh) | 接口测试方法、装置、设备及存储介质 | |
CN113360398B (zh) | 混合应用程序测试方法、装置、设备及介质 | |
CN110348984B (zh) | 不同交易渠道下的信用卡数据自动化输入方法及相关设备 | |
CN113515265A (zh) | 站点配置方法、装置、设备及计算机可读存储介质 | |
CN112667244A (zh) | 数据校验方法、装置、电子设备及计算机可读存储介质 | |
CN113419916B (zh) | 风控检查程序不间断运行方法、装置、设备及存储介质 | |
CN115328812B (zh) | 基于网络爬虫的ui界面测试方法、装置、设备及介质 | |
CN112947974B (zh) | 桌面图标更新方法、装置、设备及计算机可读存储介质 | |
CN111538770B (zh) | 数据监控方法、装置、电子设备及可读存储介质 | |
CN113434359B (zh) | 数据溯源系统构建方法、装置、电子设备及可读存储介质 | |
CN113064797B (zh) | 前端监控方法、装置、电子设备及存储介质 | |
CN110716939B (zh) | 数据管理方法、电子设备、系统及介质 | |
CN114706715B (zh) | 一种基于bmc的分布式raid的控制方法、装置、设备及介质 | |
CN113485970A (zh) | 数据监控方法、装置、电子设备及存储介质 | |
CN116204358A (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 | ||
AD01 | Patent right deemed abandoned | ||
AD01 | Patent right deemed abandoned |
Effective date of abandoning: 20240507 |