CN109857628A - 动态ui业务端代码性能检测方法及装置 - Google Patents
动态ui业务端代码性能检测方法及装置 Download PDFInfo
- Publication number
- CN109857628A CN109857628A CN201711241880.1A CN201711241880A CN109857628A CN 109857628 A CN109857628 A CN 109857628A CN 201711241880 A CN201711241880 A CN 201711241880A CN 109857628 A CN109857628 A CN 109857628A
- Authority
- CN
- China
- Prior art keywords
- component
- dynamic
- performance
- detected
- business end
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种动态UI业务端代码性能检测方法及装置,涉及计算机技术领域,主要目的在于能够及时的发现动态UI业务端代码中存在的性能问题,以便于开发人员及时修正性能问题,保证开发的动态UI业务端代码的准确性和可用性。主要技术方案包括:获取待检测的动态用户界面UI业务端代码的性能参数;根据所述性能参数获取对应的性能检测策略;利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题;若出现影响动态UI业务端代码性能的问题,则将对应性能问题输出显示。本发明可实现对动态UI业务端代码的性能检测。
Description
技术领域
本发明涉及计算机程序技术领域,特别是涉及一种动态UI业务端代码性能检测方法及装置。
背景技术
动态用户界面(UI,User Interface)作为一种友好的人机交互方式,近年来越来越多的应用在程序设计中。动态用户界面的业务端代码,通常是基于JavaScript语言开发,但由于现有技术中JavaScript没有针对动态UI业务端代码进行性能检测的技术方案,致使开发人员无法及时发现动态UI业务端代码存在的性能问题,当存在影响性能的问题时,动态UI业务端代码对应的客户端往往会直接崩溃或者是静默失败,并不会给开发者提供错误警报,使得开发的动态UI业务端代码无法正常使用。
发明内容
有鉴于此,本发明提供的一种动态UI业务端代码性能检测方法及装置,主要目的在于能够及时的发现动态UI业务端代码中存在的性能问题,以便于开发人员及时修正性能问题,保证开发的动态UI业务端代码的准确性和可用性。
为了解决上述问题,本发明主要提供如下技术方案:
第一方面,本发明提供了一种动态UI业务端代码性能检测方法,包括:
获取待检测的动态UI业务端代码的性能参数;
根据所述性能参数获取对应的性能检测策略;
利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题;
若出现影响动态UI业务端代码性能的问题,则将对应性能问题输出显示。
第二方面,本发明还提供一种动态UI业务端代码性能检测装置,包括:
参数获取单元,用于获取待检测的动态UI业务端代码的性能参数;
策略获取单元,用于根据所述性能参数获取对应的性能检测策略;
检测单元,用于利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题;
输出显示单元,用于在检测出现影响动态UI业务端代码性能的问题时,将对应性能问题输出显示。
第三方面,本发明还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的动态UI业务端代码性能检测方法。
第四方面,本发明还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的动态UI业务端代码性能检测方法。
第五方面,本发明还提供一种终端设备,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行如上所述的动态UI业务端代码性能检测方法。
本发明实施例提供的动态UI业务端代码性能检测方法及装置,能够根据待检测的性能参数,获取与该性能参数对应的对动态UI业务端代码产生的性能影响设置的检测规则,根据性能参数对应的检测规则,对待检测的动态UI业务端代码进行检测,及时发现影响动态UI业务端代码性能的问题;并且在检测到影响动态UI业务端代码性能的问题时,将该问题输出显示,给出问题提示信息,便于开发人员及时修正性能问题,保证开发的动态UI业务端代码的准确性和可用性。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种动态UI业务端代码性能检方法流程图;
图2示出了本发明实施例提供的一种基于客户端模块接口调用次数的动态UI业务端代码性能检方法流程图;
图3示出了本发明实施例提供的一种基于组件嵌套层级深度的动态UI业务端代码性能检方法流程图;
图4示出了本发明实施例提供的一种基于组件嵌套合法性的动态UI业务端代码性能检方法流程图;
图5示出了本发明实施例提供的一种基于样式合法性的动态UI业务端代码性能检方法流程图;
图6示出了本发明实施例提供的一种基于组件接口调用次数的动态UI业务端代码性能检方法流程图;
图7示出了本发明实施例提供的一种动态UI业务端代码性能检的组成框图;
图8示出了本发明实施例提供另一种动态UI业务端代码性能检的组成框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
本发明实施例要解决的问题是为动态UI业务开发人员提供一系列针对动态UI业务端代码的性能、规范的检测方案。在业务开发过程中,业务开发人员使用本发明的检测方法,当动态UI业务端代码存在性能问题时,可以及时得到影响到程序性能的报警提示,以便业务开发人员对具体问题进行及时的纠正,保证动态UI业务端代码的准确性和可用性。
本发明实施例提供一种动态UI业务端代码性能检测方法,如图1所示,该方法包括:
101、获取待检测的动态UI业务端代码的性能参数。
值得说明的是,客户端影响动态UI业务端代码的性能的参数有多种,该参数可以为但不局限于以下参数中的一种或者多种,该参数为客户端模块接口调用次数、组件嵌套层级深度、组件嵌套合法性、样式合法性、组件接口调用次数。
上述的每一种参数对动态UI业务端代码的性能的影响不同,例如,客户端模块接口调用次数的性能参数,若该客户端模块接口调用次数过多可能会导致性能问题;组件嵌套层级深度的性能参数,若组件嵌套过深,可能会导致引擎解析难度会增大,从而造成性能问题;组件嵌套合法性的性能参数,若组件嵌套非法或不合理,可能会导致代码解析会发生错误或严重性能问题甚至崩溃;样式合法性的性能参数,若存在不合法的样式,该不合法的样式不生效,可能会造成文件体积过大等等。
故,本发明实施例提供的动态UI业务端代码性能检测方法是针对影响动态UI业务端代码性能,但是特性又不相同的一组性能参数进行的检测,其在执行具体性能参数对应的性能检测之前,需要针对不同性能参数对动态UI业务端代码产生的性能影响设置对应的检测规则,以便对具体的性能参数进行检测。
其中,在获取性能检测参数时,可以接收客户端业务开发人员输入的性能参数,也可以基于系统设置自动获取,具体的本发明实施例对此不进行限制。当接收业务开发人员输入性能参数时,可以接收业务发开人员直接手动输入的性能参数,也可以接收业务开发人员通过动态UI业务端代码性能检测软件的人机交互界面输入的性能参数,具体的,本发明实施例对此不进行限制。在获取性能参数时,可以获取一个性能参数,也可以获取多个性能参数,当获取多个性能参数时,可以根据需求逐一的进行检测,也可以并列进行检测,具体的根据实际需求进行,本发明实施例对此不进行限制。
102、根据所述性能参数获取对应的性能检测策略。
其中,所述性能检测策略为根据所述性能参数对动态UI业务端代码产生的性能影响设置的检测规则。
如上所述的,在对动态UI业务端代码性能进行检测之前,针对动态UI业务端代码性能检测产生影响的性能参数,设置具体的性能检测策略,该性能检测策略存储在对应的策略库中。当获取到需要进行检测的性能参数时,获取性能参数获取对应的性能检测策略,以便基于所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题。
103、利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题。
104、若出现影响动态UI业务端代码性能的问题,则将对应性能问题输出显示。
本发明实施例中,能够根据待检测的性能参数,获取与该性能参数对应的对动态UI业务端代码产生的性能影响设置的检测规则,根据性能参数对应的检测规则,对待检测的动态UI业务端代码进行检测,及时发现影响动态UI业务端代码性能的问题;并且在检测到影响动态UI业务端代码性能的问题时,将该问题输出显示,给出问题提示信息,便于开发人员及时修正性能问题,保证开发的动态UI业务端代码的准确性和可用性。
进一步的,如上所述的本发明实施例中影响动态UI业务端代码性能的性能参数不止一种,并且,每种性能参数的特性以及对动态UI业务端代码所产生的性能影响不同,以下实施例将针对不同的性能参数的检测方法分别进行介绍。
当所述性能参数为客户端模块接口调用次数时,本发明实施例提供的动态UI业务端代码性能检测方法,如图2所示,该方法包括:
201、获取待检测的动态用UI业务端代码的客户端模块接口调用次数。
其中,关于获取待检测的动态UI业务端代码的客户端模块接口调用次数,可以参考图1对应实施例的相关描述,本发明实施例此处将不再赘述。
202、根据所述客户端模块接口调用次数获取对应的性能检测策略。
其中,客户端模块接口调用次数对动态UI业务端代码的影响为:若调用次数过多,则产生影响。基于该特性,本发明实施例采用统计客户端模块接口调用次数的方法进行该性能参数的检测。该客户端模块接口调用次数的统计,可以通过在客户端模块中封装代理函数的方式实现;并且设置对应的客户端模块接口调用次数的上限值,当实际统计调用次数超过该设置的次数上限值时,确定可能存在影响动态UI业务端代码性能的问题。具体的,针对该客户端模块接口调用次数设计的检测策略为:
在所述客户端模块中封装模块接口代理函数,每次调用所述客户端模块所述模块接口代理函数均被执行,所述模块接口代理函数返回的执行结果为所述客户端模块接口被调用的次数;确定所述模块接口代理函数返回的所述客户端模块接口被调用的次数是否超过预设的被调用次数阈值;若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
203、执行进行模块接口代理函数封装的所述动态UI业务端代码,获取模块接口代理函数返回的所述客户端模块接口被调用的次数。
在具体实施时,例如,可以客户端模块可以在软件开发工具包(js sdkSoftwareDevelopment Kit)中单独进行一层模块接口代理函数封装,在浏览器端预览程序时,每次的模块调用都会经过模块接口代理函数,程序执行结束后,该模块接口代理函数便会得到调用过客户端模块接口的次数。
204、获取预设的被调用次数阈值。
其中,该被调用次数阈值为一经验值,其可以根据实际需求具体设置,具体数值本发明实施例对此不进行限制。其在设置时,可以设置在检测策略中,也可以独立于检测策略设置,具体的本发明实施例对此不进行限制。当单独设置时,获取时,可以基于设置进行单独获取;当基于检测策略设置时,可以通过分析检测策略获取。
205、将所述模块接口代理函数返回的所述客户端模块接口被调用的次数与所述预设的被调用次数阈值进行比较;若所述客户端模块接口被调用的次数超过预设的被调用的次数阈值,则执行206;若所述客户端模块接口被调用的次数未超过预设的被调用的次数阈值,则执行208。
206、确定客户端模块接口被调用的次数不正常,出现影响动态UI业务端代码性能的问题,并执行207。
207、将对应性能问题输出显示。
208、确定客户端模块接口被调用的次数正常,没有出现影响动态UI业务端代码性能的问题。
本发明实施例中,可以将因客户端模块接口被调用的次数超过被调用次数阈值的信息输出,具体的本发明实施例对此不进行限制,具体实施时,可以根据需求具体设置。
本发明实施例中,当客户端模块接口被调用的次数存在问题时,可以通过对应的检测策略,及时的发现由该性能产生的影响动态UI业务端代码性能的问题,并将该问题及时输出给业务开发人员,使得业务开发人员及时发现并修改该客户端模块接口被调用次数过多的问题,保证了开发的动态UI业务端代码的准确性和可用性。
当所述性能参数为组件嵌套层级深度时,本发明实施例提供的动态UI业务端代码性能检测方法,如图3所示,该方法包括:
301、获取待检测的动态UI业务端代码的组件嵌套层级深度。
其中,本发明实施例中的组件嵌套层级深度为组件嵌套子组件的层级数。关于获取待检测的动态UI业务端代码的组件嵌套层级深度,可以参考图1对应实施例的相关描述,本发明实施例此处将不再赘述。
302、根据所述组件嵌套层级深度获取对应的性能检测策略。
其中,组件嵌套层级深度对动态UI业务端代码产生的性能影响为组件嵌套子组件的层级数超过预定值则产生引擎解析难度增大的性能问题。基于该特性,本发明实施例采用统计嵌套子组件的层级数的方法进行该性能参数的检测。该嵌套子组件的层级数的统计,可以通过定义递归次数统计函数实现;并且设置对应的层级数阈值,当实际统计层级数超过该设置的层级数阈值时,确定可能存在影响动态UI业务端代码性能的引擎解析难度增大的性能问题。具体的,针对该组件嵌套层级深度设计的检测策略为:
定义递归次数统计函数,所述递归次数统计函数的参数为待检测组件的身份标识ID或者待检测组件本身,所述递归次数统计函数返回的执行结果为组件嵌套子组件的层级数;确定所述归次数统计函数返回的组件嵌套子组件的层级数是否超过预设的层级数阈值;若超过预设的层级数阈值,则确定出现影响动态UI业务端代码性能的问题。
303、获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身。
本发明实施例中,可以通过解析动态UI业务端代码获取对应的待检测组件的ID或者待检测组件本身,具体的本发明实施例此处将不再赘述。
304、将所述待检测组件的ID或者待检测组件本身作为所述归次数统计函数的参数。
需要说明的是,本发明实施例中的归次数统计函数仅有一个参数,并且仅接受一个参数,该参数为待检测组件的ID或者待检测组件本身。
305、执行携带有所述待检测组件的ID或者待检测组件本身的所述归次数统计函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数。
本发明实施例中的递归次数统计函数,会递归查找对应待检测组件内部的子组件,递归一次,计数器自增1,当递归条件无法再成立时,便得到了此组件的层级深度。具体的,例如,动态UI业务端代码希望检测ID为‘test’的组件嵌套层数,假设提供的递归次数统计函数名称是:
auditis.checkNodeComplexity(‘test’),在执行该递归函数时,动态UI业务端代码内部首先会找到id为test的组件。之后可以取得test组件的所有子组件,test.childNodes,此时计数器自增1,之后遍历所有的子节点,在子节点上查找所有孙节点.childNode.childNodes,此时计数器自增1,依次递归,直到子节点下无法再找到子节点,程序结束。递归函数返回计数器的值,该计数器的值即为待检测组件的ID或者待检测组件本身的嵌套子组件的层级数。
306、获取预设的层级数阈值。
其中,该层级数阈值为一经验值,其可以根据实际需求具体设置,具体数值本发明实施例对此不进行限制。其在设置时,可以设置在检测策略中,也可以独立于检测策略设置,具体的本发明实施例对此不进行限制。当单独设置时,获取时,可以基于设置进行单独获取;当基于检测策略设置时,可以通过分析检测策略获取。
307、将所述归次数统计函数返回的所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数与所述预设的层级数阈值进行比较;若所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数超过预设的层级数阈值,则执行308;若所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数未超过预设的层级数阈值,则执行310。
308、确定组件嵌套深度过深出现引擎解析难度增大的动态UI业务端代码性能问题,并执行309。
309、将由于引擎解析难度增大的动态UI业务端代码性能问题输出显示。
310、确定组件嵌套深度正常没有出现引擎解析难度增大的动态UI业务端代码性能问题。
本发明实施例中,当组件嵌套层级深度存在问题时,可以通过对应的检测策略,及时的发现由该性能产生的引擎解析难度增大的性能问题,并将该问题及时输出给业务开发人员,使得业务开发人员及时发现并修改该组件嵌套层级深度过深导致引擎解析难度增大的性能问题,保证了开发的动态UI业务端代码的准确性和可用性。
当所述性能参数为组组件嵌套合法性时,本发明实施例提供的动态UI业务端代码性能检测方法,如图4所示,该方法包括:
401、获取待检测的动态UI业务端代码的组件嵌套合法性。
其中,组件嵌套合法性主要是指组件嵌套的子组件的元素名称的命名规则是否合法。关于获取待检测的动态UI业务端代码的组件嵌套合法性,可以参考图1对应实施例的相关描述,本发明实施例此处将不再赘述。
402、根据所述组件嵌套合法性获取对应的性能检测策略。
其中,组件嵌套合法性对动态UI业务端代码产生的性能影响为代码解析会发生错误。基于该特性,本发明实施例采用对待检测组件的子组件的元素名称进行检测的方法实现该性能参数的检测。该待检测组件的子组件的元素名称的获取,可以通过定义递归查询函数实现;并且设置对应的组件嵌套规则表,在通过定义的递归查询函数获取了子组件的元素名称之后,将其与组件嵌套规则表进行比较确定是否存在组件嵌套不合法导致解析代码会发生错误的性能问题。具体的,针对该组件嵌套合法性设计的检测策略为:
定义递归查询函数,所述递归查询函数的参数为待检测组件的ID或者待检测组件本身,所述递归查询函数返回的执行结果为组件嵌套子组件的元素名称;将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表进行对比,所述组件嵌套规则表中包含了合法的组件嵌套子组件的元素名称命名规则;若发现存在与组件嵌套规则不匹配的元素名称,则确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
403、获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身。
本发明实施例中,可以通过解析动态UI业务端代码获取对应的待检测组件的ID或者待检测组件本身,具体的本发明实施例此处将不再赘述。
404、将所述待检测组件的ID或者待检测组件本身作为所述递归查询函数的参数。
需要说明的是,本发明实施例中的递归查询函数仅有一个参数,并且仅接受一个参数,该参数为待检测组件的ID或者待检测组件本身。
405、执行携带有所述待检测组件的ID或者待检测组件本身的所述递归查询函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的元素名称。
本发明实施例中的递归查询函数,会递归查找对应待检测组件内部的子组件,获取对应子组件的元素名称,递归一次,返回对应的子组件的元素名称,当递归条件无法再成立时,结束子组件元素名称的获取。
406、获取预定义的合法组件嵌套规则表。
407、将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表中的元素命名规则进行对比;若发现存在与组件嵌套规则不匹配的元素名称,则执行408;若没有发现存在与组件嵌套规则不匹配的元素名称,则执行410。
408、确定出现组件嵌套不合法解析代码会发生错误的影响动态UI业务端代码性能的问题,并执行409。
其中,出现组件嵌套不合法的情况,该情况会导致对动态UI业务端代码进行解析的过程出现解析代码会发生错误的动态UI业务端代码性能问题。
409、将解析代码会发生错误的动态UI业务端代码性能问题输出显示。
其中,在输出该提示信息的过程中,可以将不合法的组件嵌套也一起输出,具体的本发明实施例对此不进行具体限制。
410、确定未出现组件嵌套不合法解析代码会发生错误的影响动态UI业务端代码性能的问题。
本发明实施例中,当组件嵌套合法性存在问题时,可以通过对应的检测策略,及时的发现由该性能产生的解析代码会发生错误的性能问题,并将该问题及时输出给业务开发人员,使得业务开发人员及时发现并修改该组件嵌套不合法导致解析代码会发生错误的性能问题,保证了开发的动态UI业务端代码的准确性和可用性。
当所述性能参数为组件样式合法性时,本发明实施例提供的动态UI业务端代码性能检测方法,如图5所示,该方法包括:
501、获取待检测的动态UI业务端代码的组件样式合法性。
其中,组件的外观表现是由其样式决定的,在为组件生成样式的时候,也会预先创建一个规则表,此规则表包含了所有合法的组件样式属性。不合法的样式不生效,会造成文件体积过大。
502、根据所述组件样式合法性获取对应的性能检测策略。
其中,组件样式不合法对动态UI业务端代码产生的性能影响为文件体积过大。基于该特性,本发明实施例采用对待检测组件的样式的合法性进行检测的方法实现该性能参数的检测。具体的,该样式合法性的检测策略为:
获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;将对动态UI业务端代码对应的组件样式的属性与所述样式规则表中的属性进行比对;若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则确定出现影响动态UI业务端代码性能的问题。
503、对所述待检测的动态用户界面UI业务端代码进行解析,获取待检测的动态用户界面UI业务端代码中包含的组件样式。
504、获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性。
505、将获取的待检测的动态用户界面UI业务端代码中包含的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则执行506;若将获取的待检测的动态用户界面UI业务端代码中包含的组件样式的属性在所述样式规则表中,则执行508。
506、确定出现文件体积过大影响动态UI业务端代码性能的问题,并执行507。
其中,出现组件样式不合法的情况,该情况会导致样式不生效,造成文件体积过大的动态UI业务端代码性能问题。
507、将文件体积过大的动态UI业务端代码性能问题输出显示。
其中,在出该提示信息的过程中,可以将样式不合法的组件也一起输出,具体的本发明实施例对此不进行具体限制。
508、确定没有出现文件体积过大影响动态UI业务端代码性能的问题。
本发明实施例中,当组件样式合法性存在问题时,可以通过对应的检测策略,及时的发现由该性能产生的文件体积过大的性能问题,并将该问题及时输出给业务开发人员,使得业务开发人员及时发现并修改由组件样式不合法导致文件体积过大的性能问题,保证了开发的动态UI业务端代码的准确性和可用性。
当所述性能参数为组件接口调用次数时,本发明实施例提供的动态UI业务端代码性能检测方法,如图6所示,该方法包括:
601、获取待检测的动态用UI业务端代码的组件接口调用次数。
其中,关于获取待检测的动态UI业务端代码的组件接口调用次数,可以参考图1对应实施例的相关描述,本发明实施例此处将不再赘述。
602、根据所述组件接口调用次数获取对应的性能检测策略。
其中,组件接口调用次数对动态UI业务端代码的影响为:若调用次数过多,则产生影响。基于该特性,本发明实施例采用统计组件接口调用次数的方法进行该性能参数的检测。该组件接口调用次数的统计,可以通过在组件模块中封装代理函数的方式实现;并且设置对应的组件接口调用次数的上限值,当实际统计调用次数超过该设置的次数上限值时,确定可能存在影响动态UI业务端代码性能的问题。具体的,针对该组件接口调用次数设计的检测策略为:
在所述组件接口中封装组件接口代理函数,每次调用所述组件接口代理函数均被执行,所述组件接口代理函数返回的执行结果为所述组件接口被调用的次数;确定所述组件接口代理函数返回的所述组件接口被调用的次数是否超过预设的被调用次数阈值;若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
603、执行进行组件接口代理函数封装的所述动态UI业务端代码,获取代理函数返回的所述组件接口被调用的次数。
604、获取预设的被调用次数阈值。
其中,该被调用次数阈值为一经验值,其可以根据实际需求具体设置,具体数值本发明实施例对此不进行限制。其在设置时,可以设置在检测策略中,也可以独立于检测策略设置,具体的本发明实施例对此不进行限制。当单独设置时,获取时,可以基于设置进行单独获取;当基于检测策略设置时,可以通过分析检测策略获取。
605、将所述组件接口代理函数返回的所述组件接口被调用的次数与所述预设的被调用次数阈值进行比较;若所述组件被调用的次数超过预设的被调用的次数阈值,则执行606;若所述组件被调用的次数未超过预设的被调用的次数阈值,则执行607。
606、确定组件接口被调用的次数过多,出现影响动态UI业务端代码性能的问题,并执行607。
607、将对应性能问题输出显示。
其中,本发明实施例中将因组件接口被调用的次数超过被调用次数阈值的信息输出。
608、确定组件接口被调用的次数正常,没有出现影响动态UI业务端代码性能的问题。
本发明实施例中,当组件接口被调用的次数出现影响动态UI业务端代码性能的问题存在问题,可以通过对应的检测策略,及时的发现由该性能产生的影响动态UI业务端代码性能的问题,并将该问题及时输出给业务开发人员,使得业务开发人员及时发现并修改该组件接口被调用的次数过多的问题,保证了开发的动态UI业务端代码的准确性和可用性。
基于上述方法实施例,本发明实施例还提供一种动态UI业务端代码性能检测装置,如图7所示,该装置包括:
参数获取单元71,用于获取待检测的动态UI业务端代码的性能参数;其中,客户端影响动态UI业务端代码的性能的参数有多种,该参数可以为但不局限于以下参数中的一种或者多种,该参数为客户端模块接口调用次数、组件嵌套层级深度、组件嵌套合法性、样式合法性、组件接口调用次数。
上述的每一种参数对动态UI业务端代码的性能的影响不同,例如,客户端模块接口调用次数的性能参数,若该客户端模块接口调用次数过多可能会导致性能问题;组件嵌套层级深度的性能参数,若组件嵌套过深,可能会导致引擎解析难度会增大,从而造成性能问题;组件嵌套合法性的性能参数,若组件嵌套非法或不合理,可能会导致代码解析会发生错误或严重性能问题甚至崩溃;样式合法性的性能参数,若存在不合法的样式,该不合法的样式不生效,可能会造成文件体积过大等等。
策略获取单元72,用于根据所述性能参数获取对应的性能检测策略,所述性能检测策略为根据所述性能参数对动态UI业务端代码产生的性能影响设置的检测规则。
检测单元73,用于利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题。
输出显示单元74,用于在检测出现影响动态UI业务端代码性能的问题时,将对应性能问题输出显示。
进一步的,若所述性能参数为客户端模块接口调用次数,则所述策略获取单元72获取的性能检测策略为。
在所述客户端模块中封装模块接口代理函数,每次调用所述客户端模块所述模块接口代理函数均被执行,所述模块接口代理函数返回的执行结果为所述客户端模块接口被调用的次数;确定所述模块接口代理函数返回的所述客户端模块接口被调用的次数是否超过预设的被调用次数阈值;若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
当所述性能参数为客户端模块接口调用次数时,所述检测单元73包括:
第一获取模块,用于执行进行模块接口代理函数封装的所述动态UI业务端代码,获取模块接口代理函数返回的所述客户端模块接口被调用的次数。
第二获取模块,用于获取预设的被调用次数阈值。
第一比较模块,用于将所述模块接口代理函数返回的所述客户端模块接口被调用的次数与所述预设的被调用次数阈值进行比较。
第一确定模块,用于在所述客户端模块接口被调用的次数超过预设的被调用的次数阈值时,确定出现影响动态UI业务端代码性能的问题。
进一步的,若所述性能参数为组件嵌套层级深度,则所述策略获取单元72获取的性能检测策略为:
定义递归次数统计函数,所述递归次数统计函数的参数为待检测组件的身份标识ID或者待检测组件本身,所述递归次数统计函数返回的执行结果为组件嵌套子组件的层级数;确定所述归次数统计函数返回的组件嵌套子组件的层级数是否超过预设的层级数阈值;若超过预设的层级数阈值,则确定出现影响动态UI业务端代码性能的问题。
当性能参数为组件嵌套层级深度时,所述检测单元73包括:
第三获取模块,用于获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身。
第一参数调用模块,用于将所述待检测组件的ID或者待检测组件本身作为所述归次数统计函数的参数。
第一执行模块,用于执行携带有所述待检测组件的ID或者待检测组件本身的所述归次数统计函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数。
第四获取模块,用于获取预设的层级数阈值。
第二比较模块,用于将所述归次数统计函数返回的所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数与所述预设的层级数阈值进行比较。
第二确定模块,用于在所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数超过预设的层级数阈值时,确定出现引擎解析难度增大的动态UI业务端代码性能问题。
进一步的,若所述性能参数为组件嵌套合法性,则所述策略获取单元72获取的性能检测策略为:
定义递归查询函数,所述递归查询函数的参数为待检测组件的ID或者待检测组件本身,所述递归查询函数返回的执行结果为组件嵌套子组件的元素名称;将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表进行对比,所述组件嵌套规则表中包含了合法的组件嵌套子组件的元素名称命名规则;若发现存在与组件嵌套规则不匹配的元素名称,则确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
当性能参数为组件嵌套合法性时,所述检测单元73包括:
第五获取模块,用于获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身。
第二参数调用模块,用于将所述待检测组件的ID或者待检测组件本身作为所述递归查询函数的参数。
第二执行模块,用于执行携带有所述待检测组件的ID或者待检测组件本身的所述递归查询函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的元素名称。
第六获取模块,用于获取预定义的合法组件嵌套规则表。
第三比较模块,用于将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表中的元素命名规则进行对比。
第三确定模块,用于在发现存在与组件嵌套规则不匹配的元素名称时,确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
进一步的,若所述性能参数为组件样式合法性,则所述策略获取单元72获取的性能检测策略为:
获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;将对动态UI业务端代码对应的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则确定出现影响动态UI业务端代码性能的问题。
若所述性能参数为组件样式合法性,则所述检测单元73包括:
第一解析模块,用于对所述待检测的动态用户界面UI业务端代码进行解析,获取待检测的动态用户界面UI业务端代码中包含的组件样式。
第七获取模块,用于获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性。
第四比较模块,用于将获取的待检测的动态用户界面UI业务端代码中包含的组件样式的属性与所述样式规则表中的组件样式的属性进行比对。
第四确定模块,用于当动态UI业务端代码对应的组件样式的属性不在所述样式规则表中时,确定出现文件体积过大影响动态UI业务端代码性能的问题。
进一步的,若所述性能参数为组件接口调用次数,则所述策略获取单元72获取的性能检测策略为:
在所述组件接口中封装组件接口代理函数,每次调用所述组件接口代理函数均被执行,所述组件接口代理函数返回的执行结果为所述组件接口被调用的次数;确定所述组件接口代理函数返回的所述组件接口被调用的次数是否超过预设的被调用次数阈值;若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
所述性能参数为组件接口调用次数时,所述检测单元73包括:
第三执行模块,用于执行进行组件接口代理函数封装的所述动态UI业务端代码,获取代理函数返回的所述组件接口被调用的次数。
第八获取模块,用于获取预设的被调用次数阈值。
第五比较模块,用于将所述组件接口代理函数返回的所述组件接口被调用的次数与所述预设的被调用次数阈值进行比较。
第五确定模块,用于所述组件被调用的次数超过预设的被调用的次数阈值时,确定出现影响动态UI业务端代码性能的问题。
进一步的,如图8所示,所述装置还包括:
设置单元75,预先设置性能参数对应的性能检测策略。
本发明实施例提供的装置各组成单元及模块的其他描述,可以参考上述方法实施例中的相关描述,具体的本发明实施例此处将不再赘述。
本发明实施例还提供一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的动态UI业务端代码性能检测方法。
本发明实施例还提供一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的动态UI业务端代码性能检测方法。
本法发明实施例还提供一种终端设备,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行如上所述的动态UI业务端代码性能检测方法。
本发明实施例中,能够根据待检测的性能参数,获取与该性能参数对应的对动态UI业务端代码产生的性能影响设置的检测规则,根据性能参数对应的检测规则,对待检测的动态UI业务端代码进行检测,及时发现影响动态UI业务端代码性能的问题;并且在检测到影响动态UI业务端代码性能的问题时,将该问题输出显示,给出问题提示信息,便于开发人员及时修正性能问题,保证开发的动态UI业务端代码的准确性和可用性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (29)
1.一种动态UI业务端代码性能检测方法,其特征在于,包括:
获取待检测的动态UI业务端代码的性能参数;
根据所述性能参数获取对应的性能检测策略;
利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题;
若出现影响动态UI业务端代码性能的问题,则将对应性能问题输出显示。
2.根据权利要求1所述的方法,其特征在于,所述性能参数为以下参数中的任一种或任意多种,该参数包括:
客户端模块接口调用次数、组件嵌套层级深度、组件嵌套合法性、样式合法性、组件接口调用次数。
3.根据权利要求2所述的方法,其特征在于,若所述性能参数为客户端模块接口调用次数,则所述性能检测策略为:
在所述客户端模块中封装模块接口代理函数,每次调用所述客户端模块所述模块接口代理函数均被执行,所述模块接口代理函数返回的执行结果为所述客户端模块接口被调用的次数;
确定所述模块接口代理函数返回的所述客户端模块接口被调用的次数是否超过预设的被调用次数阈值;
若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
4.根据权利要求3所述的方法,其特征在于,当所述性能参数为客户端模块接口调用次数时,利用所述性能检测策略对所述待检测的动态用户界面UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题包括:
执行所述模块接口代理函数封装的所述动态UI业务端代码,获取模块接口代理函数返回的所述客户端模块接口被调用的次数;
获取预设的被调用次数阈值;
将所述模块接口代理函数返回的所述客户端模块接口被调用的次数与所述预设的被调用次数阈值进行比较;
若所述客户端模块接口被调用的次数超过预设的被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
5.根据权利要求2所述的方法,其特征在于,若所述性能参数为组件嵌套层级深度,则所述性能检测策略为:
定义递归次数统计函数,所述递归次数统计函数的参数为待检测组件的身份标识ID或者待检测组件本身,所述递归次数统计函数返回的执行结果为组件嵌套子组件的层级数;
确定所述归次数统计函数返回的组件嵌套子组件的层级数是否超过预设的层级数阈值;
若超过预设的层级数阈值,则确定出现影响动态UI业务端代码性能的问题。
6.根据权利要求5所述的方法,其特征在于,当性能参数为组件嵌套层级深度时,利用所述性能检测策略对所述待检测的动态用户界面UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题包括:
获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身;
将所述待检测组件的ID或者待检测组件本身作为所述归次数统计函数的参数;
执行携带有所述待检测组件的ID或者待检测组件本身的所述归次数统计函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数;
获取预设的层级数阈值;
将所述归次数统计函数返回的所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数与所述预设的层级数阈值进行比较;
若所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数超过预设的层级数阈值,则确定出现引擎解析难度增大的动态UI业务端代码性能问题。
7.根据权利要求2所述的方法,其特征在于,若所述性能参数为组件嵌套合法性,则所述性能检测策略为:
定义递归查询函数,所述递归查询函数的参数为待检测组件的ID或者待检测组件本身,所述递归查询函数返回的执行结果为组件嵌套子组件的元素名称;
将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表进行对比,所述组件嵌套规则表中包含了合法的组件嵌套子组件的元素名称命名规则;
若发现存在与组件嵌套规则不匹配的元素名称,则确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
8.根据权利要求7所述的方法,其特征在于,当性能参数为组件嵌套合法性时,利用所述性能检测策略对所述待检测的动态用户界面UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题包括:
获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身;
将所述待检测组件的ID或者待检测组件本身作为所述递归查询函数的参数;
执行携带有所述待检测组件的ID或者待检测组件本身的所述递归查询函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的元素名称;
获取预定义的合法组件嵌套规则表;
将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表中的元素命名规则进行对比;
若发现存在与组件嵌套规则不匹配的元素名称,则确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
9.根据权利要求2所述的方法,其特征在于,若所述性能参数为组件样式合法性,则所述性能检测策略为:
获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;
将对动态UI业务端代码对应的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;
若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则确定出现影响动态UI业务端代码性能的问题。
10.根据权利要求9所述的方法,其特征在于,若所述性能参数为组件样式合法性时,则利用所述性能检测策略对所述待检测的动态用户界面UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题包括:
对所述待检测的动态用户界面UI业务端代码进行解析,获取待检测的动态用户界面UI业务端代码中包含的组件样式;
获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;
将获取的待检测的动态用户界面UI业务端代码中包含的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;
若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则确定出现文件体积过大影响动态UI业务端代码性能的问题。
11.根据权利要求2所述的方法,其特征在于,若所述性能参数为组件接口调用次数,则所述性能检测策略为:
在所述组件接口中封装组件接口代理函数,每次调用所述组件接口代理函数均被执行,所述组件接口代理函数返回的执行结果为所述组件接口被调用的次数;
确定所述组件接口代理函数返回的所述组件接口被调用的次数是否超过预设的被调用次数阈值;
若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
12.根据权利要求11所述的方法,其特征在于,当所述性能参数为组件接口调用次数时,利用所述性能检测策略对所述待检测的动态用户界面UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题包括:
执行进行组件接口代理函数封装的所述动态UI业务端代码,获取代理函数返回的所述组件接口被调用的次数;
获取预设的被调用次数阈值;
将所述组件接口代理函数返回的所述组件接口被调用的次数与所述预设的被调用次数阈值进行比较;
若所述组件被调用的次数超过预设的被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
13.根据权利要求1-12中任一项所述的方法,其特征在于,还包括:
预先设置性能参数对应的性能检测策略。
14.一种动态UI业务端代码性能检测装置,其特征在于,包括:
参数获取单元,用于获取待检测的动态用户界面UI业务端代码的性能参数;
策略获取单元,用于根据所述性能参数获取对应的性能检测策略;
检测单元,用于利用所述性能检测策略对所述待检测的动态UI业务端代码进行检测,确定是否出现影响动态UI业务端代码性能的问题;
输出显示单元,用于在检测出现影响动态UI业务端代码性能的问题时,将对应性能问题输出显示。
15.根据权利要求14所述的装置,其特征在于,所述性能参数为以下参数中的任一种或任意多种,该参数包括:
客户端模块接口调用次数、组件嵌套层级深度、组件嵌套合法性、样式合法性、组件接口调用次数。
16.根据权利要求15所述的装置,其特征在于,若所述性能参数为客户端模块接口调用次数,则所述策略获取单元获取的性能检测策略为:
在所述客户端模块中封装模块接口代理函数,每次调用所述客户端模块所述模块接口代理函数均被执行,所述模块接口代理函数返回的执行结果为所述客户端模块接口被调用的次数;
确定所述模块接口代理函数返回的所述客户端模块接口被调用的次数是否超过预设的被调用次数阈值;
若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
17.根据权利要求16所述的装置,其特征在于,当所述性能参数为客户端模块接口调用次数时,所述检测单元包括:
第一获取模块,用于执行进行模块接口代理函数封装的所述动态UI业务端代码,获取模块接口代理函数返回的所述客户端模块接口被调用的次数;
第二获取模块,用于获取预设的被调用次数阈值;
第一比较模块,用于将所述模块接口代理函数返回的所述客户端模块接口被调用的次数与所述预设的被调用次数阈值进行比较;
第一确定模块,用于在所述客户端模块接口被调用的次数超过预设的被调用的次数阈值时,确定出现影响动态UI业务端代码性能的问题。
18.根据权利要求15所述的装置,其特征在于,若所述性能参数为组件嵌套层级深度,则所述策略获取单元获取的性能检测策略为:
定义递归次数统计函数,所述递归次数统计函数的参数为待检测组件的身份标识ID或者待检测组件本身,所述递归次数统计函数返回的执行结果为组件嵌套子组件的层级数;
确定所述归次数统计函数返回的组件嵌套子组件的层级数是否超过预设的层级数阈值;
若超过预设的层级数阈值,则确定出现影响动态UI业务端代码性能的问题。
19.根据权利要求18所述的装置,其特征在于,当性能参数为组件嵌套层级深度时,所述检测单元包括:
第三获取模块,用于获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身;
第一参数调用模块,用于将所述待检测组件的ID或者待检测组件本身作为所述归次数统计函数的参数;
第一执行模块,用于执行携带有所述待检测组件的ID或者待检测组件本身的所述归次数统计函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数;
第四获取模块,用于获取预设的层级数阈值;
第二比较模块,用于将所述归次数统计函数返回的所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数与所述预设的层级数阈值进行比较;
第二确定模块,用于在所述待检测组件的ID或者待检测组件本身的嵌套子组件的层级数超过预设的层级数阈值时,确定出现引擎解析难度增大的动态UI业务端代码性能问题。
20.根据权利要求15所述的装置,其特征在于,若所述性能参数为组件嵌套合法性,则所述策略获取单元获取的性能检测策略为:
定义递归查询函数,所述递归查询函数的参数为待检测组件的ID或者待检测组件本身,所述递归查询函数返回的执行结果为组件嵌套子组件的元素名称;
将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表进行对比,所述组件嵌套规则表中包含了合法的组件嵌套子组件的元素名称命名规则;
若发现存在与组件嵌套规则不匹配的元素名称,则确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
21.根据权利要求20所述的装置,其特征在于,当性能参数为组件嵌套合法性时,所述检测单元包括:
第五获取模块,用于获取动态UI业务端代码中的待检测组件的ID或者待检测组件本身;
第二参数调用模块,用于将所述待检测组件的ID或者待检测组件本身作为所述递归查询函数的参数;
第二执行模块,用于执行携带有所述待检测组件的ID或者待检测组件本身的所述递归查询函数,得到所述待检测组件的ID或者待检测组件本身的嵌套子组件的元素名称;
第六获取模块,用于获取预定义的合法组件嵌套规则表;
第三比较模块,用于将所述递归查询函数返回的组件嵌套子组件的元素名称与对应的组件嵌套规则表中的元素命名规则进行对比;
第三确定模块,用于在发现存在与组件嵌套规则不匹配的元素名称时,确定出现组件嵌套不合法解析代码会发生错误的动态UI业务端代码性能问题。
22.根据权利要求15所述的装置,其特征在于,若所述性能参数为组件样式合法性,所述策略获取模块获取的性能检测策略为:
获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;
将对动态UI业务端代码对应的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;
若动态UI业务端代码对应的组件样式的属性不在所述样式规则表中,则确定出现影响动态UI业务端代码性能的问题。
23.根据权利要求22所述的装置,其特征在于,若所述性能参数为组件样式合法性时,则所述检测单元包括:
第一解析模块,用于对所述待检测的动态用户界面UI业务端代码进行解析,获取待检测的动态用户界面UI业务端代码中包含的组件样式;
第七获取模块,用于获取预创建的样式规则表,所述样式规则表中包含了合法的组件样式的属性;
第四比较模块,用于将获取的待检测的动态用户界面UI业务端代码中包含的组件样式的属性与所述样式规则表中的组件样式的属性进行比对;
第四确定模块,用于当动态UI业务端代码对应的组件样式的属性不在所述样式规则表中时,确定出现文件体积过大影响动态UI业务端代码性能的问题。
24.根据权利要求15所述的装置,其特征在于,若所述性能参数为组件接口调用次数,则所述策略获取单元获取的性能检测策略为:
在所述组件接口中封装组件接口代理函数,每次调用所述组件接口代理函数均被执行,所述组件接口代理函数返回的执行结果为所述组件接口被调用的次数;
确定所述组件接口代理函数返回的所述组件接口被调用的次数是否超过预设的被调用次数阈值;
若超过被调用的次数阈值,则确定出现影响动态UI业务端代码性能的问题。
25.根据权利要求24所述的装置,其特征在于,当所述性能参数为组件接口调用次数时,所述检测单元包括:
第三执行模块,用于执行进行组件接口代理函数封装的所述动态UI业务端代码,获取代理函数返回的所述组件接口被调用的次数;
第八获取模块,用于获取预设的被调用次数阈值;
第五比较模块,用于将所述组件接口代理函数返回的所述组件接口被调用的次数与所述预设的被调用次数阈值进行比较;
第五确定模块,用于所述组件被调用的次数超过预设的被调用的次数阈值时,确定出现影响动态UI业务端代码性能的问题。
26.根据权利要求14-25中任一项所述的装置,其特征在于,还包括:
设置单元,用于预先设置性能参数对应的性能检测策略。
27.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1-13中任意一项所述的动态UI业务端代码性能检测方法。
28.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1-13中任意一项所述的动态UI业务端代码性能检测方法。
29.一种终端设备,其特征在于,包括至少一个处理器;所述存储介质,用于存储所述处理器执行的程序,以及所述处理器执行所述程序过程中所需的数据;
所述处理器,用于运行程序,其中,所述程序运行时执行权利要求1-13中任一项所述的动态UI业务端代码性能检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241880.1A CN109857628A (zh) | 2017-11-30 | 2017-11-30 | 动态ui业务端代码性能检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711241880.1A CN109857628A (zh) | 2017-11-30 | 2017-11-30 | 动态ui业务端代码性能检测方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109857628A true CN109857628A (zh) | 2019-06-07 |
Family
ID=66888586
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711241880.1A Pending CN109857628A (zh) | 2017-11-30 | 2017-11-30 | 动态ui业务端代码性能检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857628A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111274153A (zh) * | 2020-02-14 | 2020-06-12 | 香港乐蜜有限公司 | 一种自动化测试方法、装置及电子设备 |
CN112527621A (zh) * | 2019-09-17 | 2021-03-19 | 中移动信息技术有限公司 | 测试路径构建方法、装置、设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261604A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件质量评价装置及软件质量评价的定量分析方法 |
CN101477491A (zh) * | 2009-01-16 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种统计函数运行状态的方法和装置 |
US20130014093A1 (en) * | 2010-03-29 | 2013-01-10 | Soft4Soft Co., Ltd. | Code inspection executing system for performing a code inspection of abap source codes |
CN103927244A (zh) * | 2014-04-15 | 2014-07-16 | 南威软件股份有限公司 | 一种基于动态代理实现的插件调度过程监控的方法 |
CN104063310A (zh) * | 2013-03-22 | 2014-09-24 | 阿里巴巴集团控股有限公司 | Web前端质量检测方法与装置 |
US20150082286A1 (en) * | 2013-09-18 | 2015-03-19 | Microsoft Corporation | Real-time code instrumentation |
CN105320591A (zh) * | 2014-07-25 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 代码检测方法及装置 |
CN105471932A (zh) * | 2014-08-06 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种前端应用的监控方法、设备和系统 |
US20160292066A1 (en) * | 2015-04-03 | 2016-10-06 | NodeSource, Inc. | Source Code Inspection and Verification |
CN106095446A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 软件源代码在线检测系统及其检测方法 |
CN107256195A (zh) * | 2017-06-08 | 2017-10-17 | 武汉斗鱼网络科技有限公司 | 网页前端测试方法及装置 |
-
2017
- 2017-11-30 CN CN201711241880.1A patent/CN109857628A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101261604A (zh) * | 2008-04-09 | 2008-09-10 | 中兴通讯股份有限公司 | 一种软件质量评价装置及软件质量评价的定量分析方法 |
CN101477491A (zh) * | 2009-01-16 | 2009-07-08 | 杭州华三通信技术有限公司 | 一种统计函数运行状态的方法和装置 |
US20130014093A1 (en) * | 2010-03-29 | 2013-01-10 | Soft4Soft Co., Ltd. | Code inspection executing system for performing a code inspection of abap source codes |
CN104063310A (zh) * | 2013-03-22 | 2014-09-24 | 阿里巴巴集团控股有限公司 | Web前端质量检测方法与装置 |
US20150082286A1 (en) * | 2013-09-18 | 2015-03-19 | Microsoft Corporation | Real-time code instrumentation |
CN103927244A (zh) * | 2014-04-15 | 2014-07-16 | 南威软件股份有限公司 | 一种基于动态代理实现的插件调度过程监控的方法 |
CN105320591A (zh) * | 2014-07-25 | 2016-02-10 | 腾讯科技(深圳)有限公司 | 代码检测方法及装置 |
CN105471932A (zh) * | 2014-08-06 | 2016-04-06 | 腾讯科技(深圳)有限公司 | 一种前端应用的监控方法、设备和系统 |
US20160292066A1 (en) * | 2015-04-03 | 2016-10-06 | NodeSource, Inc. | Source Code Inspection and Verification |
CN106095446A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 软件源代码在线检测系统及其检测方法 |
CN107256195A (zh) * | 2017-06-08 | 2017-10-17 | 武汉斗鱼网络科技有限公司 | 网页前端测试方法及装置 |
Non-Patent Citations (1)
Title |
---|
(美)琼斯(JONESC.)著: "《软件工程最佳实践》", 31 January 2014, 机械工业出版社 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527621A (zh) * | 2019-09-17 | 2021-03-19 | 中移动信息技术有限公司 | 测试路径构建方法、装置、设备及存储介质 |
CN111274153A (zh) * | 2020-02-14 | 2020-06-12 | 香港乐蜜有限公司 | 一种自动化测试方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542789B (zh) | 一种代码覆盖率统计方法及装置 | |
CN109960653A (zh) | 回归测试方法、装置、设备和存储介质 | |
CN106919370B (zh) | 一种对象属性值的获取方法及装置 | |
CN106897205A (zh) | 一种测试数据生成方法及装置 | |
CN105335281A (zh) | 一种自动mock外部依赖的方法及装置 | |
CN112181804A (zh) | 一种参数校验方法、设备以及存储介质 | |
CN112560114B (zh) | 调用智能合约的方法及装置 | |
CN109857628A (zh) | 动态ui业务端代码性能检测方法及装置 | |
CN110458412A (zh) | 风险监控数据的生成方法和装置 | |
CN103049374A (zh) | 一种自动化测试的方法及装置 | |
CN109726068A (zh) | 一种数据检测方法及装置 | |
CN114220504A (zh) | 一种随机分组方法、装置及设备 | |
CN114301785A (zh) | 计算机的服务关系的确定方法、装置以及存储介质 | |
CN107066240A (zh) | 组件功能的实现方法和装置 | |
CN107220160A (zh) | 应用程序的电量消耗确定方法及装置 | |
Sabor et al. | Adaptive random testing by static partitioning | |
US9916412B2 (en) | Automatic generation of test layouts for testing a design rule checking tool | |
CN107992749A (zh) | 一种检测补丁包冲突的方法及装置 | |
CN113688403A (zh) | 一种基于符号执行验证的智能合约漏洞检测方法及装置 | |
CN112749159A (zh) | 表单生成方法、装置、电子设备及存储介质 | |
CN109308256A (zh) | 一种java程序动态分析方法、设备和存储介质 | |
CN111949505B (zh) | 一种测试方法、装置及设备 | |
CN109753742A (zh) | 一种基于不均衡样本的航空发动机故障诊断方法、系统 | |
Souter et al. | Testing with respect to concerns [software maintenance] | |
CN115237809A (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 |
Application publication date: 20190607 |
|
RJ01 | Rejection of invention patent application after publication |