本发明涉及监控领域,尤其涉及一种基于模拟用户测试的监控方法和装置。
背景技术:
目前的监控方式是通过真实的用户操作行为,然后在生产环境上做一些阈值设置,比如机器的物理性能如cpu等是否达到阈值,日志中error等相关的信息是否到达一定的数量等等,如果达到阈值,系统触发报警功能,这种监控方式往往是滞后的,所表现出来的问题往往都是较为严重的问题,解决起来要花费很大精力。
技术实现要素:
有鉴于此,本发明实施例提供了一种基于模拟用户测试的监控方法和装置,用以解决现有技术系统环境异常时监控滞后的问题。
一方面,本发明实施例提供了一种基于模拟用户测试的监控方法,所述方法包括:根据接口的重要程度为所述接口设置测试周期;根据所述接口的功能为所述接口设置输入参数;每隔所述测试周期,根据所述输入参数生成请求命令,所述请求命令用于对所述接口进行模拟用户测试;执行所述请求命令,对所述接口进行模拟用户测试,其中,在所述接口正常的情况下,所述接口在预设时长内返回目标代码;判断在所述预设时长内是否接收到所述接口返回的所述目标代码;如果在所述预设时长内接收到所述接口返回的所述目标代码,则确定所述接口正常。
进一步地,在所述根据所述输入参数生成请求命令之前,所述方法还包括:使用jmeter+ant+jenkins搭建自动化测试框架,在所述确定所述接口正常之后,所述方法还包括:生成所述接口的测试报告,所述根据接口的重要程度为所述接口设置测试周期,包括:在jmeter中根据接口的重要程度为所述接口设置所述测试周期,在所述根据所述输入参数生成请求命令之前,所述方法还包括:新建配置文件;在所述配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
进一步地,在所述判断在所述预设时长内是否接收到所述接口返回的所述目标代码之前,所述方法还包括:获取所述接口的多个历史响应时长;根据所述接口的所述多个历史响应时长确定所述预设时长。
进一步地,所述根据所述接口的所述多个历史响应时长确定所述预设时长,包括:根据所述多个历史响应时长的大小对所述多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为所述预设时长,或,计算所述多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到所述预设时长,所述误差参数根据所述接口的测试环境预先确定。
进一步地,在所述判断在所述预设时长内是否接收到所述接口返回的所述目标代码之后,所述方法还包括:如果在所述预设时长内所述接口返回的代码与所述目标代码不同,则确定所述接口异常。
进一步地,在所述判断在所述预设时长内是否接收到所述接口返回的所述目标代码之后,所述方法还包括:如果在所述预设时长内未接收到所述接口返回的代码,则重新对所述接口进行模拟用户测试,并判断在所述预设时长内是否接收到所述接口返回的所述目标代码;如果在所述预设时长内接收到所述接口返回的所述目标代码,则确定所述接口正常;如果在所述预设时长内所述接口返回的代码与所述目标代码不同,则确定所述接口异常;如果在所述预设时长内未接收到所述接口返回的代码,则确定所述接口异常;如果确定所述接口异常,将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。
一方面,本发明实施例提供了一种基于模拟用户测试的监控装置,所述装置包括:第一设置单元,用于根据接口的重要程度为所述接口设置测试周期;第二设置单元,用于根据所述接口的功能为所述接口设置输入参数;第一生成单元,用于每隔所述测试周期,根据所述输入参数生成请求命令,所述请求命令用于对所述接口进行模拟用户测试;执行单元,用于执行所述请求命令,对所述接口进行模拟用户测试,其中,在所述接口正常的情况下,所述接口在预设时长内返回目标代码;判断单元,用于判断在所述预设时长内是否接收到所述接口返回的所述目标代码;第一确定单元,用于如果在所述预设时长内接收到所述接口返回的所述目标代码,则确定所述接口正常。
进一步地,所述装置还包括:搭建单元,用于在所述第一生成单元根据所述输入参数生成请求命令之前,使用jmeter+ant+jenkins搭建自动化测试框架,第二生成单元,用于在所述第一确定单元确定所述接口正常之后,生成所述接口的测试报告,所述第一设置单元用于:在jmeter中根据接口的重要程度为所述接口设置所述测试周期,新建单元,用于在所述第一生成单元根据所述输入参数生成请求命令之前,新建配置文件;配置单元,用于在所述配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
进一步地,所述装置还包括:获取单元,用于在所述判断单元判断在所述预设时长内是否接收到所述接口返回的所述目标代码之前,获取所述接口的多个历史响应时长;第二确定单元,用于根据所述接口的所述多个历史响应时长确定所述预设时长。
进一步地,所述第二确定单元包括:第一确定子单元,用于:根据所述多个历史响应时长的大小对所述多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为所述预设时长,或,第二确定子单元,用于:计算所述多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到所述预设时长,所述误差参数根据所述接口的测试环境预先确定。
进一步地,所述装置还包括:第三确定单元,用于在所述判断单元判断在所述预设时长内是否接收到所述接口返回的所述目标代码之后,如果在所述预设时长内所述接口返回的代码与所述目标代码不同,则确定所述接口异常。
进一步地,所述装置还包括:测试单元,用于在所述判断单元判断在所述预设时长内是否接收到所述接口返回的所述目标代码之后,如果在所述预设时长内未接收到所述接口返回的代码,则重新对所述接口进行模拟用户测试,并判断在所述预设时长内是否接收到所述接口返回的所述目标代码;第四确定单元,用于如果在所述预设时长内接收到所述接口返回的所述目标代码,则确定所述接口正常;第五确定单元,用于如果在所述预设时长内所述接口返回的代码与所述目标代码不同,则确定所述接口异常;第六确定单元,用于如果在所述预设时长内未接收到所述接口返回的代码,则确定所述接口异常;打包单元,用于如果确定所述接口异常,将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。
一方面,本发明实施例提供了一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述的基于模拟用户测试的监控方法。
一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,所述程序指令被处理器加载并执行时实现上述的基于模拟用户测试的监控方法的步骤。
通过根据接口的重要程度为接口设置测试周期,根据接口的功能为接口设置输入参数,每隔测试周期,根据输入参数生成请求命令,执行请求命令,对接口进行模拟用户测试,对重要的接口进行测试的次数多,对不太重要的接口进行测试的次数少,在保证了重要接口及时得到测试的情况下避免了过多测试对服务器造成不必要的压力,通过模拟用户对接口进行测试,在异常情况大面积出现之前就能及时向相关人员告警,达到了预警的效果,解决了现有技术系统环境异常时监控滞后的问题。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是根据本发明实施例一种可选的基于模拟用户测试的监控方法的流程图;
图2是根据本发明实施例一种可选的基于模拟用户测试的监控装置的示意图。
【具体实施方式】
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本发明实施例提供了一种基于模拟用户测试的监控方法,如图1所示,该方法包括:
步骤s102:根据接口的重要程度为接口设置测试周期;
步骤s104:根据接口的功能为接口设置输入参数;
步骤s106:每隔测试周期,根据输入参数生成请求命令,请求命令用于对接口进行模拟用户测试;
步骤s108:执行请求命令,对接口进行模拟用户测试,其中,在接口正常的情况下,接口在预设时长内返回目标代码;
步骤s110:判断在预设时长内是否接收到接口返回的目标代码;
步骤s112:如果在预设时长内接收到接口返回的目标代码,则确定接口正常。
根据接口的重要程度设置测试周期,接口的重要程度越高,测试周期越短,例如,接口a非常重要,设置接口a的测试周期为5分钟,则每隔5分钟对接口a进行测试;接口b的重要性不及接口a,设置接口b的测试周期为15分钟,每隔15分钟对接口b进行测试。
根据接口的功能为接口设置输入参数,输入参数可以包括类别和数量,例如,接口a的功能是供用户查询保险产品,则输入参数可以包括保险产品的类别和数量;接口b的功能是供用户查询理财产品,则输入参数可以包括理财产品的类别和数量。
通过根据接口的重要程度为接口设置测试周期,根据接口的功能为接口设置输入参数,每隔测试周期,根据输入参数生成请求命令,执行请求命令,对接口进行模拟用户测试,对重要的接口进行测试的次数多,对不太重要的接口进行测试的次数少,在保证了重要接口及时得到测试的情况下避免了过多测试对服务器造成不必要的压力,通过模拟用户对接口进行测试,在异常情况大面积出现之前就能及时向相关人员告警,达到了预警的效果,解决了现有技术系统环境异常时监控滞后的问题。
在根据输入参数生成请求命令之前,方法还包括:使用jmeter+ant+jenkins搭建自动化测试框架,在确定接口正常之后,方法还包括:生成接口的测试报告,根据接口的重要程度为接口设置测试周期,包括:在jmeter中根据接口的重要程度为接口设置测试周期,在根据输入参数生成请求命令之前,方法还包括:新建配置文件;在配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
在根据接口的重要程度为接口设置测试参数之前,方法还包括:使用jenkins构建自动化测试框架。使用jenkins构建自动化测试框架,可以使用jmeter+ant+jenkins来进行搭建,在jmeter中可以对接口的请求脚本、请求参数和请求方式进行设置,ant通过构建命令来执行jmeter接口测试,并生成测试报告。
jmeter是apache组织开发的基于java的压力测试工具,可以用于对静态的和动态的资源(文件,servlet,perl脚本,java对象,数据库和查询,ftp服务器等等)的性能进行测试。ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于java环境中的软件开发。
根据测试参数对接口进行模拟用户测试,可以通过jenkins自动定时去执行,jenkins是一个持续集成工具。
在jmeter中对接口的请求脚本、请求参数和请求方式进行设置时,请求脚本可以按照每个接口具体的请求逻辑使用编程语言进行编写,如果接口需要传入参数,则可以使用固定参数或按照一定规律的可变参数作为请求参数传入接口,请求方式可以使用基于http协议的rest方式。
在ant中构建命令对jmeter进行调用则是通过新建ant的配置文件完成的。具体操作时,可以新建一个配置文件,取名为build.xml,在build.xml中需要配置的内容有:jmeter的安装路径;jmeter生成的报告存放路径,需提前建好文件夹或使用已有的文件夹;jmeter生成报告的报告命名规范;jmeter测试脚本存放路径。
在配置完jmeter和ant之后,即可在jenkins中创建对接口的模拟用户测试任务,包括:新建任务;对任务配置构建信息。
在对任务配置构建信息时,根据测试框架需要按照“invokeant”的方式进行构建,该方式会按照ant配置文件(比如build.xml)对接口进行调用。构建完成之后,就可以启动该测试任务。
可选地,判断在预设时长内是否接收到接口返回的目标代码之前,方法还包括:获取接口的多个历史响应时长;根据接口的多个历史响应时长确定预设时长。
根据接口的历史响应时间数据,预测接口的正常响应时长,该正常响应时长即为预设时长。
可选地,根据接口的多个历史响应时长确定预设时长,包括:根据多个历史响应时长的大小对多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为预设时长,或,计算多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到预设时长,误差参数根据接口的测试环境预先确定。
在本方案中,使用了主动式监控(根据用户行为场景,不需要用户操作,模拟用户行为定时发起),在大规模异常之前就监控到异常信息,达到及时预警的效果。本方案还可以结合被动式监控(由用户发起),达到无遗漏监控的效果。
接口预设时长的获取可以通过对接口的历史日志数据进行格式化来得到,具体实施时,可以将日志文件输出到消息队列中(比如rocketmq),通过spark(或storm)将数据按照标准格式转换为所需的响应时间数据,并存储到数据库中,接口响应时间数据的内容包括有接口名称、接口地址、接口入参、接口回参、接口响应时间等信息。
可选地,判断在预设时长内是否接收到接口返回的目标代码之后,方法还包括:如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常。
可选地,判断在预设时长内是否接收到接口返回的目标代码之后,方法还包括:如果在预设时长内未接收到接口返回的代码,则重新根据测试参数对接口进行模拟用户测试,并判断在预设时长内是否接收到接口返回的目标代码,如果在预设时长内接收到接口返回的目标代码,则确定接口正常;如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常;如果在预设时长内未接收到接口返回的代码,则确定接口异常,此时接口异常为超时异常,通知目标用户,同时ping接口所在的网关、服务器、数据库。如果ping接口所在的网关、服务器、数据库之后,发现问题,则通知相关工作人员。例如,确定接口异常之后,ping接口所在的网关、服务器、数据库,发现网关、数据库都没有问题,服务器有问题,将接口异常信息和服务器异常数据进行打包,发送至接口的相关工作人员,还可以发送至服务器的维护人员。针对每个监控的接口,会根据这个接口所涉及的系统、服务,都会去ping一下,最大限度的去定位到相关的出错环节。通过时间和出错信息两个角度来监控,精确判断接口异常。
可选地,在确定接口异常之后,方法还包括:将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。发送至相关工作人员的方式可以为邮件、短信、或者微信的方式。
本方案中,通过使用模拟用户对接口进行不同频率的模拟测试,实现了提前感知接口风险,同时根据不同的返回代码对接口进行监控,提高了测试准确度,结合对接口所在网关、服务器、数据库的分析,多维度挖掘故障点,实现了接口异常的精准分析,快速定位,提前排除性能隐患。
本发明实施例提供了一种基于模拟用户测试的监控装置,该装置用于执行上述基于模拟用户测试的监控方法,如图2所示,该装置包括:第一设置单元10、第二设置单元20、第一生成单元30、执行单元40、判断单元50、第一确定单元60。
第一设置单元10,用于根据接口的重要程度为接口设置测试周期。
第二设置单元20,用于根据接口的功能为接口设置输入参数。
第一生成单元30,用于每隔测试周期,根据输入参数生成请求命令,请求命令用于对接口进行模拟用户测试。
执行单元40,用于执行请求命令,对接口进行模拟用户测试,其中,在接口正常的情况下,接口在预设时长内返回目标代码。
判断单元50,用于判断在预设时长内是否接收到接口返回的目标代码。
第一确定单元60,用于如果在预设时长内接收到接口返回的目标代码,则确定接口正常。
根据接口的重要程度设置测试周期,接口的重要程度越高,测试周期越短,例如,接口a非常重要,设置接口a的测试周期为5分钟,则每隔5分钟对接口a进行测试;接口b的重要性不及接口a,设置接口b的测试周期为15分钟,每隔15分钟对接口b进行测试。
根据接口的功能为接口设置输入参数,输入参数可以包括类别和数量,例如,接口a的功能是供用户查询保险产品,则输入参数可以包括保险产品的类别和数量;接口b的功能是供用户查询理财产品,则输入参数可以包括理财产品的类别和数量。
通过根据接口的重要程度为接口设置测试周期,根据接口的功能为接口设置输入参数,每隔测试周期,根据输入参数生成请求命令,执行请求命令,对接口进行模拟用户测试,对重要的接口进行测试的次数多,对不太重要的接口进行测试的次数少,在保证了重要接口及时得到测试的情况下避免了过多测试对服务器造成不必要的压力,通过模拟用户对接口进行测试,在异常情况大面积出现之前就能及时向相关人员告警,达到了预警的效果,解决了现有技术系统环境异常时监控滞后的问题。
可选地,装置还包括:搭建单元、第二生成单元、新建单元、配置单元。搭建单元,用于在第一生成单元30根据输入参数生成请求命令之前,使用jmeter+ant+jenkins搭建自动化测试框架。第二生成单元,用于在第一确定单元确定接口正常之后,生成接口的测试报告。第一设置单元用于:在jmeter中根据接口的重要程度为接口设置测试周期。新建单元,用于在第一生成单元根据输入参数生成请求命令之前,新建配置文件。配置单元,用于在配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
在根据接口的重要程度为接口设置测试参数之前,使用jenkins构建自动化测试框架。使用jenkins构建自动化测试框架,可以使用jmeter+ant+jenkins来进行搭建,在jmeter中可以对接口的请求脚本、请求参数和请求方式进行设置,ant通过构建命令来执行jmeter接口测试,并生成测试报告。
jmeter是apache组织开发的基于java的压力测试工具,可以用于对静态的和动态的资源(文件,servlet,perl脚本,java对象,数据库和查询,ftp服务器等等)的性能进行测试。ant是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于java环境中的软件开发。
根据测试参数对接口进行模拟用户测试,可以通过jenkins自动定时去执行,jenkins是一个持续集成工具。
在jmeter中对接口的请求脚本、请求参数和请求方式进行设置时,请求脚本可以按照每个接口具体的请求逻辑使用编程语言进行编写,如果接口需要传入参数,则可以使用固定参数或按照一定规律的可变参数作为请求参数传入接口,请求方式可以使用基于http协议的rest方式。
在ant中构建命令对jmeter进行调用则是通过新建ant的配置文件完成的。具体操作时,可以新建一个配置文件,取名为build.xml,在build.xml中需要配置的内容有:jmeter的安装路径;jmeter生成的报告存放路径,需提前建好文件夹或使用已有的文件夹;jmeter生成报告的报告命名规范;jmeter测试脚本存放路径。
在配置完jmeter和ant之后,即可在jenkins中创建对接口的模拟用户测试任务,包括:新建任务;对任务配置构建信息。
在对任务配置构建信息时,根据测试框架需要按照“invokeant”的方式进行构建,该方式会按照ant配置文件(比如build.xml)对接口进行调用。构建完成之后,就可以启动该测试任务。
可选地,装置还包括:获取单元、第二确定单元。获取单元,用于在判断单元50判断在预设时长内是否接收到接口返回的目标代码之前,获取接口的多个历史响应时长。第二确定单元,用于根据接口的多个历史响应时长确定预设时长。
根据接口的历史响应时间数据,预测接口的正常响应时长,该正常响应时长即为预设时长。
可选地,第二确定单元包括:第一确定子单元和/或第二确定子单元。第一确定子单元,用于:根据多个历史响应时长的大小对多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为预设时长。第二确定子单元,用于:计算多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到预设时长,误差参数根据接口的测试环境预先确定。
在本方案中,使用了主动式监控(根据用户行为场景,不需要用户操作,模拟用户行为定时发起),在大规模异常之前就监控到异常信息,达到及时预警的效果。本方案还可以结合被动式监控(由用户发起),达到无遗漏监控的效果。
接口预设时长的获取可以通过对接口的历史日志数据进行格式化来得到,具体实施时,可以将日志文件输出到消息队列中(比如rocketmq),通过spark(或storm)将数据按照标准格式转换为所需的响应时间数据,并存储到数据库中,接口响应时间数据的内容包括有接口名称、接口地址、接口入参、接口回参、接口响应时间等信息。
可选地,装置还包括:第三确定单元。第三确定单元,用于在判断单元50判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常。
可选地,装置还包括:测试单元、第四确定单元、第五确定单元、第六确定单元、打包单元。测试单元,用于在判断单元50判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内未接收到接口返回的代码,则重新对接口进行模拟用户测试,并判断在预设时长内是否接收到接口返回的目标代码。第四确定单元,用于如果在预设时长内接收到接口返回的目标代码,则确定接口正常。第五确定单元,用于如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常。第六确定单元,用于如果在预设时长内未接收到接口返回的代码,则确定接口异常。打包单元,用于如果确定接口异常,将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。
本方案中,通过使用模拟用户对接口进行不同频率的模拟测试,实现了提前感知接口风险,同时根据不同的返回代码对接口进行监控,提高了测试准确度,结合对接口所在网关、服务器、数据库的分析,多维度挖掘故障点,实现了接口异常的精准分析,快速定位,提前排除性能隐患。
一方面,本发明实施例提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行以下步骤:根据接口的重要程度为接口设置测试周期;根据接口的功能为接口设置输入参数;每隔测试周期,根据输入参数生成请求命令,请求命令用于对接口进行模拟用户测试;执行请求命令,对接口进行模拟用户测试,其中,在接口正常的情况下,接口在预设时长内返回目标代码;判断在预设时长内是否接收到接口返回的目标代码;如果在预设时长内接收到接口返回的目标代码,则确定接口正常。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在根据输入参数生成请求命令之前,使用jmeter+ant+jenkins搭建自动化测试框架,在确定接口正常之后,生成接口的测试报告,根据接口的重要程度为接口设置测试周期,在jmeter中根据接口的重要程度为接口设置测试周期,在根据输入参数生成请求命令之前,新建配置文件;在配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之前,获取接口的多个历史响应时长;根据接口的多个历史响应时长确定预设时长。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:根据多个历史响应时长的大小对多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为预设时长,或,计算多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到预设时长,误差参数根据接口的测试环境预先确定。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常。
可选地,在程序运行时控制存储介质所在设备还执行以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内未接收到接口返回的代码,则重新对接口进行模拟用户测试,并判断在预设时长内是否接收到接口返回的目标代码;如果在预设时长内接收到接口返回的目标代码,则确定接口正常;如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常;如果在预设时长内未接收到接口返回的代码,则确定接口异常;如果确定接口异常,将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。
一方面,本发明实施例提供了一种计算机设备,包括存储器和处理器,存储器用于存储包括程序指令的信息,处理器用于控制程序指令的执行,程序指令被处理器加载并执行时实现以下步骤:根据接口的重要程度为接口设置测试周期;根据接口的功能为接口设置输入参数;每隔测试周期,根据输入参数生成请求命令,请求命令用于对接口进行模拟用户测试;执行请求命令,对接口进行模拟用户测试,其中,在接口正常的情况下,接口在预设时长内返回目标代码;判断在预设时长内是否接收到接口返回的目标代码;如果在预设时长内接收到接口返回的目标代码,则确定接口正常。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在根据输入参数生成请求命令之前,使用jmeter+ant+jenkins搭建自动化测试框架,在确定接口正常之后,生成接口的测试报告,根据接口的重要程度为接口设置测试周期,在jmeter中根据接口的重要程度为接口设置测试周期,在根据输入参数生成请求命令之前,新建配置文件;在配置文件中配置jmeter的安装路径、测试报告存放路径、测试报告命名规范、jmeter测试脚本存放路径。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之前,获取接口的多个历史响应时长;根据接口的多个历史响应时长确定预设时长。
可选地,程序指令被处理器加载并执行时还实现以下步骤:根据多个历史响应时长的大小对多个历史响应时长进行排序,得到排序结果;筛选出位于排序结果中间的预设比例的历史响应时长;将筛选出的历史响应时长中最大的历史响应时长作为预设时长,或,计算多个历史响应时长的平均值或中位数;将平均值或中位数与误差参数求和,得到预设时长,误差参数根据接口的测试环境预先确定。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常。
可选地,程序指令被处理器加载并执行时还实现以下步骤:在判断在预设时长内是否接收到接口返回的目标代码之后,如果在预设时长内未接收到接口返回的代码,则重新对接口进行模拟用户测试,并判断在预设时长内是否接收到接口返回的目标代码;如果在预设时长内接收到接口返回的目标代码,则确定接口正常;如果在预设时长内接口返回的代码与目标代码不同,则确定接口异常;如果在预设时长内未接收到接口返回的代码,则确定接口异常;如果确定接口异常,将接口信息、输入参数、接口地址、实际输出参数、相关日志信息进行打包,并发送至相关工作人员。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。