利用jenkins封装平台进行测试的方法、装置和计算机设备与流程

文档序号:17720830发布日期:2019-05-22 02:08阅读:310来源:国知局
利用jenkins封装平台进行测试的方法、装置和计算机设备与流程

本申请涉及开发测试技术领域,特别涉及一种利用jenkins封装平台进行测试的方法、装置和计算机设备。



背景技术:

jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。jenkins本身的功能非常强大,操作细节很多,需要理解的概念也很多,因为这些原因,导致初次接触jenkins平台的人会感到不知道如何使用,无从下手。jenkins的功能虽然非常强大,但也导致操作太复杂,使用门槛较高,平台功能过于复杂,初学者需较长时间才能上手,不利于大范围推广使用。



技术实现要素:

本申请的主要目的为提供一种jenkins二次封装的方法、装置、计算机设备和存储介质,简化操作,使初学者更容易上手,促进平台的使用、推广。

为实现上述目的,本申请提供了一种利用jenkins封装平台进行测试的方法,包括以下步骤:

获取指定任务的测试指令;

根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

按照封装好的方法和所述预设参数执行所述指定任务,并得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

进一步地,所述获取指定任务的测试指令的步骤之前,包括:

按照任务要求,对jenkins的多个操作步骤进行封装。

进一步地,所述按照任务要求,对jenkins的多个操作步骤进行封装的步骤,包括:

获取与执行任务有关的所有请求包;

将所有请求包的请求接口以及与请求接口对应的入口参数封装到一个方法里,并封装各接口间的跳转代码。

进一步地,所述获取指定任务的测试指令的步骤之前,包括:

判断是否达到预设时间;

若是,生成所述获取指定任务的测试指令的控制信号。

进一步地,所述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤,还包括:

解析响应报文,并将解析结果按预设格式制成邮件正文;

获取发送邮件的指令,将包含所述邮件正文的邮件发送至指定邮箱。

进一步地,所述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤之后,还包括:

对所有的已经执行的任务进行统计和结果分析,得出统计和分析的结果信息;

根据所述结果信息绘制图表;

将所述图表显示在前端。

进一步地,所述所述指定任务为多个任务中的一个或多个,所述获取指定任务的测试指令的步骤之前,还包括:

按照预设规则对多个任务进行分类;

将同一个类型的任务在同一个标签页中进行显示。

本申请还提供一种利用jenkins封装平台进行测试的装置,其特征在于,包括:

指令获取单元,用于获取指定任务的测试指令;

参数传入单元,用于根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

任务执行单元,用于按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

本申请中提供的利用jenkins封装平台进行测试的方法、装置、计算机设备和存储介质,根据任务指令,按照封装好的方法执行任务,得出执行结果;从而提高任务执行的效率,减少人工参与,节约时间;简化操作,使初学者更容易上手,极大地促进了平台的使用、推广。

附图说明

图1是本申请一实施例中利用jenkins封装平台进行测试的方法步骤示意图;

图2是本申请一实施例中利用jenkins封装平台进行测试的装置结构框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请一实施例中提供了一种利用jenkins封装平台进行测试的方法,包括以下步骤:

步骤s1,获取指定任务的测试指令;

步骤s2,根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

步骤s3,按照封装好的方法和上述预设参数执行所述指定任务,得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

本实施例中,通过利用jenkins经过二次封装而形成的新的开发平台,传入与任务相关的参数后,接收到指定任务的测试指令即按照具体测试指令和相关参数,按封装好的任务步骤执行该任务,从而达到简化操作,使初学者更容易上手,提高工作效率的目的。

如上述步骤s1所述,对指定任务执行测试任务之前,首先要获取指定任务的测试指令。其中,指定任务的测试指令可以是由用户手动点击所产生,在用户看来,除了预先传入的参数之外,具体的操作仅进行了一次点击。也可以是设定的满足一定条件后自动产生,例如:达到预定时间后自动生成指定任务的测试指令,从而自动执行相应的任务。

如上述步骤s2所述,获取到指定任务的测试指令后,平台根据上述测试指令传入预设参数。jenkins中,执行某个任务往往需要多个操作步骤来完成,每个操作步骤需要对应的参数支持。所以,在执行某项任务之前需要传入这些预设参数。预设参数是按预定顺序排序的,预定顺序就是根据执行任务的步骤所对应的传入参数的顺序。例如:第一个操作步骤对应的参数是视图名,将视图名作为参数1;第二个操作步骤对应的参数是job,将job名作为参数2;第二个操作步骤对应的参数是构建链接,将构建链接作为参数3。

如上述步骤s3所述,按照封装好的方法和预设参数执行指定任务,得出执行结果。其中,封装好的方法包括多个与指定任务相对应的jenkins操作步骤。例如:使用jenkins完成某项测试任务,需要人工进行三个步骤的操作;而在本申请方案中,由jenkins经二次封装而成的平台中预先封装了对应该项任务的方法,该方法中就包括这三个步骤,只是通过该封装好的方法,平台可以自动执行这些步骤。由于在步骤s2中已经根据执行任务的步骤,按步骤的顺序传入了对应的预设参数,例如预设参数是:视图名作为参数1,job名作为参数2,构建链接作为参数3,从而在接收到指定任务的测试指令后,就一次性将参数1、参数2和参数3传入,并按步骤执行任务。因为提前对预设参数进行了排序,所以预设参数的一次性传入并不会打乱预设参数的顺序,例如:在具体任务执行的过程中,第一个操作步骤自动调用参数1,第二个操作步骤自动调用参数2,第三个操作步骤自动调用参数3等等,直到任务的所有步骤执行完成,得到执行结果。

在以上步骤中,由jenkins经过二次封装而形成的平台,接到一个具体的指令后,一次性传入相应的预设参数,根据提前预封装好的方法/步骤得出与预设参数相对应的结果。例如:在没有经过本方案处理的jenkins上查看构建历史时,需要依次点击视图、对应job、对应某次构建链接,三次点击操作,对应三次页面跳转,才能看到最终的信息。但是在本发明中,因为封装好了与以上各操作步骤对应的方法/步骤,接收任务的测试指令后,一次性传入按预定顺序排序的预设参数,即可完成操作。在使用者看来,只做了一次点击,这样就使得操作更加简洁明了。

在一实施例中,上述获取指定任务的测试指令的步骤s1之前,包括:

步骤s01,按照任务要求,对jenkins的多个操作步骤进行封装。

如上述步骤s01所述,根据不同的任务要求,对jenkins完成该任务要求的各操作步骤进行封装。也即,封装一个方法,请求jenkins上执行job的接口,通过传参定位到指定的job;从而,达到使jenkins封装后形成的平台在接收到具体任务指令后自动执行任务,自动进行各操作步骤,不需要人工逐个点击选择,节约时间和人工成本,提高效率的目的。

在jenkins上操作指定job的构建、新增、编辑、删除、查看详情、查看构建历史等时,需要进行多次的鼠标点击才能完成,而且每次操作不同的job时,都需要进行多次点击来完成页面跳转,最终才行查看到想看到的内容或者完成操作。本实施例,通过封装方法,只需对方法传入一些参数,如job名称、操作类型等,就可以直接请求到相应操作的接口,从而避免了多次页面的跳转和不必要的接口的调用。

例如:在jenkins上查看对应job所执行的自动化案例的一些信息,需要依次经过多次点击,如点击视图、对应job、对应某次构建链接、案例结果报告链接、对应的测试方法报告链接、报错结果信息等,层层点击,目录层级较深,查看信息的步骤较为繁琐。本申请由jenkins二次封装而成的平台,将这样的多步点击和跳转,封装成一个方法,只需要传入相应的参数,即可完成以上多个步骤多个接口的请求和处理。如:在jenkins上查看构建历史时,需要依次点击视图、对应job、对应某次构建链接,三次点击操作,三次页面跳转,才能看到最终的信息;但是在本申请将这三次页面跳转封装起来,形成新的平台,需要查看构建历史时,仅需要将视图、job名、构建链接的三种参数按顺序输入后一次性传入,即可完成以上多个步骤多个接口的请求和处理,达到操作目的。在使用者看来,只做了一次点击,这样就使得操作更加简洁明了。在页面上,则体现为在同一页面下的操作,从而使得界面操作友好、直观、便于操作。

再如:在jenkins上想要查看执行失败的案例的错误信息,需要依次经过以下点击:视图、相应的job、相应的构建链接、相应的test方法、错误展示链接。因此操作步骤太多,查看不方便。本实施例,在方法中封装了这一系列的步骤,只需要传入相关的参数即可一步完成查询。在封装后的平台页面上,只需要选择相应的job,点击查看错误信息按钮,即可触发方法的调用,将该job的错误信息返回展示到页面上。

在一个实施例中,上述按照任务要求,对jenkins的多个操作步骤进行封装的步骤的步骤s01,包括:

步骤s011,获取与执行任务有关的所有请求包;

步骤s012,将所有请求包的请求接口以及与请求接口对应的入口参数封装到一个方法里,并封装各接口间的跳转代码。

如上述步骤s011所述,封装完成某一个任务的方法之前,先要获取完成该任务所涉及的多个请求包,每个请求包对应一个操作步骤,每个请求包中包括与该请求包对应的请求接口和完成该步骤所需要的多个入口参数。其中,方法是指函数方法或代码方法,其对应一个任务操作过程的多个步骤;请求接口,相当于进入该步骤的接口;入口参数是程序执行时会调用的参数,入口参数需要在调用时赋值,相当于特定类型的参数的传入口。

然后,如上述步骤s012所述,将以上获取到的所有请求接口以及与请求接口/请求包对应的各入口参数封装到一个方法(对应一个任务操作过程的函数方法或代码方法,包括多个步骤)里,并封装各请求接口之间的跳转代码,从而在完成一个接口对应的操作步骤后自动跳转到另一个接口对应的操作步骤,进而完成整个任务的多个步骤。

在一实施例中,上述获取指定任务的测试指令的步骤s1之前,包括:

步骤s02,接收输入的参数,作为预设参数;所述参数,是按所述预定顺序排序输入的。

如上述步骤s02所述,在获取指定任务的测试指令之前,先要输入与该任务相关的参数作为预设参数,例如:在jenkins上查看构建历史时,需要进行三次点击操作,三次点击操作对应三次页面跳转,而且要分别传入视图、job名和构建链接这三个参数,才能看到最终的信息。本实施例中虽然对jenkins进行了二次封装,但其完成某项任务所需要的参数是必不可少的,因而,欲完成查看构建历史的任务,仍旧需要输入视图、job名、构建链接这三个参数。在本步骤中,只是预先输入这些参数作为预设参数,待接收到指定任务的测试指令后再传入这些预设参数,然后按照预设参数执行任务。上述参数,是按照预定顺序排序输入的,例如:把视图名、job名、构建链接等参数按顺序(如参数1、参数2、参数3等按顺序排序)输入,从而将执行任务的各步骤与执行该步骤所需要的参数对应起来。

在一实施例中,上述获取指定任务的测试指令的步骤s1之前,还包括:

步骤s03,判断是否达到预设时间;

步骤s04,若是,生成所述获取指定任务的测试指令的控制信号。

如上述步骤s03和s04所述,jenkins封装而成的平台设有定时功能,达到预定时间后自动生成所述获取指定任务的测试指令的控制信号;获取到指定任务的测试指令后,按照指令和对应的封装步骤执行相关任务。本申请方案写入定时任务功能,定时任务会在指定时间执行封装好的方法,例如:在指定的时间对待测试产品执行冒烟测试、定时执行对封装好的方法进行更新(从而实现该方法与jenkins的同步更新)、定时发送邮件等。

在工程中写下定时任务,会在指定时间执行任务,并且是迭代地执行,每次执行会参入不同的参数,从而可以执行不同的job(任务)。其中,迭代地执行是指,同一个案例集中的案例是按顺序执行的,不同案例集中的案例是按顺序执行的,执行每个案例都是一个job。

在一实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤s3,还包括:

步骤s301,解析响应报文,并将解析结果按预设格式制成邮件正文;

步骤s302,获取发送邮件的指令,将包含所述邮件正文的邮件发送至指定邮箱。

如上述步骤s301所述,在按照封装好的方法执行任务的过程中,每一个请求都有对应的响应并生成响应报文,技术人员通过响应报文可以了解任务的执行情况,因而,在本步骤中将解析结果按预设格式制成邮件正文。其中预设格式是指,满足邮件的发送要求的格式;为了便于技术人员知晓该邮件是关于响应报文的,可以附加相应的提示或按规定的便于辨识的格式。

如上述步骤s302所述,将解析结果按预设格式制成邮件正文后,获取发送邮件的指令,将响应报文通过邮件发送至指定邮箱。其中,指定邮箱是负责该项测试的技术人员的邮箱,从而使具体负责该项测试的技术人员及时了解job(任务)的执行情况。

具体实施中,本实施例可以结合以上实施例定时任务的功能/方法,平台写入定时任务功能,定时任务会在指定时间执行封装好的方法,该方法会请求jenkins上每个job的执行接口,并返回所有job的执行后的响应报文。这些响应报文经过解析,最后按照表格形式拼接成邮件正文,作为结果报告,通过调用发送邮件接口,将最后的结果报告发送到指定测试人员的邮箱。

在一实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤s3,还包括:

步骤s303,展示执行任务的情况。

如上述步骤s303所述,平台封装了更新功能的方法,方法会去请求jenkins查看job列表的接口,将返回的列表信息进行解析,这些列表信息包含了目前jenkins上已配置了哪些job、job的执行情况等信息,把这些信息展示在平台的前端页面上。这样就做到了平台与jenkins的信息一致。另外,在平台上任何操作,实际都是请求了jenkins上的相应功能的接口,所以,每次平台的任何操作和页面的更新展示,在jenkins上都会有相应的更新。这样就做到了平台与jenkins的实时同步更新、交互。

在一实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤s3之后,还包括:

步骤s4,对所有的已经执行的任务进行统计和结果分析,得出统计和分析的结果信息;

步骤s5,根据所述结果信息绘制图表;

步骤s6,将所述图表显示在前端。

如上述步骤s4所述,对所有的已经执行的执行任务进行统计和结果分析,得出统计和分析的结果信息,这些结果信息能够反应测试的软件的质量等信息。如上述步骤s5所述,根据所述结果信息绘制图表,图表可以是趋势图、条块图、饼形图等表现形式。然后,如上述步骤s6所述,将上述绘制的图表显示在前端,从而供测试人员分析参考。

jenkins本身是没有对所有已运行过的job做整体统计和结果分析的功能的,本申请通过遍历地扫描jenkins上所有的job的执行情况,将信息(包含历史执行日志)进行整合统计,然后绘制成图表,在前端页面进行展示。所谓遍历,是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问;所谓通过遍历地扫描,也就是通过这种方式进行扫描,以获得扫描信息。这样,测试人员就可以看到基于job执行的案例测试汇总报告,看到质量趋势图表,作为质量分析的参考。

在一实施例中,上述获取指定任务的测试指令的步骤s1之前,还包括:

步骤s05,所述任务有多个,按照预设规则对多个任务进行分类;

步骤s06,将同一个类型的任务在同一个标签页中进行显示和管理。

如上述步骤s05所述,在平台中进行的任务一般有多个,例如:对多个软件分别进行的测试,每个软件的测试又包括多个测试项目(如冒烟测试、sit测试、uat测试、回归测试、基础案例库等),每个软件的每个测试项目都是一个任务。可以按预设规则对这些任务进行分类,从而便于管理。其中,预设规则可以是相同的测试项目,例如:将所有软件的冒烟测试作为一个分类。

如上述步骤s06所述,将同一个类型的任务在同一个标签页中进行显示和管理,例如:将所有的冒烟测试作为一个分类,那么就把所有的冒烟测试任务在一个标签页中进行显示和管理。封装后的平台页面包括多个标签页,同一个标签页下管理着相同测试目的的job,不同的标签页下管理着不同测试目的的job。从而,通过分类后形成的不同功能标签页,不仅方便查看对应标签页下都是有哪些任务,而且方便对这些任务进行管理。

这些标签页,如:冒烟、sit、uat、回归、基础案例库等。对应标签页下的job,对应着相应的测试用途,这样分标签管理job。封装后的平台中的这些job在jenkins中都有对应的job,但是在jenkins中这些job放在相应的视图下面。在jenkins中进行一些操作(如查看构建历史日志、查看案例执行报告等)时操作较为繁琐,所以管理起来比较麻烦。本申请就省去了很多繁琐步骤,在每个标签页中的操作都是很简洁的。

参照图2,本申请一实施例中还提供了一种利用jenkins封装平台进行测试的装置,包括:

指令获取单元10,用于获取指定任务的测试指令;

参数传入单元20,用于用于根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

任务执行单元30,用于按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

本实施例中,通过利用jenkins经过二次封装而形成的新的开发平台,传入与任务相关的参数后,接收到指定任务的测试指令即按照具体任务指令和相关参数,按封装好的任务步骤执行该任务,从而达到简化操作,使初学者更容易上手,提高工作效率的目的。

如上述指令获取单元10所述的,对指定任务执行测试任务之前,首先要获取指定任务的测试指令。其中,指定任务的测试指令可以是由用户手动点击所产生,在用户看来,除了预先传入的参数之外,具体的操作仅进行了一次点击。也可以是设定的满足一定条件后自动产生,例如:达到预定时间后自动生成指定任务的测试指令,从而自动执行相应的任务。

如上述参数传入单元20所述的,参数传入单元20获取到指定任务的测试指令后,平台根据上述测试指令传入预设参数。jenkins中,执行某个任务往往需要多个操作步骤来完成,每个操作步骤需要对应的参数支持。所以,在执行某项任务之前需要传入这些预设参数。预设参数是按预定顺序排序的,预定顺序就是根据执行任务的步骤所对应的传入参数的顺序。例如:第一个操作步骤对应的参数是视图名,将视图名作为参数1;第二个操作步骤对应的参数是job,将job名作为参数2;第二个操作步骤对应的参数是构建链接,将构建链接作为参数3。

如上述任务执行单元30所述的,任务执行单元30按照封装好的方法和预设参数执行指定任务,得出执行结果。其中,封装好的方法包括多个与指定任务相对应的jenkins操作步骤。例如:使用jenkins完成某项测试任务,需要人工进行三个步骤的操作;而在本申请方案中,由jenkins经二次封装而成的平台中预先封装了对应该项任务的方法,该方法中就包括这三个步骤,只是通过该封装好的方法,平台可以自动执行这些步骤。由于在参数传入单元20中已经根据执行任务的步骤,按步骤的顺序传入了对应的预设参数,例如预设参数是:视图名作为参数1,job名作为参数2,构建链接作为参数3,从而在接收到指定任务的测试指令后,就一次性将参数1、参数2和参数3传入,并按步骤执行任务。因为提前对预设参数进行了排序,所以预设参数的一次性传入并不会打乱预设参数的顺序,例如:在具体任务执行的过程中,第一个操作步骤自动调用参数1,第二个操作步骤自动调用参数2,第三个操作步骤自动调用参数3等等,直到任务的所有步骤执行完成,得到执行结果。

由jenkins经过二次封装而形成的平台,接到一个具体的指令后,一次性传入相应的预设参数,根据提前预封装好的方法/步骤得出与预设参数相对应的结果。例如:在jenkins上查看构建历史时,需要依次点击视图、对应job、对应某次构建链接,三次点击操作,对应三次页面跳转,才能看到最终的信息。但是在本发明中,因为平台封装好了与以上各操作步骤对应的方法/步骤,只需要把各参数按照顺序输入,例如:把视图名、job名、构建链接等参数按顺序(如参数1、参数2、参数3等按顺序排序)输入,接收任务的测试指令后,一次性传入按预定顺序排序的预设参数,即可完成操作。在使用者看来,只做了一次点击,这样就使得操作更加简洁明了。

在一实施例中,上述jenkins二次封装的装置,还包括:

封装单元,用于在指令获取单元10获取指定任务的测试指令之前,按照任务要求,对jenkins的多个操作步骤进行封装。

如上述封装单元所述的,根据不同的任务要求,对jenkins完成该任务要求的各操作步骤进行封装。也即,封装一个方法,请求jenkins上执行job的接口,通过传参定位到指定的job;从而,达到使jenkins封装后形成的平台在接收到具体任务指令后自动执行任务,自动进行各操作步骤,不需要人工逐个点击选择,节约时间和人工成本,提高效率的目的。

在jenkins上操作指定job的构建、新增、编辑、删除、查看详情、查看构建历史等时,需要进行多次的鼠标点击才能完成,而且每次操作不同的job时,都需要进行多次点击来完成页面跳转,最终才行查看到想看到的内容或者完成操作。本实施例,通过封装方法,只需对方法传入一些参数,如job名称、操作类型等,就可以直接请求到相应操作的接口,从而避免了多次页面的跳转和不必要的接口的调用。

例如:在jenkins上查看对应job所执行的自动化案例的一些信息,需要依次经过多次点击,如点击视图、对应job、对应某次构建链接、案例结果报告链接、对应的测试方法报告链接、报错结果信息等,层层点击,目录层级较深,查看信息的步骤较为繁琐。本申请由jenkins二次封装而成的平台,将这样的多步点击和跳转,封装成一个方法,只需要传入相应的参数,即可完成以上多个步骤多个接口的请求和处理。如:在jenkins上查看构建历史时,需要依次点击视图、对应job、对应某次构建链接,三次点击操作,三次页面跳转,才能看到最终的信息;但是在本申请将这三次页面跳转封装起来,形成新的平台,需要查看构建历史时,仅需要将视图、job名、构建链接的三种参数按顺序输入后一次性传入,即可完成以上多个步骤多个接口的请求和处理,达到操作目的。在使用者看来,只做了一次点击,这样就使得操作更加简洁明了。在页面上,则体现为在同一页面下的操作,从而使得界面操作友好、直观、便于操作。

再如:在jenkins上想要查看执行失败的案例的错误信息,需要依次经过以下点击:视图、相应的job、相应的构建链接、相应的test方法、错误展示链接。因此操作步骤太多,查看不方便。本实施例,在方法中封装了这一系列的步骤,只需要传入相关的参数即可一步完成查询。在封装后的平台页面上,只需要选择相应的job,点击查看错误信息按钮,即可触发方法的调用,将该job的错误信息返回展示到页面上。

在一实施例中,上述封装单元包括:

请求包获取模块,用于获取与执行任务有关的所有请求包;

封装模块,用于将所有请求包的请求接口以及与请求接口对应的入口参数封装到一个方法里,并封装各接口间的跳转代码。

如上述请求包获取模块所述的,封装完成某一个任务的方法之前,先要获取完成该任务所涉及的多个请求包,每个请求包对应一个操作步骤,每个请求包中包括与该请求包对应的请求接口和完成该步骤所需要的多个入口参数。其中,方法是指函数方法或代码方法,其对应一个任务操作过程的多个步骤;请求接口,相当于进入该步骤的接口;入口参数是程序执行时会调用的参数,入口参数需要在调用时赋值,相当于特定类型的参数的传入口。

然后,如上述封装模块所述的,将以上获取到的所有请求接口以及与请求接口/请求包对应的各入口参数封装到一个方法(对应一个任务操作过程的函数方法或代码方法,包括多个步骤)里,并封装各请求接口之间的跳转代码,从而在完成一个接口对应的操作步骤后自动跳转到另一个接口对应的操作步骤,进而完成整个任务的多个步骤。

在一实施例中,上述利用jenkins封装平台进行测试的装置,还包括:

参数输入单元:接收输入的参数,作为预设参数;所述参数,是按所述预定顺序排序输入的。

上述参数输入单元(如参数输入框),在获取指定任务的测试指令之前,先要在参数输入单元中输入与该任务相关的参数作为预设参数,例如:在jenkins上查看构建历史时,需要进行三次点击操作,三次点击操作对应三次页面跳转,而且要分别传入视图、job名和构建链接这三个参数,才能看到最终的信息。本实施例中虽然对jenkins进行了二次封装,但其完成某项任务所需要的参数是必不可少的,因而,欲完成查看构建历史的任务,仍旧需要输入视图、job名、构建链接这三个参数。在参数输入单元中中,只是预先输入这些参数作为预设参数,待接收到指定任务的测试指令后再传入这些预设参数,然后按照预设参数执行任务。上述参数,是按照预定顺序排序输入的,例如:把视图名、job名、构建链接等参数按顺序(如参数1、参数2、参数3等按顺序排序)输入,从而将执行任务的各步骤与执行该步骤所需要的参数对应起来。

在一实施例中,上述利用jenkins封装平台进行测试的装置,还包括:

时间判断单元,用于判断是否达到预设时间;

生成获取指令单元,用于若达到预设时间,生成所述获取指定任务的测试指令的控制信号。

如上述时间判断单元和生成获取指令单元所述的,jenkins封装而成的平台设有定时功能,时间判断单元判断达到预定时间后,生成获取指令单元自动发出指定任务的测试指令;获取到指定任务的测试指令后,按照指令和对应的封装步骤执行相关任务。本申请方案写入定时任务功能,定时任务会在指定时间执行封装好的方法,例如:在指定的时间对待测试产品执行冒烟测试、定时执行对封装好的方法进行更新(从而实现该方法与jenkins的同步更新)、定时发送邮件等。

在工程中写下定时任务,会在指定时间执行任务,并且是迭代地执行,每次执行会参入不同的参数,从而可以执行不同的job(任务)。其中,迭代地执行是指,同一个案例集中的案例是按顺序执行的,不同案例集中的案例是按顺序执行的,执行每个案例都是一个job。

在一实施例中,上述任务执行单元30,包括:

报文解析模块,用于解析响应报文,并将解析结果按预设格式制成邮件正文;

邮件发送模块,用于获取发送邮件的指令,将包含所述邮件正文的邮件发送至指定邮箱。

在按照封装好的方法执行任务的过程中,每一个请求都有对应的响应并生成响应报文,技术人员通过响应报文可以了解任务的执行情况,因而,如上述报文解析模块所述的,将解析结果按预设格式制成邮件正文。其中预设格式是指,满足邮件的发送要求的格式;为了便于技术人员知晓该邮件是关于响应报文的,可以附加相应的提示或按规定的便于辨识的格式。

将解析结果按预设格式制成邮件正文后,邮件发送模块获取发送邮件的指令,将响应报文通过邮件发送至指定邮箱。其中,指定邮箱是负责该项测试的技术人员的邮箱,从而使具体负责该项测试的技术人员及时了解job(任务)的执行情况。

具体实施中,本实施例可以结合以上实施例定时任务的功能/方法,平台写入定时任务功能,定时任务会在指定时间执行封装好的方法,该方法会请求jenkins上每个job的执行接口,并返回所有job的执行后的响应报文。这些响应报文经过解析,最后按照表格形式拼接成邮件正文,作为结果报告,通过调用发送邮件接口,将最后的结果报告发送到指定测试人员的邮箱。

在一实施例中,上述任务执行单元30,还包括:

执行情况展示模块,用于展示执行任务的情况。

如上述执行情况展示模块所述的,封装了更新功能的方法,方法会去请求jenkins查看job列表的接口,将返回的列表信息进行解析,这些列表信息包含了目前jenkins上已配置了哪些job、job的执行情况等信息,把这些信息展示在平台的前端页面上。这样就做到了平台与jenkins的信息一致。另外,在平台上任何操作,实际都是请求了jenkins上的相应功能的接口,所以,每次平台的任何操作和页面的更新展示,在jenkins上都会有相应的更新。这样就做到了平台与jenkins的实时同步更新、交互。

在一实施例中,上述利用jenkins封装平台进行测试的装置,还包括:

统计分析单元,用于对所有的已经执行的任务进行统计和结果分析,得出统计和分析的结果信息;

图表绘制单元,用于根据所述结果信息绘制图表;

图表显示单元,用于将所述图表显示在前端。

如上述统计分析单元所述的,对所有的已经执行的执行任务进行统计和结果分析,得出统计和分析的结果信息,这些结果信息能够反应测试的软件的质量等信息。如上述图表绘制单元所述的,根据所述结果信息绘制图表,图表可以是趋势图、条块图、饼形图等表现形式。然后,如上述图表显示单元所述的,将上述绘制的图表显示在前端,从而供测试人员分析参考。

jenkins本身是没有对所有已运行过的job做整体统计和结果分析的功能的,本申请通过遍历地扫描jenkins上所有的job的执行情况,将信息(包含历史执行日志)进行整合统计,然后绘制成图表,在前端页面进行展示。所谓遍历,是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问;所谓通过遍历地扫描,也就是通过这种方式进行扫描,以获得扫描信息。这样,测试人员就可以看到基于job执行的案例测试汇总报告,看到质量趋势图表,作为质量分析的参考。

在一实施例中,上述利用jenkins封装平台进行测试的装置,还包括:

任务分类单元,用于按照预设规则对多个任务进行分类,所述任务有多个;

显示和管理单元,用于将同一个类型的任务在同一个标签页中进行显示和管理。

如上述任务分类单元所述的,在平台中进行的任务一般有多个,例如:对多个软件分别进行的测试,每个软件的测试又包括多个测试项目(如冒烟测试、sit测试、uat测试、回归测试、基础案例库等),每个软件的每个测试项目都是一个任务。可以按预设规则对这些任务进行分类,从而便于管理。其中,预设规则可以是相同的测试项目,例如:将所有软件的冒烟测试作为一个分类。

如上述显示和管理单元所述的,将同一个类型的任务在同一个标签页中进行显示和管理,例如:将所有的冒烟测试作为一个分类,那么就把所有的冒烟测试任务在一个标签页中进行显示和管理。封装后的平台页面包括多个标签页,同一个标签页下管理着相同测试目的的job,不同的标签页下管理着不同测试目的的job。从而,通过分类后形成的不同功能标签页,不仅方便查看对应标签页下都是有哪些任务,而且方便对这些任务进行管理。

这些标签页,如:冒烟、sit、uat、回归、基础案例库等。对应标签页下的job,对应着相应的测试用途,这样分标签管理job。封装后的平台中的这些job在jenkins中都有对应的job,但是在jenkins中这些job放在相应的视图下面。在jenkins中进行一些操作(如查看构建历史日志、查看案例执行报告等)时操作较为繁琐,所以管理起来比较麻烦。本申请就省去了很多繁琐步骤,在每个标签页中的操作都是很简洁的。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储所述利用jenkins封装平台进行测试的方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现所述利用jenkins封装平台进行测试的的方法。

上述处理器执行上述利用jenkins封装平台进行测试的方法的步骤:

获取指定任务的测试指令;

根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

在一个实施例中,上述获取指定任务的测试指令的步骤之前,包括:

按照任务要求,对jenkins的多个操作步骤进行封装。

在一个实施例中,上述按照任务要求,对jenkins的多个操作步骤进行封装的步骤,包括:

获取与执行任务有关的所有请求包;

将所有请求包的请求接口以及与请求接口对应的入口参数封装到一个方法里,并封装各接口间的跳转代码。

在一个实施例中,上述获取指定任务的测试指令的步骤之前,还包括:

判断是否达到预设时间;

若是,生成所述获取指定任务的测试指令的控制信号。

在一个实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤,还包括:

解析响应报文,并将解析结果按预设格式制成邮件正文;

获取发送邮件的指令,将包含所述邮件正文的邮件发送至指定邮箱。

在一个实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤之后,还包括:

对所有的已经执行的任务进行统计和结果分析,得出统计和分析的结果信息;

根据所述结果信息绘制图表;

将图表显示在前端。

在一个实施例中,上述指定任务为多个任务中的一个或多个,所述获取指定任务的测试指令的步骤之前,还包括:

按照预设规则对多个任务进行分类;

将同一个类型的任务在同一个标签页中进行显示和管理。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种利用jenkins封装平台进行测试的方法,具体为:

获取指定任务的测试指令;

根据所述测试指令传入预设参数,其中,所述预设参数按预定顺序排序;

按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果;其中,所述封装好的方法包括多个与所述指定任务相对应的jenkins操作步骤。

在一个实施例中,上述获取指定任务的测试指令的步骤之前,包括:

按照任务要求,对jenkins的多个操作步骤进行封装。

在一个实施例中,上述按照任务要求,对jenkins的多个操作步骤进行封装的步骤,包括:

获取与执行任务有关的所有请求包;

将所有请求包的请求接口以及与请求接口对应的入口参数封装到一个方法里,并封装各接口间的跳转代码。

在一个实施例中,上述获取指定任务的测试指令的步骤之前,还包括:

判断是否达到预设时间;

若是,生成所述获取指定任务的测试指令的控制信号。

在一个实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤,还包括:

解析响应报文,并将解析结果按预设格式制成邮件正文;

获取发送邮件的指令,将包含所述邮件正文的邮件发送至指定邮箱。

在一个实施例中,上述按照封装好的方法和所述预设参数执行所述指定任务,得出执行结果的步骤之后,还包括:

对所有的已经执行的任务进行统计和结果分析,得出统计和分析的结果信息;

根据所述结果信息绘制图表;

将图表显示在前端。

在一个实施例中,上述指定任务为多个任务中的一个或多个,所述获取指定任务的测试指令的步骤之前,还包括:

按照预设规则对多个任务进行分类;

将同一个类型的任务在同一个标签页中进行显示和管理。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本申请的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1