发布信息

一种测试驱动的业务监控方法、装置、设备及介质与流程

作者:admin      2022-08-19 21:06:31     494



计算;推算;计数设备的制造及其应用技术1.本发明涉及软件的自动测试技术,尤其是涉及一种测试驱动的业务监控方法、装置、设备及介质。背景技术:2.随着互联网技术的不断发展与迭代更新,以及传统行业和互联网行业的不断结合和推广,线上业务环境的稳定性变得极为重要,因此业务监控也逐渐变得不可或缺。根据现有技术,通常会根据运维监控、服务器日志监控、单接口或者curl定时器定来等方法来完成,无法对完整的业务流程或者业务全链路监控,也无法对问题进行精准定位。3.现有技术的不足之处在于,业务自动化程度低,无法对业务流程进行很好的定制,发现问题后,研发人员无法很快定位;也无法按不同的线上业务线,不同的业务重要性,来进行不同的告警,无法对线上环境的稳定性进行评估。4.经过检索中国专利公开号cn111240989a公开了一种接口自动化测试框架及方法,包括测试用例、jenkins批量执行模块、初始化和还原模块、api请求模块,所述jenkins批量执行模块用于创建构建任务,配置定时任务,配置邮件模板,并通过执行runtest.py文件批量执行与runtest.py文件相同目录的测试用例。但是该现有专利存在测试效率低、对测试结果没有监控、测试不全面等问题。技术实现要素:5.本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种测试驱动的业务监控方法、装置、设备及介质。6.本发明的目的可以通过以下技术方案来实现:7.根据本发明的第一方面,提供了一种测试驱动的业务监控方法,该方法包括以下步骤:8.步骤101),通过jenkins调用pytest测试框架,并执行对应测试用例;9.步骤102),根据自动化测试用例进行逻辑测试,并对执行结果进行断言;并通过pytest的钩子方法,实时检测测试用例的测试结果;10.步骤103),对失败用例发起重试,在达到触发条件后发起告警;当失败用例再次被构建执行并成功后,发起系统恢复通知;11.步骤104),将测试结果存储后得到报表。12.作为优选的技术方案,所述的pytest测试框架进行并发执行测试用例。13.作为优选的技术方案,所述的步骤101)中的jenkins采用定时调用pytest测试框架,每隔设定时间会执行所述方法的流程,根据测试用例的重要性配置对应执行的时间间隔。14.作为优选的技术方案,所述的步骤102)中的断言采用assert断言方法。15.作为优选的技术方案,所述的步骤102)中的通过pytest的钩子方法,实时检测测试用例的测试结果具体为:16.每次执行测试用例时,当用例失败后,会进入到pytest_exception_interact的钩子方法中,进行异常捕获,捕获到异常后,会记录失败缓存数据,并进行失败重试,在失败重试到达上限后,即该条测试用例执行完成,会进入到pytest_report_teststatus的钩子方法中,若仍然失败,则立即发起告警。17.作为优选的技术方案,若需要一旦失败就发起告警,可不配置失败重试次数,或者在pytest_exception_interact中就发起告警,根据各自需要进行配置。18.作为优选的技术方案,所述的步骤103)中的失败用例处理过程为:19.根据用例等级、用例类型、告警等级情况,通过不同的方式发送给相关失败用例的对应人员,其中告警中包含测试用例注释、失败的环境、断言失败原因。20.根据本发明的第二方面,提供了一种测试驱动的业务监控装置,该装置包括:21.测试用例执行模块,用于通过jenkins调用pytest测试框架,并执行对应测试用例;22.断言及测试结果检测模块,用于根据自动化测试用例进行逻辑测试,并对执行结果进行断言;并通过pytest的钩子方法,实时检测测试用例的测试结果;23.失败用例处理模块,用于对失败用例发起重试,在达到触发条件后发起告警;当失败用例再次被构建执行并成功后,发起系统恢复通知;24.测试结果保存模块,用于将测试结果存储后得到报表。25.根据本发明的第三方面,提供了一种电子设备,包括存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现所述的方法。26.根据本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现所述的方法。27.与现有技术相比,本发明具有以下优点:28.1)本发明可在不同业务线,不同时间段发起不同的用例调度,当发送失败后,可立即通知对应人员进行问题排查与修复,可以准确地评估故障时长,直观地对线上业务稳定性进行评估;29.2)本发明基于python的编码的pytest框架,通过pytest提高编写自动化测试用例效率,可定制业务流程,且有很好的拓展性;30.3)本发明通过jenkins定时调用,每隔设定时间会执行本发明中的流程,可根据用例的重要性配置对应执行的时间间隔;31.4)本发明通过pytest-xdist进行并行执行,也可以让jenkins同一时间调度多个任务,或者通过分布式进行执行,以保障测试用例的执行效率,以及服务器资源利用最大化。附图说明32.图1为本发明用于测试驱动的业务监控方法的主干流程示意图;33.图2为本发明采用的整体流程具体实施方案示意图;34.图3为测试用例执行过程流程具体实施方案示意图;35.图4为执行测试用例时提升执行效率实施方案示意图;36.图5为执行测试用例失败后获取告警策略示意图;37.图6为执行测试用例失败后组织发送告警内容并标记测试用例示意图;38.图7为根据用例等级和配置触发测试用例构建频率方案示意图;39.图8为执行测试用例判断用例是否为上次失败用例流程示意图;40.图9为测试用例编写方法流程示意图;41.图10为测试用例调度完成后对数据结果存储统计流程示意图;42.图11为失败数据进行缓存及解析的流程示意图。具体实施方式43.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。44.如图1所示,本发明一种测试驱动的业务监控方法,该方法包括以下步骤:45.步骤s101),通过jenkins调用pytest测试框架,并执行对应测试用例;46.步骤s102),根据自动化测试用例进行逻辑测试,并对执行结果进行断言;并通过pytest的钩子方法,实时检测测试用例的测试结果;47.步骤s103),对失败用例发起重试,在达到触发条件后发起告警;当失败用例再次被构建执行并成功后,发起系统恢复通知;48.步骤s104),将测试结果存储后得到报表。49.如图2所示,为本发明的详细流程图,包括以下步骤:50.通过jenkins任务调度,shell方法调用pytest测试框架,并通过pytest用例编写格式编写对应的测试用例;51.编写测试用例过程和方法,如图9所示。编写测试用例时,采用基于python的编码的pytest框架,通过pytest提高编写自动化测试用例效率,可定制业务流程,且有很好的拓展性,也可以通过python编码,自行封装脚本,提升测试运行效率和编码效率。对不同业务线、接口、ui等进行不同程度的监控;在断言时,使用assert断言方法,简单明了,也便于对异常进行捕获。52.用例名称,用例路径等基本信息进入落库,以便于失败后标记用例时时状态。53.如图7所示,可以通过jenkins定时调用,每隔设定时间会执行本发明中的流程,可根据用例的重要性配置对应执行的时间间隔。54.如图3所示为本发明测试用例执行过程,每次执行测试用例时,因为使用了assert断言,用例失败后,会进入到pytest_exception_interact的钩子方法中,进行异常捕获,捕获到异常后,会记录失败缓存数据,并通过pytest-rerunfailures插件进行失败重试,在失败重试到达上限后,即该条测试用例执行完成,会进入到pytest_report_teststatus的钩子方法中,若仍然失败,则立即发起告警,若需要一旦失败就发起告警,可以不配置失败重试次数,或者在pytest_exception_interact中就发起告警,可以根据各自需要进行配置。55.如图5、6所示,在测试用例执行失败后,发起告警,获取测试用例的注解、用例名称,assertionerror内容、失败时间,并根据用例配置,发送给指定人员,进行排查。56.如图4所示,为了提升执行效率,可以通过pytest-xdist进行并行执行,也可以让jenkins同一时间调度多个任务,或者通过分布式进行执行,以保障测试用例的执行效率,以及服务器资源利用最大化。57.如图8所示,在执行用例过程中,若发现上次执行失败的用例,而本次执行成功了,则发送恢复通知给对应人员,方便告知对应人员服务恢复时间已经问题已修复,若仍然失败则继续告警,直至问题修复。58.如图10所示,在整个任务调度完成后,通过pytest_terminal_summary的钩子方法,对执行结果数据统计,并落库。59.如图11所示,为了保证用例执行过程中的流畅性,失败数据先通过指定格式进行缓存,再通过每日定时任务,进行数据解析。60.以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。61.本发明测试驱动的业务监控装置,该装置包括:62.测试用例执行模块,用于通过jenkins调用pytest测试框架,并执行对应测试用例;63.断言及测试结果检测模块,用于根据自动化测试用例进行逻辑测试,并对执行结果进行断言;并通过pytest的钩子方法,实时检测测试用例的测试结果;64.失败用例处理模块,用于对失败用例发起重试,在达到触发条件后发起告警;当失败用例再次被构建执行并成功后,发起系统恢复通知;65.测试结果保存模块,用于将测试结果存储后得到报表。66.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。67.本发明电子设备包括中央处理单元(cpu),其可以根据存储在只读存储器(rom)中的计算机程序指令或者从存储单元加载到随机访问存储器(ram)中的计算机程序指令,来执行各种适当的动作和处理。在ram中,还可以存储设备操作所需的各种程序和数据。cpu、rom以及ram通过总线彼此相连。输入/输出(i/o)接口也连接至总线。68.设备中的多个部件连接至i/o接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。69.处理单元执行上文所描述的各个方法和处理,例如方法s101~s104。例如,在一些实施例中,方法s101~s104可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由rom和/或通信单元而被载入和/或安装到设备上。当计算机程序加载到ram并由cpu执行时,可以执行上文描述的方法s101~s104的一个或多个步骤。备选地,在其他实施例中,cpu可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法s101~s104。70.本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、负责可编程逻辑设备(cpld)等等。71.用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。72.在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。73.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。









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




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




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

相关内容 查看全部