一种任务自动化执行方法
技术领域
本发明实施例涉及任务执行技术,尤其涉及一种任务自动化执行方法。
背景技术
软件测试是软件开发过程中的一个重要组成部分,用于对软件产品进行验证和确认,使得能够尽早发现软件产品中存在的各种问题。因此软件测试的定义是在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估。
在现有的软件测试过程中,测试人员需要执行许多前期的准备工作,如编写测试脚本、部署应用服务、安装测试软件、安装服务器资源监控软件,以及执行测试过程和对测试及监控结果文件进行统计分析。若需要对某个应用进行迭代测试,则需要重复以上的若干步骤。测试完成后,测试人员需手动执行命令以生成可用的数据文件。具体地,测试人员使用ApacheJmeter软件及其插件编写测试脚本、进行测试和对测试结果进行统计分析,使用Nginx+ApacheTomcat服务器部署应用服务,使用Nmon进行服务器资源监控。
由此可见,对于现有的应用部署和软件测试任务,几乎每一个步骤都需要人工操作或干预,极大地耗费了人力,且人工操作时出现问题的概率也较大;同时执行整个任务过程中需要切换使用不同的工具;以及不能直接生成可以写入测试报告中的结果数据,需要手工去筛选,因此生成任务结果数据的过程繁琐。
发明内容
本发明实施例提供一种任务自动化执行方法,以解决现有技术中任务执行过程繁琐的问题。
本发明实施例提供了一种任务自动化执行方法,包括:
根据预设任务信息,配置项目对象的信息;
当所述项目对象的信息与所述预设任务信息匹配时,通过调用所述项目对象执行任务以生成任务结果。
本发明实施例提供的一种任务自动化执行方法,可以由任务自动化执行装置来执行,通过测试人员预设的任务信息配置项目对象的信息,当项目对象的信息与预设任务信息匹配时,通过调用项目对象执行任务以生成任务结果。该技术方案只需测试人员对所需任务进行相关的任务信息预设,就可通过自动化的执行方式执行测试人员所需任务并最终直接生成任务结果,不需要测试人员操作或切换不同模块执行任务,也不需要测试人员手动筛选生成任务结果,解决了现有技术中任务执行过程繁琐的问题,提高了测试人员的效率。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例一提供的一种任务自动化执行方法的流程图;
图2是本发明实施例二提供的一种任务自动化执行方法的流程图;
图3是本发明实施例三提供的一种任务自动化执行方法的流程图;
图4是本发明实施例四提供的一种任务自动化执行系统的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下将参照本发明实施例中的附图,通过实施方式清楚、完整地描述本发明的技术方案,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
图1为本发明实施例一提供的一种任务自动化执行方法的流程图,本实施例可适用于以自动化的部署和/或测试代替人工操作的情况,该方法可以由任务自动化执行装置来执行,并配置在计算机中应用。
本实施例一提供的一种任务自动化执行方法具体包括如下步骤:
S110、根据预设任务信息,配置项目对象的信息。
上述操作中,测试人员首先在任务自动化执行装置上预设任务相关信息,该预设任务信息至少包括调用的项目对象信息、任务相关参数和任务脚本文件等。测试人员预设任务信息完成后,任务自动化执行装置根据预设任务信息配置项目对象信息、和/或为项目对象配置脚本文件、和/或为项目对象配置任务参数等,以正确调用项目对象并执行测试人员所需任务。
可选地对于预设任务信息操作,任务自动化执行装置首先会对测试人员所需任务进行审批,即判断该所需任务是否可在任务自动化执行装置上执行。当该所需任务审批合格后,任务自动化执行装置检测其中是否已存在相同任务,若是则将已存在任务的原有信息修改为所需预设的任务信息,若否则将预设任务信息配置在新建任务中。由此避免任务自动化执行装置中重复出现或设置相同任务。
上述步骤根据预设任务信息配置项目对象的信息,避免人为配置项目对象的过程中出现错误或问题。
S120、当项目对象的信息与预设任务信息匹配时,通过调用项目对象执行任务以生成任务结果。
上述操作中,任务自动化执行装置根据预设任务信息配置项目对象的信息后,项目对象的信息与预设任务信息匹配,此时任务自动化执行装置对项目对象的配置完成并可执行任务。当任务自动化执行装置执行任务时,通过调用项目对象自动化执行任务以生成任务结果。任务自动化执行装置生成任务结果后还会直接对任务结果进行筛选并以图表或其他形式直观的展示给测试人员。
上述步骤中通过调用项目对象执行任务以生成任务结果并展示,不需要人工切换多个模块执行任务,也不需要测试人员手动筛选并生成任务结果,因此上述操作通过自动化执行方法提高了任务执行效率。
在上述技术方案的基础上,可选地所述任务包括部署应用任务和/或测试性能任务。若任务为部署应用任务,则在项目对象的信息与预设任务信息匹配时,任务自动化执行装置将应用部署在项目对象中,任务执行完成。若任务为测试性能任务时,则在项目对象的信息与预设任务信息匹配时,任务自动化执行装置通过调用项目对象执行测试过程并展示获取的任务结果,任务执行完成。若任务为部署应用+测试应用任务时,任务自动化执行装置将应用部署在项目对象后,再调用其他项目对象执行测试过程并展示获取的任务结果。需要说明的是不同任务对应的项目对象不同。
本实施例提供的一种任务自动化执行方法,可以由任务自动化执行装置来执行,通过测试人员预设的任务信息配置项目对象的信息,当项目对象的信息与预设任务信息匹配时,通过调用项目对象执行任务以生成任务结果。该技术方案只需测试人员对所需任务进行相关的任务信息预设,就可通过自动化的执行方式执行测试人员所需任务并最终直接生成任务结果,不需要测试人员操作或切换不同模块执行任务,也不需要测试人员手动筛选生成任务结果,解决了现有技术中任务执行过程繁琐的问题,提高了测试人员的效率。
实施例二
图2为本发明实施例二提供的一种任务自动化执行方法的流程图,本实施例可适用于以自动化的部署代替人工操作的情况,该方法可以由任务自动化执行装置来执行,并配置在计算机中应用。本实施例的技术方案用于执行自动化部署应用任务,具体地任务自动化执行装置执行将应用部署在应用服务器的任务,因此本实施例中的项目对象为应用服务器。
本实施例二提供的一种任务自动化执行方法具体包括如下步骤:
S210、读取应用服务器的应用和实例个数,并判断应用服务器中的应用和实例个数是否与预设任务信息中的应用和实例个数匹配。
任务自动化执行装置执行测试人员所需的部署应用任务时,测试人员需在任务自动化执行装置中预设的任务信息至少包括配置应用服务器信息、ApacheTomcat实例个数、存放应用程序war包的版本控制系统svn路径、替换war包内容的应用配置文件等。
任务自动化执行装置根据预设的应用服务器信息查找对应的应用服务器并读取其中的应用与实例个数,再判断其与预设任务信息中的内容是否匹配。首先判断应用服务器中是否存在所需的应用,若不存在则执行S220,若存在则继续判断应用服务器中的实例个数与预设实例个数是否相同;若实例个数不同则执行S220,若实例个数相同则执行S230。
上述操作中任务自动化执行装置根据预设任务信息自动化执行判断过程,不需要人工执行每一个过程。
S220、若不匹配则根据预设任务信息中的应用和实例个数,在应用服务器中创建对应的应用和实例个数。
上述操作中,任务自动化执行装置中预先配置了可创建ApacheTomcat实例的实例脚本,因此当应用服务器中不存在应用和实例个数,任务自动化执行装置可根据预设任务信息中的应用和实例个数,调用实例脚本创建与预设任务信息中实例个数相同的多个ApacheTomcat实例。
由于任务自动化执行装置通过Http和反向代理(Nginx)服务器调用应用服务器,因此当应用服务器中创建ApacheTomcat实例后任务自动化执行装置控制Nginx服务器重启。
上述操作中,任务自动化执行装置在实例个数等信息不匹配的情况下自动创建实例,实现了自动化调用不同服务器的操作,不需要测试人员手动切换使用不同的工具。
S230、当应用服务器中的实例个数与预设任务信息中的实例个数匹配时,则通过预设任务信息中的版本控制系统路径抓取应用程序包并解压。
上述操作中,测试人员预先设置了版本控制系统路径,因此任务自动化执行装置根据该路径信息直接从相应工具中抓取应用程序包。通过版本控制系统svn路径抓取的war包为压缩包,控制对该压缩war包进行解压后执行相应操作。
S240、设置预设任务信息中的应用配置文件替换解压后的应用程序包中的配置文件,以形成新应用程序包并部署。
上述操作中,预设任务信息中设置的应用配置文件为测试人员所需的应部署应用,因此解压抓取的war包后应将预设的应用配置文件替换解压后的war包中的原有配置文件,由此形成新的war包。重新打包该新war包后将该新war包部署到应用服务器中并重启应用服务器,由此任务自动化执行装置完成部署应用任务。
任务自动化执行装置执行并记录了部署应用任务的过程。若无法重启应用服务器,则测试人员可调用查看应用启动日志,若启动失败原因则可直接解决问题并重启应用服务器,相应的修改并保存需要替换的配置文件以启动应用服务器,若是其他错误原因导致无法重启应用服务器则测试人员可找出问题并解决以启动应用服务器。当部署应用完成后,测试人员可对任务自动化执行装置中的部署应用日志进行性能分析和性能测试报告。
需要说明的是,若预设任务信息中未设置有替换war包内容的应用配置文件,则说明从版本控制系统路径抓取的应用程序包即为可部署的应用程序包,将该抓取的应用程序包直接部署在应用服务器中并重启应用服务器,由此任务自动化执行装置完成部署应用任务。本领域技术人员应知重新打包后的war包会部署到应用服务器的/export/App/${appName}目录。
本实施例提供的本实施例提供的一种任务自动化执行方法,用于部署应用,当判定应用服务器中的应用和实例个数与预设任务信息中的应用和实例个数不匹配,则根据预设任务信息在应用服务器中创建对应的应用和实例个数,若匹配则抓取应用程序包并解析以形成新应用程序包并部署在应用服务器。该技术方案只需测试人员对所需任务进行相关的任务信息预设,就可通过自动化的执行方式执行测试人员所需部署应用任务,整个任务执行过程中不需要测试人员切换使用不同工具,解决了现有技术中任务执行过程繁琐的问题,提高了测试人员的效率。
实施例三
图3为本发明实施例三提供的一种任务自动化执行方法的流程图,本实施例可适用于以自动化的测试代替人工操作的情况,该方法可以由任务自动化执行装置来执行,并配置在计算机中应用。本实施例的技术方案用于独立自动化执行测试任务,也可以用于自动化部署应用并对应用测试的任务。需要说明的是,当任务是测试性能任务时,项目对象至少包括测试主机、压力机和应用服务器。
本实施例三提供的一种任务自动化执行方法具体包括如下步骤:
S310、获取预设任务信息中的测试脚本文件并保存。
上述操作中,执行测试性能任务时,测试人员需要在任务自动化执行装置中预设的任务信息至少包括:执行测试的ApacheJmeter测试主机、是否使用默认测试工具、测试持续时长、Nmon监控工具的监控时间间隔、测试结果的筛选时间段、压力机列表、需要进行Nmon监控的监控工具、测试脚本文件等信息。需要说明的是测试人员若配置不使用默认测试工具,则需要向任务自动化执行装置上传测试工具。
已知预设任务信息中包含测试脚本文件,因此任务自动化执行装置获取测试人员上传的测试脚本文件并保存该文件。
S320、判断测试主机和压力机中的测试工具是否与预设任务信息中的测试工具一致,若否,则将获取的预设任务信息中的测试工具上传至测试主机和压力机。
上述操作中,已知预设任务信息中上传有测试工具,因此任务自动化执行装置获取该测试工具并判断测试主机和压力机中的测试工具与预设任务信息中的测试工具是否完全一致,若完全一致则任务自动化执行装置不需要向测试主机和压力机上传测试工具。若不一致,如版本不同等,则任务自动化执行装置将获取的预设任务信息中的测试工具上传至测试主机和压力机。
S330、判断测试主机、压力机、应用服务器中的监控工具是否与预设任务信息中的监控工具一致,若否,则将获取的预设任务信息中的监控工具上传至测试主机、压力机、应用服务器。
上述操作中,已知预设任务信息中上传有Nmon监控工具,因此任务自动化执行装置获取该监控工具并以此评判测试主机、压力机、应用服务器中的监控工具与预设任务信息中的监控工具是否完全一致,若完全一致则任务自动化执行装置不需要向测试主机、压力机、应用服务器等上传监控工具。若不一致,则任务自动化执行装置将获取的预设任务信息中的监控工具上传至测试主机、压力机和应用服务器等。
若测试主机和压力机中的测试工具与预设任务信息中的测试工具一致,以及测试主机、压力机、应用服务器中的监控工具与预设任务信息中的监控工具一致,则任务自动化执行装置根据预设任务信息配置项目对象信息的过程完成。
S340、当项目对象的信息与预设任务信息匹配时,调用测试主机执行测试性能任务并生成测试结果,或者,调用测试主机和压力机执行测试性能任务并生成测试结果,以及调用应用服务器生成监控结果。
上述操作中,任务自动化执行装置调用测试主机和压力机执行测试性能任务,并通过监控工具监控测试主机和压力机执行测试性能任务的过程并获取测试结果,以及任务自动化执行装置还调用应用服务器并通过监控工具监控生成监控结果。
S350、展示测试性能任务的结果文件。
上述操作中,任务自动化执行装置根据预设任务信息中配置的解析测试结果的筛选时间段,对测试结果和监控结果等文件进行筛选,并以图表的形式展示给测试人员。比如可以在页面中选定不同的时间段、对测试结果和监控结果文件重新进行筛选,并且可以直接导出测试任务的最终统计结果,便于写入测试报告。若测试人员对任务自动化执行装置的统计结果不满意,还可以直接下载测试结果和/或监控结果的源文件,包括Nmon监控结果文件、TPS文件和平均响应时间文件等。
具体地,可选展示测试性能任务的结果文件包括:通过预设任务信息中配置的测试结果筛选时间段,对测试性能任务结果文件中的测试结果进行筛选和输出展示;以及,通过预设任务信息中配置的监控时间间隔,对测试性能任务结果文件中的监控结果进行筛选和输出展示。
本实施例的工作过程为:测试人员预设任务信息,任务自动化执行装置读取预设任务信息并以此分配压力机;判断测试脚本中是否存在将*.jtl转换为*.csv文件的配置信息;若不存在则在测试脚本中添加将*.jtl转换为*.csv文件的配置信息;若存在则调用测试主机、压力机、应用服务器的测试工具和监控工具进行测试和Nmon监控;启动压力机;测试主机、压力机执行测试脚本文件并生成*.csv测试结果文件;停止监控工具后,收集测试主机、压力机、应用服务器的监控结果文件;根据预设任务信息中的筛选参数生成测试结果文件和监控结果文件并展示给测试人员。测试人员可对结果文件进行查看和下载,并对结果文件进行性能分析和性能测试报告。
本实施例提供的一种任务自动化执行方法,该技术方案极大地提高了测试人员对应用的测试效率,通过在任务自动化执行装置中直接导出最终的任务结果使得省去了测试人员手工统计的过程,以及任务自动化执行装置还可以同时提供统计结果和下载测试结果源文件的功能,自动化的任务执行方法也便于执行项目任务的迭代测试。
实施例四
本发明实施例四提供一种任务自动化执行装置,本实施例可适用于以自动化的部署+测试代替人工操作的情况,该装置可用于执行上述任意实施例所述执行方法。本领域技术人员会理解该装置不限于执行上述所述的特定实施例。
本实施例四提供的一种任务自动化执行装置包括:配置项目对象模块和调用项目对象模块。
其中,配置项目对象模块用于根据预设任务信息,配置项目对象的信息;调用项目对象模块用于当所述项目对象的信息与所述预设任务信息匹配时,通过调用所述项目对象执行任务以生成任务结果。
在上述技术方案的基础上,可选地所述任务包括部署应用任务和/或测试性能任务。
可选地当所述任务是部署应用任务时,所述项目对象为应用服务器。
可选配置项目对象模块包括:判断实例单元和创建实例单元。
其中,判断实例单元用于读取所述应用服务器的应用和实例个数,并判断所述应用服务器中的应用和实例个数是否与所述预设任务信息中的应用和实例个数匹配;创建实例单元用于当应用服务器中的应用和实例个数与预设任务信息中的应用和实例个数不匹配时,根据所述预设任务信息中的应用和实例个数,在所述应用服务器中创建对应的应用和实例个数。
可选调用项目对象模块包括:抓包单元和替换文件单元。
其中,抓包单元用于当所述应用服务器中的实例个数与所述预设任务信息中的实例个数匹配时,则通过所述预设任务信息中的版本控制系统路径抓取应用程序包并解压;替换文件单元用于设置所述预设任务信息中的应用配置文件替换该解压后的应用程序包中的配置文件,以形成新应用程序包并部署。
可选地当所述任务是测试性能任务时,所述项目对象至少包括测试主机、压力机和应用服务器。
可选配置项目对象模块包括:保存脚本单元、获取测试工具单元和获取监控工具单元。
其中,保存脚本单元用于获取所述预设任务信息中的测试脚本文件并保存;获取测试工具单元用于判断所述测试主机和所述压力机中的测试工具是否与所述预设任务信息中的测试工具一致,若否,则将获取的所述预设任务信息中的测试工具上传至所述测试主机和所述压力机;获取监控工具单元用于判断所述测试主机、所述压力机、所述应用服务器中的监控工具是否与所述预设任务信息中的监控工具一致,若否,则将获取的所述预设任务信息中的监控工具上传至所述测试主机、所述压力机、所述应用服务器。
可选调用项目对象模块包括:调用对象单元和展示结果单元。
其中,调用对象单元用于当所述项目对象的信息与所述预设任务信息匹配时,调用所述测试主机执行测试性能任务并生成测试结果,或者,调用所述测试主机和所述压力机执行测试性能任务并生成测试结果,以及调用所述应用服务器生成监控结果;展示结果单元用于展示测试性能任务的结果文件。
可选地展示结果单元的具体执行过程为:通过所述预设任务信息中配置的测试结果筛选时间段,对该测试性能任务结果文件中的测试结果进行筛选和输出展示;以及,通过所述预设任务信息中配置的监控时间间隔,对该测试性能任务结果文件中的监控结果进行筛选和输出展示。
本实施例四还提供一种任务自动化执行系统,该系统内配置有任务自动化执行装置,并可用于执行上述任意实施例所述执行方法。图4为本发明实施例四提供的一种任务自动化执行系统的示意图。
如图所示,该系统包括:用户层、应用层、数据层,其中,测试人员通过用户层预设任务信息,数据层存储测试人员预设的任务信息,应用层从数据层获取任务信息并调用任务自动化执行装置执行任务。测试人员预设的任务信息中的参数信息保存在数据库中,测试人员预设的任务信息中的脚本文件、工具等保存在文件系统中,应用层分别从数据库和文件系统中获取相应的参数信息、脚本文件、工具等。
以系统中各个模块的职能进行描述,则用户层的职能为:测试人员通过用户层新建项目、配置自动部署任务、配置自动测试任务。
应用层根据其不同职能可包括控制层、业务逻辑层和基础服务层。其中,控制层用于对项目对象配置并审核,以及配置已存在的子任务,还具有配置部署/任务,查看任务历史,配置测试任务,展示任务结果并提供下载等功能。业务逻辑层执行svn抓包,保存配置文件,替换配置文件,保存应用服务器,重启应用服务器的操作,还具有分配压力机、上传测试脚本、处理测试和监控结果文件的功能。基础服务层执行抓取war包并解压、替换配置文件、部署应用的操作,还用于设置任务结果文件存放路径、生成测试和监控结果文件并拷贝到系统、处理*.csv和*.nmon文件。
数据层包括数据访问层和数据存储层。其中,数据访问层作为文件和数据可访问接口,用于根据应用层的指令从文件系统中获取测试脚本文件、测试工具或监控工具等,或者根据应用层的指令从数据可获取测试人员预设的参数信息。
综上所述,该系统中的用户层提供测试人员配置自动执行流程的功能,应用层和数据层按照配置的执行流程自动的执行部署应用任务和测试性能任务。
本发明实施例四提供的一种任务自动化执行系统,以自动化的部署+测试代替人工操作,是基于JavaWeb的B/S结构项目,测试人员只需在系统中配置任务的参数,由系统来调用Linux命令,完成应用部署和测试任务的过程。该系统极大地提高了测试人员对应用的测试效率,通过在系统中直接导出最终的测试结果,省去了测试人员手工统计的过程、避免人为原因导致的误差,系统同时提供了统计结果和下载测试结果源文件的功能,并能够执行项目的迭代测试。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。