发布信息

快速获取web应用的API测试覆盖率的方法及系统与流程 专利技术说明

作者:admin      2022-12-06 19:25:11     785



计算;推算;计数设备的制造及其应用技术快速获取web应用的api测试覆盖率的方法及系统技术领域1.本发明涉及web应用的api测试统计技术领域,尤其涉及一种快速获取web应用的api测试覆盖率的方法及系统。背景技术:2.web应用程序通常采用主从式架构,采用主从式架构的web应用程序包括前端(一般是指浏览器、客户端程序上运行的部分或客户端程序本身)和后端(一般是指服务器端运行的部分)两部分。得益于前端技术的发展,前后端分离已经成为行业内开展互联网项目、开发相关web应用程序的标配模式。通过前、后端的有效解耦,实现前后端分离,前端开始更加注重页面开发的工程化、自动化,后端则更专注于api(这里的api,主要是指前后端分离模式下一种后端路由实现方式)的提供和数据库的保障,由于web api是网络应用程序接口,其包含了广泛的功能,网络应用通过api接口可以实现存储服务、消息服务、计算服务等能力,利用这些能力可以进行开发出强大功能的web应用,如此才为软件系统的大型分布式架构、弹性计算架构、微服务架构、多端化服务等提供了可能。在软件项目的全生命周期中,正因为后端提供的api的重要作用及意义,测试人员在对web应用进行功能测试和安全测试的时候,往往也会关注测试的覆盖率,确保所有功能都被覆盖到,随着web应用发展越来越快,人们也渐渐的将测试覆盖率转向接口(api)测试覆盖率,因此,如何准确高效的获取接口测试覆盖率,也成为业界技术人员关注的问题。技术实现要素:3.本发明的目的是提供一种可准确、高效获取web测试流程中所涉及到的请求接口覆盖程度的快速获取web应用的api测试覆盖率的方法及系统。4.为了实现上述目的,本发明公开了一种快速获取web应用的api测试覆盖率的方法,其包括:5.基于iast工具插桩目标web应用,以在该目标web应用中的接口路由组件中插入检测探针;6.当测试请求所调用的特征接口程序访问所述接口路由组件时,通过所述检测探针获取所述目标web应用所加载的全量api数据以及当前特征接口程序所匹配到的视图函数,并标记该视图函数;7.确认测试流程结束后,遍历所述全量api数据,并确认带有标记的视图函数的数量,以获得测试接口覆盖基数;8.基于所述测试接口覆盖基数和所述全量api数据,计算api测试覆盖率。9.较佳地,标记所述视图函数的方法包括:10.在所述视图函数中添加标记字段或在内存中记录所述视图函数的内存地址。11.较佳地,确认测试流程结束的方法包括:12.开放所述目标web应用的监听端口,以接收测试流程结束信号;或在目标web应用中通过定时器定时拉取测试流程结束标记;或通过确认预设时间段内无接口程序访问该web应用获取测试流程结束信号。13.本发明还公开一种快速获取web应用的api测试覆盖率的系统,其包括:14.插桩模块,其用于基于iast工具插桩目标web应用,以在该目标web应用中的接口路由组件中插入检测探针;15.数据获取模块,其用于在测试请求所调用的特征接口程序访问所述接口路由组件时,通过所述检测探针获取所述目标web应用所加载的全量api数据以及当前特征接口程序所匹配到的视图函数;16.标记模块,其用于对所述数据获取到的所述视图函数进行标记;17.基数获取模块,其用于在测试流程结束后,遍历所述全量api数据,并确认带有标记的视图函数的数量,以获得测试接口覆盖基数;18.计算模块,其用于基于所述测试接口覆盖基数和所述全量api数据,计算api测试覆盖率。19.较佳地,所述标记模块通过在所述视图函数中添加标记字段或在内存中记录所述视图函数的内存地址对所述视图函数进行标记。20.较佳地,还包括结束信号获取模块,所述结束信号获取模块通过所述目标web应用的监听端口或定时器获取测试流程结束信号。21.本发明还公开一种的快速获取web应用的api测试覆盖率的系统,其包括:22.一个或多个处理器;23.存储器;24.以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的快速获取web应用的api测试覆盖率的方法的指令。25.本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的快速获取web应用的api测试覆盖率的方法。26.与现有技术相比,在本发明上述技术方案中,在对目标web应用进行实例检测时,当测试请求所调用的特征接口程序访问接口路由组件时,通过检测探针可自动获取该目标web应用中的全量api数据以及当前特征接口程序所匹配到的视图函数,并标记该视图函数,而当测试流程结束后,可立即统计出全量api数据中带有标记的对象的占比,从而获得当前测试流程的api测试覆盖率;由此可知,通过上述技术方案,测试流程结束后可快速获取api测试覆盖率,而无需额外存储数据,使用方便。附图说明27.图1为本发明实施例中快速获取web应用的api测试覆盖率的方法流程图。28.图2为本发明实施例中快速获取web应用的api测试覆盖率的系统结构图。具体实施方式29.为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式并配合附图详予说明。30.本实施例中公开了一种快速获取web应用的api测试覆盖率的方法,以对通过测试实例对web应用进行功能检测或漏洞检测的测试流程所覆盖的api接口的数量进行检测,进而计算出覆盖率,便于对当前测试流程的效果进行评估。具体地,如图1,该方法包括如下步骤:31.s1:基于iast工具插桩目标web应用,以在该目标web应用中的接口路由组件中插入检测探针。对于插桩的具体方式,属于本领域中较成熟的技术,在此不再赘述。接口路由组件为web应用中的固有组件,接口路由组件中包括有所属web应用的注册的全部路由规则信息,其中路由规则信息包括路由规则对应的url路径与实际处理程序的映射集合,而将每一路由规则信息以map等数据结构存储生成一api数据,api数据不仅记录接口名称,也会记录接口对应的servlet或函数(如java的servlet和spring mvc)。32.s2:测试流程开始后,当测试请求所调用的特征接口程序访问接口路由组件时,通过检测探针获取目标web应用所加载的接口路由组件中的全量api数据以及当前特征接口程序所匹配到的视图函数(也即请求执行的函数方法);33.s3:标记步骤s2中匹配到的视图函数。34.s4:确认测试流程结束后,遍历全量api数据,并确认带有标记的视图函数的数量,以获得测试接口覆盖基数;35.s5:基于测试接口覆盖基数和全量api数据,计算api测试覆盖率。如,全量api数据为10,测试接口覆盖基数为8,那么测试接口覆盖基数p=8/10=80%。36.通过上述方法可知,在对目标web应用进行实例检测时,当测试请求所调用的特征接口程序访问接口路由组件时,通过检测探针可自动获取该目标web应用中的全量api数据以及当前特征接口程序所匹配到的视图函数,并标记该视图函数,而当测试流程结束后,可立即统计出全量api数据中带有标记的对象的占比,从而获得当前测试流程的api测试覆盖率,具有快速确认且而无需额外存储数据的优点,使用方便。37.可选地,标记视图函数的方法包括:在视图函数中添加标记字段或在内存中记录视图函数的内存地址。38.进一步地,确认测试流程结束的方法包括以下三种中的任意一种:39.一是,开放目标web应用的监听端口,以接收测试流程结束信号。二是,在目标web应用中通过定时器定时拉取测试流程结束标记。三是,通过确认预设时间段内无接口程序访问该web应用获取测试流程结束信号。40.本发明另一较佳实施例中,如图2,还公开一种快速获取web应用的api测试覆盖率的系统,其包括插桩模块、数据获取模块、标记模块、基数获取模块以及计算模块。41.插桩模块,用于基于iast工具插桩目标web应用,以在该目标web应用中的接口路由组件中插入检测探针。42.数据获取模块,用于在测试请求所调用的特征接口程序访问接口路由组件时,通过检测探针获取目标web应用所加载的全量api数据以及当前特征接口程序所匹配到的视图函数。43.标记模块,用于对数据获取到的视图函数进行标记。44.基数获取模块,用于在测试流程结束后,遍历全量api数据,并确认带有标记的视图函数的数量,以获得测试接口覆盖基数。45.计算模块,用于基于测试接口覆盖基数和全量api数据,计算api测试覆盖率。46.可选地,标记模块通过在视图函数中添加标记字段或在内存中记录视图函数的内存地址对视图函数进行标记。47.可选地,该系统还包括结束信号获取模块,结束信号获取模块通过目标web应用的监听端口或定时器获取测试流程结束信号。48.另外需要说明的是,本实施例中api测试覆盖率的系统的工作原理和工作方式详见上述api测试覆盖率的方法,在此不再赘述。49.本发明还公开另一种快速获取web应用的api测试覆盖率的系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在存储器中,并且被配置成由一个或多个处理器执行,程序包括用于执行如上的快速获取web应用的api测试覆盖率的方法的指令。处理器可以采用通用的中央处理器(central processing unit,cpu),微处理器,应用专用集成电路(application specific integrated circuit,asic),或者一个或多个集成电路,用于执行相关程序,以实现本技术实施例的快速获取web应用的api测试覆盖率的系统中的模块所需执行的功能,或者执行本技术方法实施例的快速获取web应用的api测试覆盖率的方法。50.本发明还公开一种计算机可读存储介质,其包括计算机程序,计算机程序可被处理器执行以完成如上的快速获取web应用的api测试覆盖率的方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,rom),或随机存取存储器(random access memory,ram),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,dvd)、或者半导体介质,例如,固态硬盘(solid state disk,ssd)等。51.本技术实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该电子设备执行上述快速获取web应用的api测试覆盖率的方法。52.以上所披露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。









图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!




内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!




免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!

相关内容 查看全部