一种基于函数链路的高效测试用例执行方法技术

技术编号:36781972 阅读:10 留言:0更新日期:2023-03-08 22:17
本发明专利技术提出了一种基于函数链路的高效测试用例执行方法,涉及互联网软件系统测试领域。该方法包括:当应用服务器发起函数调用时,获取应用服务器的提交记录,解析提交记录中的函数,根据解析得到的函数,确定函数调用链路。根据函数调用链路,在测试用例管理平台匹配得到对应的测试用例、历史测试用例执行结果和预期结果。调用测试用例,获得测试结果。将测试结果分别与历史测试用例执行结果和预期结果进行比较,得到比较结果。调用Python的difflib框架获取比较结果,并根据比较结果生成结果文件。该方法实现了有针对性的自动触发调用测试用例的目的,解决了测试用例调用存在延后性的问题,也能够让开发和测试尽快发现和解决问题。题。题。

【技术实现步骤摘要】
一种基于函数链路的高效测试用例执行方法


[0001]本专利技术涉及互联网软件系统测试领域,具体而言,涉及一种基于函数链路的高效测试用例执行方法。

技术介绍

[0002]测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单来说测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。测试用例的执行一般分为手动执行和定时任务自动执行两种方式。
[0003]在完成测试后需要对测试结果进行评估,并且编制测试报告。判断软件测试是否完成、衡量测试质量需要一些量化的结果。这里评估一般通过以下两种方式进行,第一种是分析测试结果和预期结果的差异,第二种是通过查看日志记录分析整个测试流程。由此可见,由于未能实现针对性自动触发调用测试用例,而导致测试用例的执行存在延后性问题。

技术实现思路

[0004]本专利技术的目的在于提供一种基于函数链路的高效测试用例执行方法,用以改善现有技术中由于未能实现针对性自动触发调用测试用例,而导致测试用例的执行存在延后性的问题。
[0005]本专利技术的实施例是这样实现的:
[0006]第一方面,本申请实施例提供一种基于函数链路的高效测试用例执行方法,其包括如下步骤:
[0007]当应用服务器发起函数调用时,获取该应用服务器的提交记录,解析提交记录中的函数,根据解析得到的函数,确定函数调用链路;<br/>[0008]根据函数调用链路,在测试用例管理平台匹配得到对应的测试用例、历史测试用例执行结果和预期结果;
[0009]调用测试用例,获得测试结果;
[0010]将测试结果分别与历史测试用例执行结果和预期结果进行比较,得到比较结果;
[0011]调用Python的difflib框架获取比较结果,并根据比较结果生成结果文件。
[0012]在本专利技术的一些实施例中,上述当应用服务器发起函数调用时,获取该应用服务器的提交记录,解析提交记录中的函数,根据解析得到的函数,确定函数调用链路的步骤包括:
[0013]当应用服务器发起函数调用请求时,利用AOP切面拦截调用方法,获取函数调用请求堆栈信息;
[0014]遍历堆栈信息获取类名和方法名,并判断类名是否属于自定义类;
[0015]若类名属于自定义类,则将类名和方法名组合成函数调用链路并放入缓存的链表
中,缓存key为线程ID;
[0016]开启异步线程调用测试平台接口,传入函数调用链路至测试平台;
[0017]根据解析得到的函数名,利用Elasticsearch分词算法在测试平台查询得到对应的函数调用链路。
[0018]在本专利技术的一些实施例中,上述开启异步线程调用测试平台接口,传入函数调用链路至测试平台的步骤包括:
[0019]通过本地调用链将函数调用链路传入至测试平台。
[0020]在本专利技术的一些实施例中,上述开启异步线程调用测试平台接口,传入函数调用链路至测试平台的步骤包括:
[0021]调用Pfinder接口获取与本地调用链对应的远程接口信息形成远程调用链,通过远程调用链将函数调用链路传入至测试平台。
[0022]在本专利技术的一些实施例中,上述调用Python的difflib框架获取比较结果的步骤包括:
[0023]根据比较结果,确定差异点;
[0024]通过颜色标注的方式对差异点进行标示,并通过difflib框架显示标示后的差异点。
[0025]在本专利技术的一些实施例中,上述根据函数调用链路,在测试用例管理平台匹配得到对应的测试用例、历史测试用例执行结果和预期结果的步骤包括:
[0026]遍历函数调用链路,获取每个链路节点;
[0027]从任一链路节点中获得接口名和方法名,将接口名和方法名与测试用例管理平台中测试用例上设置的接口地址和方法名进行匹配,获得对应的测试用例、历史测试用例执行结果和预期结果,并建立该测试用例与该函数调用链路的关联关系。
[0028]在本专利技术的一些实施例中,上述获取该应用服务器的提交记录,解析提交记录中的函数的步骤包括:
[0029]调用GitLab接口获取该应用服务器在最近一次的提交记录,利用正则表达式寻找到该提交记录中的函数。
[0030]在本专利技术的一些实施例中,上述基于函数链路的高效测试用例执行方法还包括:
[0031]通过代码PUSH触发GitLab的Webhook调用,其中,Webhook配置有应用服务器的地址。
[0032]第二方面,本申请实施例提供一种电子设备,其包括存储器,用于存储一个或多个程序;处理器。当一个或多个程序被处理器执行时,实现如上述第一方面中任一项的方法。
[0033]第三方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述第一方面中任一项的方法。
[0034]相对于现有技术,本专利技术的实施例至少具有如下优点或有益效果:
[0035]本专利技术提供一种基于函数链路的高效测试用例执行方法,其包括如下步骤:当应用服务器发起函数调用时,获取该应用服务器的提交记录,解析提交记录中的函数,根据解析得到的函数,确定函数调用链路。根据函数调用链路,在测试用例管理平台匹配得到对应的测试用例、历史测试用例执行结果和预期结果。调用测试用例,获得测试结果。将测试结果分别与历史测试用例执行结果和预期结果进行比较,得到比较结果。调用Python的
difflib框架获取比较结果,并根据比较结果生成结果文件。通过Python的diffLib框架能够清晰的显示出本次测试结果和上次测试用例执行结果的差异,使得开发和测试人员更容易发现两者的差异,从而更有利于发现和定位问题。该方法在应用服务器提交代码时能根据本次提交记录中涉及的函数寻找到函数调用链路,然后根据函数调用链路在测试用例管理平台上匹配得到测试用例。然后调用匹配到的测试用例得到测试结果,实现了有针对性的自动触发调用测试用例的目的,解决了测试用例调用存在延后性的问题,也能够让开发和测试尽快发现和解决问题。由于该方法能够在每一次代码提交后就执行提交代码中所涉及函数的测试用例,则有效解决了原有定时任务执行测试用例存在的延后性问题,并且因为是自动化执行的,则也不用开发或者测试手动执行,极大提升了效率,并且也能够快速的发现问题,提升了系统的稳定性。
附图说明
[0036]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0037]图1为本专利技术实施例提供的一种基于函数链路的高效测试用例执行方法的流程图;
[0038]图2为本本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于函数链路的高效测试用例执行方法,其特征在于,包括如下步骤:当应用服务器发起函数调用时,获取该应用服务器的提交记录,解析所述提交记录中的函数,根据解析得到的函数,确定函数调用链路;根据所述函数调用链路,在测试用例管理平台匹配得到对应的测试用例、历史测试用例执行结果和预期结果;调用所述测试用例,获得测试结果;将所述测试结果分别与所述历史测试用例执行结果和所述预期结果进行比较,得到比较结果;调用Python的difflib框架获取比较结果,并根据所述比较结果生成结果文件。2.根据权利要求1所述的基于函数链路的高效测试用例执行方法,其特征在于,所述当应用服务器发起函数调用时,获取该应用服务器的提交记录,解析所述提交记录中的函数,根据解析得到的函数,确定函数调用链路的步骤包括:当应用服务器发起函数调用请求时,利用AOP切面拦截调用方法,获取函数调用请求堆栈信息;遍历所述堆栈信息获取类名和方法名,并判断所述类名是否属于自定义类;若所述类名属于自定义类,则将所述类名和所述方法名组合成函数调用链路并放入缓存的链表中,缓存key为线程ID;开启异步线程调用测试平台接口,传入函数调用链路至测试平台;根据解析得到的函数名,利用Elasticsearch分词算法在测试平台查询得到对应的函数调用链路。3.根据权利要求2所述的基于函数链路的高效测试用例执行方法,其特征在于,所述开启异步线程调用测试平台接口,传入函数调用链路至测试平台的步骤包括:通过本地调用链将函数调用链路传入至测试平台。4.根据权利要求2所述的基于函数链路的高效测试用例执行方法,其特征在于,所述开启异步线程调用测试平台接口,传入函数调用链路至测试平台的步骤包括:调用Pfinder接口获取与本地调用链对应的远程接口信息形成远程调用链,通过所述...

【专利技术属性】
技术研发人员:邢佳佳刘奇刘剑群王亚洲王学文
申请(专利权)人:天翼电子商务有限公司
类型:发明
国别省市:

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

1