应用程序生成方法和装置制造方法及图纸

技术编号:37503744 阅读:22 留言:0更新日期:2023-05-07 09:39
本申请公开了应用程序生成方法和装置,涉及软件测试技术领域。方法的一具体实施方式包括:获取待埋点应用程序对应的抽象语法树;对于抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,以对抽象语法树进行更新;基于更新后的抽象语法树,生成埋点后的应用程序,实现了自动生成埋点后的应用程序。实现了自动生成埋点后的应用程序。实现了自动生成埋点后的应用程序。

【技术实现步骤摘要】
应用程序生成方法和装置


[0001]本申请涉及计算机
,具体涉及软件测试
,尤其涉及一种应用程序生成方法和装置。

技术介绍

[0002]在web应用开发过程中,为了保证应用程序的正确性,在应用开发完成之后,会交给测试工程师对应用的质量,业务流程,交互逻辑进行测试。每次应用程序的改动之后需要回归原有业务流程,来保证业务逻辑的正确性,为了提高测试效率,测试工程师会编写自动化测试脚本,自动测试业务流程。为了测试脚本能够拿到页面中交互以及数据展示的节点,需要前端开发工程师配合在编写页面的时候,在对应的节点增加特殊的标识(称为测试自动化埋点),测试工程师的自动化脚本会通过这个特殊标识来对页面的交互以及数据展示进行自动测试。
[0003]现有的埋点方式都是人工进行的,在页面开发的时候顺便加上埋点内容,该方式工作量大,且埋点对源码有侵入。

技术实现思路

[0004]本申请实施例提供了一种应用程序生成方法、装置、设备以及存储介质。
[0005]根据第一方面,本申请实施例提供了一种应用程序生成方法,该方法包括:获取待埋点应用程序对应的抽象语法树;对于抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,以对抽象语法树进行更新,其中,目标属性用于指示预设属性集合中的至少一个属性;基于更新后的抽象语法树,生成埋点后的应用程序。
[0006]在一些实施例中,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,包括:响应于按照预设属性集合中各属性的优先级信息,确定该节点包括预设属性集合中最高优先级的属性,将最高优先级的属性的属性值确定为埋点属性的属性值。
[0007]在一些实施例中,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,包括:响应于按照预设属性集合中各属性的优先级信息由高到低的顺序,确定该节点不包括预设属性集合中高优先级的属性,判断该节点是否包括预设属性集合中下一优先级的属性;响应于确定该节点包括预设属性集合中下一优先级的属性,将下一优先级的属性的属性值确定为埋点属性的属性值。
[0008]在一些实施例中,该方法还包括:对于抽象语法树中的每一节点,响应于确定该节点不包括目标属性,并且该节点中存在模板字符串,基于模板字符串,确定埋点属性的属性值,以对抽象语法树进行更新;基于更新后的抽象语法树,生成埋点后的应用程序。
[0009]在一些实施例中,各属性的优先级信息基于各属性的语义化强度确定。
[0010]根据第二方面,本申请实施例提供了一种应用程序生成装置,该装置包括获取模
块,被配置成获取待埋点应用程序对应的抽象语法树;更新模块,被配置成对于抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,以对抽象语法树进行更新;生成模块,被配置成基于更新后的抽象语法树,生成埋点后的应用程序。
[0011]在一些实施例中,更新模块进一步被配置成:响应于按照预设属性集合中各属性的优先级信息,确定该节点包括预设属性集合中最高优先级的属性,将最高优先级的属性的属性值确定为埋点属性的属性值。
[0012]在一些实施例中,更新模块进一步被配置成:响应于按照预设属性集合中各属性的优先级信息由高到低的顺序,确定该节点不包括预设属性集合中高优先级的属性,判断该节点是否包括预设属性集合中下一优先级的属性;响应于确定该节点包括预设属性集合中下一优先级的属性,将下一优先级的属性的属性值确定为埋点属性的属性值。
[0013]在一些实施例中,该装置还包括:确定模块,被配置成对于抽象语法树中的每一节点,响应于确定该节点不包括目标属性,并且该节点中存在模板字符串,基于模板字符串,确定埋点属性的属性值,以对抽象语法树进行更新;基于更新后的抽象语法树,生成埋点后的应用程序。
[0014]在一些实施例中,各属性的优先级信息基于各属性的语义化强度确定。
[0015]根据第三方面,本申请实施例提供了一种电子设备,该电子设备包括一个或多个处理器;存储装置,其上存储有一个或多个程序,当一个或多个程序被该一个或多个处理器执行,使得一个或多个处理器实现如第一方面的任一实施例的应用程序生成方法。
[0016]根据第四方面,本申请实施例提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面的任一实施例的应用程序生成方法。
[0017]本申请通过获取待埋点应用程序对应的抽象语法树;对于抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于目标属性的属性值确定埋点属性的属性值,以对抽象语法树进行更新;基于更新后的抽象语法树,生成埋点后的应用程序,有效避免了人工埋点,减轻了研发人员的工作量,同时对应用程序的源码无侵入。
[0018]应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其他特征将通过以下的说明书而变得容易理解。
附图说明
[0019]图1是本申请可以应用于其中的示例性系统架构图;
[0020]图2是根据本申请的应用程序生成方法的一个实施例的流程图;
[0021]图3是根据本申请的应用程序生成方法的一个应用场景的示意图;
[0022]图4是根据本申请的应用程序生成方法的另一个实施例的流程图;
[0023]图5是根据本申请的应用程序生成装置的一个实施例的示意图;
[0024]图6是适于用来实现本申请实施例的服务器的计算机系统的结构示意图。
具体实施方式
[0025]以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识
到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0026]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
[0027]图1示出了可以应用本申请的应用程序生成方法的实施例的示例性系统架构100。
[0028]如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0029]终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如,显示类应用、通讯类应用等。
[0030]终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏的各本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用程序生成方法,所述方法包括:获取待埋点应用程序对应的抽象语法树;对于所述抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于所述目标属性的属性值确定埋点属性的属性值,以对所述抽象语法树进行更新,其中,所述目标属性用于指示预设属性集合中的至少一个属性;基于更新后的抽象语法树,生成埋点后的应用程序。2.根据权利要求1所述的方法,其中,所述目标属性为预设属性集合中最高优先级的属性,以及所述响应于确定该节点包括目标属性,基于所述目标属性的属性值确定埋点属性的属性值,包括:响应于按照预设属性集合中各属性的优先级信息,确定该节点包括预设属性集合中最高优先级的属性,将所述最高优先级的属性的属性值确定为埋点属性的属性值。3.根据权利要求1所述的方法,其中,所述目标属性为预设属性集合中下一优先级的属性,以及所述响应于确定该节点包括预设目标属性,基于所述目标属性的属性值确定埋点属性的属性值,包括:响应于按照预设属性集合中各属性的优先级信息由高到低的顺序,确定该节点不包括预设属性集合中高优先级的属性,判断该节点是否包括预设属性集合中下一优先级的属性;响应于确定该节点包括预设属性集合中下一优先级的属性,将所述下一优先级的属性的属性值确定为埋点属性的属性值。4.根据权利要求1

3任一所述的方法,所述方法还包括:对于抽象语法树中的每一节点,响应于确定该节点不包括目标属性,并且该节点中存在模板字符串,基于所述模板字符串,确定埋点属性的属性值,以对抽象语法树进行更新;基于更新后的抽象语法树,生成埋点后的应用程序。5.根据权利要求2

3任一所述的方法,其中,各属性的优先级信息基于各属性的语义化强度确定。6.一种应用程序生成装置,所述装置包括:获取模块,被配置成获取待埋点应用程序对应的抽象语法树;更新模块,被配置成对于所述抽象语法树中的每一节点,响应于确定该节点包括目标属性,基于所述目标属性...

【专利技术属性】
技术研发人员:王亚森
申请(专利权)人:京东科技信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1