1.本技术涉及软件测试领域,具体涉及一种软件异常检测方法、装置及存储介质。
背景技术:
2.随着信息技术的飞速发展,客户端得到了迅猛发展,人们日常生活与工作都离不开各类客户端。
3.在对相关技术的研究和实践过程中,本技术的发明人发现目前各类客户端在运行的过程中大都存在运行异常,需要对各客户端进行检测,确定异常。
技术实现要素:
4.本技术实施例提供一种软件异常检测方法、装置及存储介质,可以提高软件异常检测的效率。
5.本技术实施例提供了一种软件异常检测方法,包括:
6.接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,所述客户端启动脚本指示所述异常检测客户端的启动;
7.根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件;
8.根据所述目标安装文件,在所述异常检测客户端内安装所述目标客户端,得到待检测目标客户端;
9.获取所述异常检测客户端中至少一控件对应的控件属性信息;
10.基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果;
11.基于所述触发操作检测结果,得到所述目标客户端的异常检测结果。
12.相应的,本技术实施例提供了一种软件异常检测装置,包括:
13.接收单元,用于接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,所述客户端启动脚本指示所述异常检测客户端的启动;
14.第一获取单元,用于根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件;
15.第一安装单元,用于根据所述目标安装文件,在所述异常检测客户端内安装所述目标客户端,得到待检测目标客户端;
16.第二获取单元,用于获取所述异常检测客户端中至少一控件对应的控件属性信息;
17.第一操作检测单元,用于基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果;
18.第一异常检测单元,用于基于所述触发操作检测结果,得到所述目标客户端的异常检测结果。
19.在一实施例中,所述第一获取单元,包括:
20.安装子单元,用于基于所述客户端启动脚本,安装并启动所述异常检测客户端;
21.识别子单元,用于根据所述异常检测标识,对所述目标客户端进行识别,得到识别结果;
22.第一获取子单元,用于根据所述识别结果,获取所述目标客户端在所述异常检测客户端中的目标安装文件。
23.在一实施例中,所述操作检测单元,包括:
24.第二获取子单元,用于获取所述待测目标客户端中各页面区域的检测权重信息;
25.检测子单元,用于基于所述检测权重信息,通过所述至少一控件对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的原始触发操作检测结果;
26.结果确定子单元,用于基于所述控件属性信息与原始触发操作检测结果,确定所述至少一控件的触发操作检测结果。
27.在一实施例中,所述检测子单元还用于基于所述检测权重信息,确定所述待检测目标客户端各页面区域的检测权重;基于所述检测权重,通过所述至少一控件对所述待检测目标客户端的页面区域进行触发操作检测,得到所述至少一控件的原始触发操作检测结果。
28.在一实施例中,所述软件异常检测装置,还包括:
29.第三获取单元,用于基于所述异常检测客户端的客户端启动脚本,获取所述异常检测客户端的安装文件;
30.第二安装单元,用于基于所述异常检测客户端的安装文件,安装所述异常检测客户端。
31.在一实施例中,所述软件异常检测装置,还包括:
32.第一信息生成单元,用于基于所述异常检测结果,生成所述目标客户端的目标异常信息,所述目标异常信息包括所述目标客户端的客户端标识和异常提示信息;
33.第一发送单元,用于将所述客户端标识和所述异常提示信息,发送到异常处理终端,以便所述异常处理终端基于所述异常提示信息,对所述客户端标识对应的客户端进行异常处理。
34.在一实施例中,所述软件异常检测装置,还包括:
35.第四获取单元,用于获取所述目标客户端在所述异常检测客户端中的当前安装文件,将所述目标安装文件替换为所述当前安装文件;
36.第三安装单元,用于基于所述当前安装文件,在所述异常检测客户端内安装所述当前安装文件,得到新的待测目标客户端;
37.第二异常检测单元,用于对所述新的待测目标客户端进行异常检测;
38.累计单元,用于当所述新的待测目标客户端的当前异常检测结果,与所述异常检测结果对应的异常相同时,对所述异常进行次数累计;
39.第二发送单元,用于当所述次数累计达到预设次数时,向所述异常处理终端发送所述目标客户端的异常处理信息。
40.在一实施例中,所述软件异常检测装置,还包括:
41.第二信息生成单元,当所述新的待测目标客户端的当前异常检测结果,与所述异
常检测结果对应的异常不相同时,生成所当述新的待测目标客户端的当前目标异常信息;
42.第三发送单元,用于将所述当前目标异常信息发送到所述异常处理终端,以便所述异常处理终端基于所述当前目标异常信息对所述新的待测目标客户端进行异常处理。
43.相应的,本技术实施例还提供了一种计算机设备,包括存储器,处理器及存储在储存器上并可在处理器上运行的计算机程序,其中,所述处理器执行本技术实施例任一提供的软件异常检测方法中的步骤。
44.相应的,本技术实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适用于处理器进行加载,以执行本技术实施例任一提供的软件异常检测方法中的步骤。
45.本技术实施例可以接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,所述客户端启动脚本指示所述异常检测客户端的启动;然后,根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件;之后,根据所述目标安装文件,在所述异常检测客户端内安装所述目标客户端,得到待检测目标客户端;获取所述异常检测客户端中至少一控件对应的控件属性信息;基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果;最后,基于所述触发操作检测结果,得到所述目标客户端的异常检测结果。本方案可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
附图说明
46.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
47.图1是本技术实施例提供的软件异常检测方法的场景示意图;
48.图2a是本技术实施例提供的软件异常检测方法的流程图;
49.图2b是本技术实施例提供的软件异常检测方法的验证码输入页面图;
50.图2c是本技术实施例提供的软件异常检测方法的安装文件下载示意图;
51.图2d是本技术实施例提供的软件异常检测方法的技术整体流程图;
52.图3a是本技术实施例提供的软件异常检测方法的另一流程图;
53.图3b是本技术实施例提供的软件异常检测方法的异常检测客户端页面图;
54.图4a是本技术实施例提供的软件异常检测方法的装置图;
55.图4b是本技术实施例提供的软件异常检测方法的另一装置图;
56.图4c是本技术实施例提供的软件异常检测方法的另一装置图;
57.图5是本技术实施例提供的计算机设备的结构示意图。
具体实施方式
58.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
59.本技术实施例提供一种软件异常检测方法、装置、计算机设备及存储介质。具体地,本技术实施例提供适用于计算机设备的软件异常检测装置。其中,该计算机设备可以为终端或服务器等设备,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本技术在此不做限制。
60.参考图1,以计算机设备为终端为例,该终端可以接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动;根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件;根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端;获取异常检测客户端中至少一控件对应的控件属性信息;基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果;基于触发操作检测结果,得到目标客户端的异常检测结果。
61.由以上可知,本技术实施例可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
62.本实施例可以以下分别进行详细说明,需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。
63.本技术实施例提供一种软件异常检测方法,该方法可以由终端或服务器执行,也可以由终端和服务器共同执行;本技术实施例以软件异常检测方法由终端执行为例来进行说明,具体的,由集成在服务器中的软件异常检测装置来执行。如图2a所示,该软件异常检测方法的具体流程可以如下:
64.201、接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动。
65.其中,异常检测客户端指的是用于对目标客户端进行异常检测的客户端,比如,异常检测客户端可以为部署智能monkey工具的客户端,等等。
66.其中,智能monkey工具,是一种可以对app进行随机点击测试的工具,在智能monkey驱动下,可以通过智能monkey的控件对产品任一页面区域随机点击,在随机点击的过程中如果发现异常,就会自动给对应的开发人员建立bug单,然后开发人员解决完对应bug提交代码,触发构建一个修复好的apk包,智能monkey会对修复好的apk包重新进行随机点击测试。
67.其中,异常指的是app在使用的过程中出现的异常现象,比如,闪退、卡死无响应,
影响了用户对于产品功能的使用,等这类问题,也叫bug。
68.其中,目标客户端为待进行异常检测的客户端,比如,在app发布前,需要针对app进行随机点击测试来发现是否有缺陷问题,即针对app进行异常检测来确定该app是否存在异常,此时,该app指的就是待检测的目标客户端。
69.其中,异常检测客户端的客户端启动脚本可以用于获取异常检测客户端的安装包,然后安装并启动异常检测客户端,比如,可以基于智能monkey的客户端启动脚本,获取智能monkey的安装包,然后安装并启动智能monkey,以对目标客户端进行异常检测。
70.在一示例中,如图2b所示,可以将待检测的目标客户端接入智能monkey工具,针对业务输入专属验证码,进入到智能monkey主页面,选择对应的待测的目标客户端,会自动拉取到该目标客户端下的任务配置,然后点击“打开monkey服务”,然后点击“monkey一下”,如图2c所示,就会自动下载所选目标客户端的安装包,安装完成后,智能monkey工具会自动启动被测的目标客户端,至此,智能monkey工具就成功运行起来了,其中,可以通过异常检测客户端的客户端启动脚本,同时借助蓝盾流水线配置每日定时执行计划,构建出智能monkey安装包之后,通过插件触发计划的执行,可以代替图2b所示的人工操作流程,节省了时间。在一实施例中,可以通过异常检测客户端来接收目标客户端的异常检测请求,比如,可以基于异常检测客户端的客户端启动脚本,安装并启动异常检测客户端,然后可以通过异常检测客户端去接收目标客户端发送的异常检测请求。
71.在一示例中,可以利用自动化平台去控制异常检测客户端,比如,可以利用qta自动化平台去控制智能monkey工具,从而可以对待检测的目标客户端进行定时拉取安装,从而达到自动化效果,即可以通过自动化qta自动化平台,编写好自动化脚本,配置每日定时执行客户端异常检测计划,生成预设操作执行文件,之后就可以通过插件触发qta计划的执行,自动对待检测的客户端进行异常检测。
72.其中,qta是一个跨平台的测试自动化工具,适用于后台、原生或混合型客户端应用的测试。它可以支持android、ios、web、后台、云服务和windows端的ui自动化测试,是使用较为广泛的自动化测试框架。
73.在一实施例中,软件异常检测方法还可以包括:
74.基于异常检测客户端的客户端启动脚本,获取异常检测客户端的安装文件;
75.基于异常检测客户端的安装文件,安装异常检测客户端。
76.在一实施例中,可以对目标客户端进行智能化测试,无需人工参与,配置定时计划,然后定时开始app的智能monkey测试,其中,可以通过基于qta自动化平台生成的预设操作执行文件,来自动获取异常检测客户端的安装文件,以对该安装文件进行安装,生成异常检测客户端,然后触发基于异常检测客户端对待检测的目标客户端进行异常检测。
77.202、根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件。
78.其中,目标安装文件指的是目标客户端的安装文件,可以在目标客户端构建完成之后,发送到智能monkey工具的后台服务器,响应于异常检测请求,从后台服务器中获取目标客户端的安装文件,还可以在接收异常检测请求时,接收目标客户端对应终端发送的目标客户端的安装文件。
79.在一实施例中,异常检测请求包括异常检测标识,步骤“根据异常检测请求与客户
端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件”,可以包括:
80.基于客户端启动脚本,安装并启动异常检测客户端;
81.根据异常检测标识,对目标客户端进行识别,得到识别结果;
82.根据识别结果,获取目标客户端在异常检测客户端中的目标安装文件。
83.在一示例中,可以通过qta平台配置定时执行的自动化计划,该计划每次都会去卸载(如果有)测试机上的智能monkey app,并重新安装。
84.203、根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端。
85.其中,待检测目标客户端是安装在异常检测客户端内的目标客户端,对目标客户端进行异常检测时,可以通过对待检测目标客户端中控件的触发操作,来对目标客户端进行异常检测。
86.在一实施例中,以异常检测客户端为部署智能monkey工具的客户端为例进行说明,图2d为通过异常检测客户端对目标客户端进行异常检测的技术整体流程图,通过异常检测客户端对目标客户端进行检测的步骤可以包括:
87.(1)首先业务侧接入智能monkey,包括注册产品、配置注册运行任务等,其中任务配置可以填写bug单处理人和发现版本(智能monkey工具执行过程中遇到crash提单时会用到这些信息)、点击算法,比如动态加权,智能monkey工具可以对原生monkey随机点击算法进行了改造,避免出现大概率点击无效控件的表现。
88.(2)接入智能monkey之后,可以通过qta平台,编写好自动化脚本,同时可以借助蓝盾流水线,配置每日定时启动计划,构建出智能monkey安装包后,通过插件触发qta计划的执行,可以自动安装智能monkey app。
89.(3)通过qta平台配置定时执行的自动化计划,该计划可以每次去卸载测试机上的智能monkey app,并重新安装。
90.(4)被测app,比如目标客户端的构建完成后,monkey的插件会对被测app进行解包、插桩、重打包,然后上传是monkey的后台。
91.(5)智能monkey点击“monkey一下”之后,会从monkey的后台自动下载并安装已经经过插桩的被测app。
92.(6)安装完成后,可以开始通过“动态加权”的点击算法,去操作被测app,智能monkey工具在执行过程中,如果检测到被测app发生异常,会先停止执行,然后进行提单给到对应的开发,在这之前可以先对缺陷进行判断,例如,是否有限缺陷、是否重复缺陷等,提单完成之后继续执行智能monkey,此时会重新下载并安装被测app,确保整个过程是迭代的进行,避免出现一直使用带缺陷的app进行monkey测试。
93.204、获取异常检测客户端中至少一控件对应的控件属性信息。
94.其中,控件属性信息可以通过获取控件的工具获取,比如,可以通过androiduispy获取异常检测客户端中至少一控件的控件属性信息。
95.在一实施例中,可以通过androiduispy,获取异常检测客户端中至少一控件的属性信息,比如,获取控件的唯一属性,拿到了控件的唯一属性,可以知道控件的位置,然后可以利用程式化模拟用户进行自动化的click(点击)事件,另外,可以利用qta自动化平台控制这个异常检测客户端,从而对目标客户端进行定时拉取安装,可以达到自动化效果,最
后,异常检测客户端可以自动进行“动态加权”的随机点击事件,进而可以发现目标客户端的异常,比如,闪退、卡死无响应等异常。
96.其中,在一示例中,动态加权可以理解为根据实际需要,对待检测目标客户端的各页面区域设置检测权重,在通过异常检测客户端对目标客户端进行检测的时候,可以基于各页面区域的检测权重,通过异常客户端的至少一控件,模拟用户针对目标客户端的页面区域进行触发操作,以根据触发操作结果,确定目标客户端的异常检测结果。
97.205、基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果。
98.其中,控件属性信息可以包括唯一的控件属性,可以唯一标识某一控件的属性是名称,比如,控件属性信息还可以包括其他常用的格式属性,如高度(height)、宽度(width)、背景样式(back style)、是否可见(visible)等。
99.在一实施例中,步骤“基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果”,可以包括:
100.获取待测目标客户端中各页面区域的检测权重信息;
101.基于检测权重信息,通过至少一控件对待检测目标客户端进行触发操作检测,得到至少一控件的原始触发操作检测结果;
102.基于控件属性信息与原始触发操作检测结果,确定至少一控件的触发操作检测结果。
103.在一实施例中,步骤“基于检测权重信息,通过至少一控件对待检测目标客户端进行触发操作检测,得到至少一控件的原始触发操作检测结果”,可以包括:
104.基于检测权重信息,确定待检测目标客户端各页面区域的检测权重;
105.基于检测权重,通过至少一控件对待检测目标客户端的页面区域进行触发操作检测,得到至少一控件的原始触发操作检测结果。
106.206、基于触发操作检测结果,得到目标客户端的异常检测结果。
107.其中,异常检测指的是检测目标客户端是否存在异常,比如,检测目标客户端是否存在,闪退、卡死无响应等异常。
108.在一实施例中,触发操作检测结果包括页面区域触发响应信息,步骤“基于触发操作检测结果,得到目标客户端的异常检测结果”,可以包括:
109.基于页面区域触发响应信息,对目标客户端进行异常检测,得到目标客户端的异常检测结果;
110.基于触发操作检测结果,得到目标客户端的异常检测结果之后,软件异常检测方法还包括:
111.当页面区域触发响应信息未满足预设异常检测条件时,确定目标客户端的异常检测结果为异常;
112.当页面触发响应信息满足预设异常检测条件是,确定目标客户端的异常检测结果为正常。
113.在一实施例中,页面区域触发响应信息包括实际响应时间,预设异常检测条件包括预设响应时间,步骤“当页面区域触发响应信息未满足预设异常检测条件时,确定目标客户端的异常检测结果为异常”,可以包括:
114.当响应时间未在预设响应时间段内时,确定目标客户端的异常检测结果为异常。
115.在一实施例中,页面区域触发响应信息包括实际响应时间,预设异常检测条件包括预设响应时间,步骤“当页面区域触发响应信息满足预设异常检测条件是,确定目标客户端的异常检测结果为正常”,可以包括:
116.当响应时间在预设响应时间段内时,确定目标客户端的异常检测结果为正常。
117.在一实施例中,步骤“基于触发操作检测结果,得到目标客户端的异常检测结果”之后,还可以包括:
118.基于异常检测结果,生成目标客户端的目标异常信息,目标异常信息包括目标客户端的客户端标识和异常提示信息;
119.将客户端标识和异常提示信息,发送到异常处理终端,以便异常处理终端基于异常提示信息,对客户端标识对应的客户端进行异常处理。
120.在一示例中,如图2d所示,若检测到被测的目标客户端发生异常,即上述提到的对目标客户端进行异常检测,得到目标客户端的异常检测结果,并且该检测结果为异常,会先停止执行接下来的对目标客户端的异常检测,然后进行提单给到对应的开发人员,以处理该异常,显而易见的是,在这之前会先对异常进行判断,例如,是否为有效异常、是否为重复的异常,等等,提完单之后继续执行异常检测客户端(如,智能monkey工具)对目标客户端进行异常检测,此时会重新下载并安装被测app,即重新下载并安装目标客户端,确保整个过程是迭代的进行,避免出现一直使用带异常的app进行异常检测(monkey测试)。
121.在一实施例中,步骤“将客户端标识和异常提示信息,发送到异常处理终端,以便异常处理终端基于异常提示信息,对客户端标识对应的客户端进行异常处理”之后,还可以包括:
122.获取目标客户端在异常检测客户端中的当前安装文件,将目标安装文件替换为当前安装文件;
123.基于当前安装文件,在异常检测客户端内安装当前安装文件,得到新的待测目标客户端;
124.对新的待测目标客户端进行异常检测;
125.当新的待测目标客户端的当前异常检测结果,与异常检测结果对应的异常相同时,对异常进行次数累计;
126.当次数累计达到预设次数时,向异常处理终端发送目标客户端的异常处理信息。
127.在一示例中,基于触发操作检测结果,对目标客户端进行异常检测,然后根据异常检测结果,确定目标客户端存在异常,可以将该异常对应的提示信息发送给开发人员,以处理该异常,然后可以继续重新下载安装目标客户端,确保整个过程是迭代的进行,避免出现一直使用带缺陷的app进行异常检测,安装完成之后,继续对安装完成的目标客户端进行异常检测,若检测到与上一次的异常检测结果相同,则可以将该异常记录下来,再继续对安装完成的目标客户端进行异常测试,然后根据异常测试的结果,确定安装后的目标客户端是否存在新的异常,若存在则将新的异常对应的提示信息发送给开发人员,以处理目标客户端的新的异常。
128.在一实施例中,步骤“对新的待测目标客户端进行异常检测”之后,还可以包括:
129.当新的待测目标客户端的当前异常检测结果,与异常检测结果对应的异常不相同
时,生成所当述新的待测目标客户端的当前目标异常信息;
130.将当前目标异常信息发送到异常处理终端,以便异常处理终端基于当前目标异常信息对新的待测目标客户端进行异常处理。
131.在一实施例中,目标客户端中可以会存在一些系统弹窗,比如,目标客户端的升级弹窗,可以通过点击升级弹窗的预设区域来升级目标客户端的版本,还可以通过点击弹窗的关闭按钮把该升级弹窗关闭,这些系统弹窗需要人工处理,才能执行智能monkey后续的操作,如果弹窗用户不处理点击,就会长时间卡在那里陷入死循环,因为monkey工具概率性会点不到系统弹窗的关闭按钮,所以可以针对这种弹窗可以进行白名单屏蔽。
132.本技术实施例可以一键启动待检测的目标客户端通过异常检测客户端,比如智能monkey客户端进行自动化测试,通过控制智能monkey客户端随机点击目标客户端,来发现被测目标客户端是否存在异常、线程安全等问题,然后将发现的问题自动化提单给开发人员,开发人员解决后,智能monkey客户端检测到对应的被测分支有最新的目标客户端安装包,可以重新进行下载最新的目标客户端安装包并进行安装,可以的到新的待检测目标客户端,然后进行通过智能monkey的至少一控件随机点击新的待检测目标客户端,进行异常测试,循环往复直至目标客户端没有检测出异常,从而确保线上客户端没有问题。
133.通过本技术实施例,可以实现每天无需手动操作点击执行app里面的页面来发现异常,有异常能随时提bug单,然后下载最新被测app的安装包来继续执行操作,可以实现发现问题、解决问题、验证问题的环。
134.由以上可知,本技术实施例可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
135.根据上述介绍的内容,下面将举例来进一步说明本技术的软件异常检测方法。参考图3a,一种软件异常检测方法,具体流程可以如下:
136.301、终端基于异常检测客户端的客户端启动脚本,获取异常检测客户端的安装文件。
137.其中,异常检测客户端的客户端启动脚本可以通过自动化平台构建生成,比如,可以通过qta平台,编写好自动化脚本,配置每日定时执行app异常检测计划,生成客户端启动脚本并且,客户端启动脚本还可以自动获取异常检测客户端的安装文件,然后对该安装文件进行安装并启动,以对目标客户端进行异常检测。
138.在一示例中,在app发布前,需要针对app进行随机点击来发现是否有异常问题,具体为可以通过将该待发布的app接入异常检测客户端,通过异常检测客户端来对待发布的app进行异常检测,比如,可以按照预设算法,通过异常检测客户端来检测待发布的app是否有异常,是否存在bug。
139.在一示例中,可以对已经发布的app,通过异常检测客户端,对已经发布的app进行异常检测,当发现发布的app存在bug时,提交bug单,以解决该bug,提升用户的app使用体验。
140.302、终端基于异常检测客户端的安装文件,安装异常检测客户端。
141.在一示例中,以异常检测客户端为智能monkey客户端为例,参考图2d,可以在qta平台配置定时启动计划,根据该定时计划,自动安装启动智能monkey客户端,安装好智能monkey客户端。
142.其中,通过qta平台配置定时启动计划,自动安装启动自动智能monkey客户端的好处在于可以通过qta平台编写好自动化脚本,同时借助蓝盾流水线,配置每日定时执行计划,构建出智能monkey安装包后,通过插件触发qta计划的执行,可以替代人工操作流程,节省了时间。原先需要手动下载智能monkey app,然后人工选择对应产品以及对应的任务配置,智能monkey app请求到该产品该任务的详细信息并展示出来,如图3b所示,然后点击打开monkey权限,最后点击monkey一下,等一系列操作,过程繁琐耗时,而且因为是人工执行,多数时候都会忘记,执行效率较低。
143.303、终端接收目标客户端的异常检测请求。
144.在一实施例中,目标客户端的异常检测请求携带了专属验证码,可以通过对专属验证码进行识别,以根据识别结果,确定要通过异常检测客户端进行异常检测的客户端。
145.在一示例中,以异常检测客户端为智能monkey客户端为例进行说明,待检测的目标客户端可以接入智能monkey客户端,针对业务输入专属验证码,进入到智能monkey主页面,选择对应的产品(比如,目标客户端),会自动拉取到该产品下的任务配置,然后点击“打开monkey服务”(打开智能money的权限),然后点击“monkey一下”,就会自动下载所选产品的安装包(比如,目标客户端的安装包),安装完成之后,智能monkey客户端可以自动启动被测app(比如,目标客户端),至此,monkey就成功运行起来了。
146.304、终端根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件。
147.在一示例中,目标客户端在异常检测客户端中的目标安装文件,可以是在目标客户端构建完成之后,智能monkey客户端中的插件可以对目标客户端进行解包、插桩、重打包,然后上传至智能monkey客户端的后台。
148.在一示例中,目标客户端在异常检测客户端中的目标安装文件,可以是在接收目标客户端的异常检测请求时,同时接收目标安装文件,然后将目标安装文件上传至智能monkey客户端的后台,以便后续的下载等使用。
149.305、终端根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端。
150.在一示例中,通过异常检测客户端对目标客户端进行异常检测,可以在异常检测客户端内安装目标客户端,然后通过对安装在异常检测客户端内的目标客户端(即待检测目标客户端)进行异常检测,可以得到对目标客户端的异常检测结果。
151.其中,目标客户端与待检测目标客户端的区别是,目标客户端是安装在异常检测客户端外的目标客户端,可以是与异常检测客户端安装在同一终端的,还可以是与异常检测客户端安装在不同终端上的,而待检测目标客户端是安装在异常检测客户端内的。
152.306、终端获取异常检测客户端中至少一控件对应的控件属性信息。
153.在一示例中,可以通过获取控件的工具,获取异常检测客户端中至少一控件的控件属性信息,比如,可以获取异常检测客户端中至少一控件的控件唯一属性,拿到了唯一的控件属性,相当于知道了这些控件的位置,然后可以模拟用户针对待检测目标客户中各页
面区域的触发操作,最后基于触发操作结果,来确定目标客户端异常检测结果。
154.307、终端基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果。
155.在一示例中,触发操作检测指的是根据控件属性信息,对待检测目标客户端的各页面区域按照预设触发条件进行触发操作。
156.其中,预设触发条件可以包括动态加权算法,智能monkey客户端对原生monkey随机点击算法进行了改造,得到动态加权算法,避免出现大概率点击无效页面区域的表现,然后可以基于动态加权算法,对待检测目标客户端中的各页区域设置触发权重,根据设置的触发权重和控件属性信息,对待检测目标客户端中各页面区域进行触发操作,可以得到异常检测客户端中至少一控件的触发操作检测结果。
157.308、终端基于触发操作检测结果,得到目标客户端的异常检测结果。
158.在一示例中,触发检测结果包括页面区域触发响应信息,根据页面区域触发响应信息,可以确定基于针对待检测目标客户端中页面区域的触发操作,对应页面区域的实际响应时间,若实际响应时间在预设时间段内,则可以确定目标客户端的异常检测结果为正常,若实际响应时间不在预设时间段内,则可以确定目标客户端的异常检测结果为异常,可以提交该异常对应的异常单,发送给开发人员,以便对目标客户端的该异常进行处理。
159.其中,提完单之后继续执行monkey,此时会在异常检测客户端内重新下载并安装被测的目标客户端,确保整个过程是迭代的进行,避免出现一直使用带缺陷的app进行monkey测试。
160.其中,通过智能monkey客户端对新安装的目标客户端进行异常检测时,若检测到的异常与前一次检测到的异常一样,可以对这两次的异常进行次数累计,不同提同样的异常单给开发人员处理,然后继续对新的目标客户端进行异常检测,当检测到新的异常时,可以将新的异常到提交到开发人员那里,以便开发人员对该新的异常进行处理,之后继续执行monkey。
161.其中,基于通过qta平台配置定时执行的自动化计划,每次都可以去卸载(如果有)终端或测试机上的智能monkey app,并重新安装。
162.由以上可知,本技术实施例可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
163.为了更好地实施以上方法,相应的,本技术实施例还提供一种软件异常检测装置,其中,该软件异常检测装置具体可以集成在服务器中,参考图4a,该软件异常检测装置可以包括接收单元401、第一获取单元402、第一安装单元403、第二获取单元404、操作检测单元405和第一异常检测单元406,如下:
164.(1)接收单元401;
165.接收单元401,用于接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动。
166.(2)第一获取单元402;
167.第一获取单元402,用于根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件。
168.在一实施例中,如图4b所示,第一获取单元402,包括:
169.安装子单元4021,用于基于客户端启动脚本,安装并启动异常检测客户端;
170.识别子单元4022,用于根据异常检测标识,对目标客户端进行识别,得到识别结果;
171.第一获取子单元4023,用于根据识别结果,获取目标客户端在异常检测客户端中的目标安装文件。
172.(3)第一安装单元403;
173.第一安装单元403,用于根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端。
174.(4)第二获取单元404;
175.第二获取单元404,用于获取异常检测客户端中至少一控件对应的控件属性信息。
176.(5)操作检测单元405;
177.操作检测单元405,用于基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果。
178.在一实施例中,如图4c所示,操作检测单元405,包括:
179.第二获取子单元4051,用于获取待测目标客户端中各页面区域的检测权重信息;
180.检测子单元4052,用于基于检测权重信息,通过至少一控件对待检测目标客户端进行触发操作检测,得到至少一控件的原始触发操作检测结果;
181.结果确定子单元4053,用于基于控件属性信息与原始触发操作检测结果,确定至少一控件的触发操作检测结果。
182.在一实施例中,检测子单元4053还用于基于检测权重信息,确定待检测目标客户端各页面区域的检测权重;基于检测权重,通过至少一控件对待检测目标客户端的页面区域进行触发操作检测,得到至少一控件的原始触发操作检测结果。
183.(6)第一异常检测单元406;
184.第一异常检测单元406,用于基于触发操作检测结果,得到目标客户端的异常检测结果。
185.在一实施例中,软件异常检测装置,还包括:
186.第三获取单元407,用于基于异常检测客户端的客户端启动脚本,获取异常检测客户端的安装文件;
187.第二安装单元408,用于基于异常检测客户端的安装文件,安装异常检测客户端。
188.在一实施例中,软件异常检测装置,还包括:
189.第一信息生成单元409,用于基于异常检测结果,生成目标客户端的目标异常信息,目标异常信息包括目标客户端的客户端标识和异常提示信息;
190.第一发送单元410,用于将客户端标识和异常提示信息,发送到异常处理终端,以便异常处理终端基于异常提示信息,对客户端标识对应的客户端进行异常处理。
191.在一实施例中,软件异常检测装置,还包括:
192.第四获取单元411,用于获取目标客户端在异常检测客户端中的当前安装文件,将
目标安装文件替换为当前安装文件;
193.第三安装单元412,用于基于当前安装文件,在异常检测客户端内安装当前安装文件,得到新的待测目标客户端;
194.第二异常检测单元413,用于对新的待测目标客户端进行异常检测;
195.累计单元414,用于当新的待测目标客户端的当前异常检测结果,与异常检测结果对应的异常相同时,对异常进行次数累计;
196.第二发送单元415,用于当次数累计达到预设次数时,向异常处理终端发送目标客户端的异常处理信息。
197.在一实施例中,软件异常检测装置,还包括:
198.第二信息生成单元416,当新的待测目标客户端的当前异常检测结果,与异常检测结果对应的异常不相同时,生成所当述新的待测目标客户端的当前目标异常信息;
199.第三发送单元417,用于将当前目标异常信息发送到异常处理终端,以便异常处理终端基于当前目标异常信息对新的待测目标客户端进行异常处理。
200.由以上可知,本技术实施例的软件异常检测装置的接收单元401接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动;然后,由第一获取单元402根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件;由第一安装单元403根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端;由第二获取单元404获取异常检测客户端中至少一控件对应的控件属性信息;由第一操作检测单元405基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果;由第一异常检测单元406基于触发操作检测结果,得到目标客户端的异常检测结果。该方案可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端的控件进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
201.此外,本技术实施例还提供一种计算机设备,该计算机设备可以为终端或者服务器等设备,如图5所示,其示出了本技术实施例所涉及的计算机设备的结构示意图,具体来讲:
202.该计算机设备可以包括一个或者一个以上处理核心的处理器501、一个或一个以上存储介质的存储器502、电源503和输入单元504等部件。本领域技术人员可以理解,图5中示出的计算机设备结构并不构成对计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
203.处理器501是该计算机设备的控制中心,利用各种接口和线路连接整个计算机设备的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行计算机设备的各种功能和处理数据,从而对计算机设备进行整体监控。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处
理器501中。
204.存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。
205.计算机设备还包括给各个部件供电的电源503,优选的,电源503可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源503还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
206.该计算机设备还可包括输入单元504,该输入单元504可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
207.尽管未示出,计算机设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,计算机设备中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:
208.接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动;根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件;根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端;获取异常检测客户端中至少一控件对应的控件属性信息;基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一的触发操作检测结果;基于触发操作检测结果,得到目标客户端的异常检测结果。
209.由以上可知,本技术实施例可以基于预先配置好的自动化计划,将需要进行异常检测的目标客户端接入异常检测客户端,然后在异常检测客户端内安装目标客户端,得到待测目标客户端,之后获取异常检测客户端中至少一控件的控件属性信息,根据控件属性信息与异常检测客户端中至少一控件,模拟对待检测目标客户端进行触发操作,根据触发操作结果,可以得到目标客户端的异常检测结果,可以提高软件异常检测的效率。
210.本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一存储介质中,并由处理器进行加载和执行。
211.为此,本技术实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本技术实施例所提供的任一种软件异常检测方法中的步骤。例如,该指令可以执行如下步骤:
212.接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动;根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件;根据目标安装文件,在异常检测客户端内安
装目标客户端,得到待检测目标客户端;获取异常检测客户端中至少一控件对应的控件属性信息;基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一的触发操作检测结果;基于触发操作检测结果,得到目标客户端的异常检测结果。
213.其中,该存储介质可以包括:只读存储器(rom,read only memory)、随机存取记忆体(ram,random access memory)、磁盘或光盘等。
214.由于该存储介质中所存储的指令,可以执行本技术实施例所提供的任一种软件异常检测方法中的步骤,因此,可以实现本技术实施例所提供的任一种软件异常检测方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
215.其中,根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述发明内容和实施例中提供的软件异常检测方法。
216.以上对本技术实施例所提供的一种软件异常检测方法、装置、计算机设备及存储介质进行了详细介绍,本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
技术特征:
1.一种软件异常检测方法,其特征在于,包括:接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,所述客户端启动脚本指示所述异常检测客户端的启动;根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件;根据所述目标安装文件,在所述异常检测客户端内安装所述目标客户端,得到待检测目标客户端;获取所述异常检测客户端中至少一控件对应的控件属性信息;基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果;基于所述触发操作检测结果,得到所述目标客户端的异常检测结果。2.根据权利要求1所述的方法,其特征在于,所述基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果,包括:获取所述待检测目标客户端中各页面区域的检测权重信息;基于所述检测权重信息,通过所述至少一控件对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的原始触发操作检测结果;基于所述控件属性信息与原始触发操作检测结果,确定所述至少一控件的触发操作检测结果。3.根据权利要求2所述的方法,其特征在于,所述基于所述检测权重信息,通过所述至少一控件对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的原始触发操作检测结果,包括:基于所述检测权重信息,确定所述待检测目标客户端各页面区域的检测权重;基于所述检测权重,通过所述至少一控件对所述待检测目标客户端的页面区域进行触发操作检测,得到所述至少一控件的原始触发操作检测结果。4.根据权利要求1所述的方法,其特征在于,所述方法还包括:基于所述异常检测客户端的客户端启动脚本,获取所述异常检测客户端的安装文件;基于所述异常检测客户端的安装文件,安装所述异常检测客户端。5.根据权利要求1所述的方法,其特征在于,所述异常检测请求包括异常检测标识;所述根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件,包括:基于所述客户端启动脚本,安装并启动所述异常检测客户端;根据所述异常检测标识,对所述目标客户端进行识别,得到识别结果;根据所述识别结果,获取所述目标客户端在所述异常检测客户端中的目标安装文件。6.根据权利要求1所述的方法,其特征在于,所述基于所述触发操作检测结果,得到所述目标客户端的异常检测结果之后,所述方法还包括:基于所述异常检测结果,生成所述目标客户端的目标异常信息,所述目标异常信息包括所述目标客户端的客户端标识和异常提示信息;将所述客户端标识和所述异常提示信息,发送到异常处理终端,以便所述异常处理终
端基于所述异常提示信息,对所述客户端标识对应的所述目标客户端进行异常处理。7.根据权利要求6所述的方法,其特征在于,所述将所述客户端标识和所述异常提示信息,发送到异常处理终端,以便所述异常处理终端基于所述异常提示信息,对所述客户端标识对应的所述目标客户端进行异常处理之后,所述方法还包括:获取所述目标客户端在所述异常检测客户端中的当前安装文件,将所述目标安装文件替换为所述当前安装文件;基于所述当前安装文件,在所述异常检测客户端内安装所述当前安装文件,得到新的待测目标客户端;对所述新的待测目标客户端进行异常检测;当所述新的待测目标客户端的当前异常检测结果,与所述异常检测结果对应的异常相同时,对所述异常进行次数累计;当所述次数累计达到预设次数时,向所述异常处理终端发送所述目标客户端的异常处理信息。8.根据权利要求7所述的方法,其特征在于,所述对所述新的待测目标客户端进行异常检测之后,所述方法还包括:当所述新的待测目标客户端的当前异常检测结果,与所述异常检测结果对应的异常不相同时,生成所当述新的待测目标客户端的当前目标异常信息;将所述当前目标异常信息发送到所述异常处理终端,以便所述异常处理终端基于所述当前目标异常信息对所述新的待测目标客户端进行异常处理。9.一种软件异常检测装置,其特征在于,包括:接收单元,用于接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,所述客户端启动脚本指示所述异常检测客户端的启动;第一获取单元,用于根据所述异常检测请求与所述客户端启动脚本,获取所述目标客户端在异常检测客户端中的目标安装文件;第一安装单元,用于根据所述目标安装文件,在所述异常检测客户端内安装所述目标客户端,得到待检测目标客户端;第二获取单元,用于获取所述异常检测客户端中至少一控件对应的控件属性信息;第一操作检测单元,用于基于所述控件属性信息与所述至少一控件,对所述待检测目标客户端进行触发操作检测,得到所述至少一控件的触发操作检测结果;第一异常检测单元,用于基于所述触发操作检测结果,得到所述目标客户端的异常检测结果。10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至8任一项所述的软件异常检测方法中的步骤。
技术总结
本发明公开了一种软件异常检测方法、装置及存储介质;本申请实施例可以接收目标客户端的异常检测请求、以及异常检测客户端的客户端启动脚本,客户端启动脚本指示异常检测客户端的启动;根据异常检测请求与客户端启动脚本,获取目标客户端在异常检测客户端中的目标安装文件;根据目标安装文件,在异常检测客户端内安装目标客户端,得到待检测目标客户端;获取异常检测客户端中至少一控件对应的控件属性信息;基于控件属性信息与至少一控件,对待检测目标客户端进行触发操作检测,得到至少一控件的触发操作检测结果;基于触发操作检测结果,得到目标客户端的异常检测结果。本方案可以提高软件异常检测的效率。以提高软件异常检测的效率。以提高软件异常检测的效率。
技术研发人员:陈维燃 蒋政胜
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2020.11.23
技术公布日:2022/5/25
转载请注明原文地址:https://tc.8miu.com/read-15503.html