脚本测试方法及装置制造方法及图纸

技术编号:15437160 阅读:245 留言:0更新日期:2017-05-25 19:20
本发明专利技术公开了一种脚本测试方法及装置。其中,该方法包括:接收脚本测试请求,请求至少包括待测脚本代码;根据接收到的待测脚本代码,对本地缓存的相应的待测脚本代码进行同步更新,待测脚本代码包含待测脚本和测试用例;在测试执行端执行测试用例以对待测脚本进行测试。本发明专利技术解决了相关技术中人工回归测试数据工作量大的技术问题。

Script testing method and device

The invention discloses a script testing method and a device thereof. Among them, the method includes: receiving a test script request request includes at least the script code to be tested; according to the test script code received, the local cache of the corresponding test script code update, test script code contains the script and test cases to be tested; in the end the test execution execution of test cases to be measured test script. The invention solves the technical problem of large workload of artificial regression test data in related technology.

【技术实现步骤摘要】
脚本测试方法及装置
本专利技术涉及计算机领域,具体而言,涉及一种脚本测试方法及装置。
技术介绍
Puppet是一种Linux、Unix平台的集中配置管理系统,使用ruby语言,可管理配置文件、用户、cron任务、软件包、系统服务等。puppet把这些系统实体称之为资源,puppet的设计目标是简化对这些资源的管理以及妥善处理资源间的依赖关系。Puppet采用C/S星状的结构,所有的客户端与一个或几个服务器交互。每个客户端周期的(默认半个小时)向服务器发送请求,获得其最新的配置信息,保证和该配置信息同步。每个puppet客户端每半小时(可以设置)连接一次服务器端,下载最新的配置文件,并且严格按照配置文件来配置客户端。Puppet的运行依赖于我们要编写一系列的脚本,就同普通语言的脚本一样,系统会去运行Puppet的脚本去部署环境。由于在实际应用中,我们大多采用C/S架构,一份脚本会影响到所有客户端环境的部署,因此我们应当尽可能得去保证脚本的正确性。传统的脚本测试对手工依赖的程度非常高,手工回归所有的测试场景会消耗大量的时间。并且Puppet是直接配置系统环境的,当我们需要对一份脚本进行不同参数环境下的测试时,前面的测试必将对后面的测试造成影响。因此如果能够搭建一套自动化测试框架,自动回归所有的测试场景并在每次测试时保证环境的干净尤为重要。目前Puppet的脚本测试主要有两种方式:一种是人工在机器上执行测试,我们会将最新的代码从版本仓库中更新到测试机,运行本地的Puppet脚本。假如本次的Puppet脚本需要配置Rsync(主要功能包括安装Rsync软件包,创建Rsync的配置文件,启动Rsync服务等),在运行完该Puppet脚本之后,我们会手动去查看Rsync安装的版本,Rsync服务是否正常启动,端口是否开放等这一些信息。另外一种是利用Rspec-puppet来检测。Rspec-puppet是一种基于Rspec的测试工具,可以在Puppet运行之前进行相关资源的检测,通常的做法是:(1)在每个模块中加入Rspec-puppet的测试目录,然后在测试目录中加入测试用例;(2)模块更新后,执行模块中对应的测试用例进行回归测试。对于第一种方案,主要缺点有如下几点:(1)人工回归工作量大,且都是繁琐的重复劳动;(2)完成一次测试之后,需要对环境做必要的清理,因为可能对下次重复执行用例造成影响;(3)假如涉及到需要测试不同的操作系统版本时,会需要搭建很多的测试环境,浪费资源。对于第二种方案,可以很方便的进行回归测试,无需进行太多的环境部署。然而,该方案只是对Puppet的代码逻辑进行了验证,无需将Puppet的模块放置到机器上进行运行。正是由于此种方案并未真实运行,因此不能反映Puppet模块在机器上的真实执行效果。针对上述问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种脚本测试方法及装置,以至少解决相关技术中人工回归测试数据工作量大的技术问题。根据本专利技术实施例的一个方面,提供了一种脚本测试方法,包括:接收脚本测试请求,上述请求至少包括待测脚本代码;根据接收到的上述待测脚本代码,对本地缓存的相应的待测脚本代码进行同步更新,上述待测脚本代码包含待测脚本和测试用例;在测试执行端执行上述测试用例以对上述待测脚本进行测试。进一步地,在测试执行端执行上述测试用例以对上述待测脚本进行测试之前,上述方法还包括:从上述待测脚本代码中至少提取出以下内容之一:待测脚本所属分支的名称、待测脚本名称、以及脚本提交者标识;创建以上述待测脚本所属分支的名称命名的第一文件,上述第一文件至少包括上述待测脚本名称;将上述第一文件推送至消息队列中,在第一时长后从上述消息队列中提取上述第一文件,上述第一时长为前一个待测脚本完成测试的时长。进一步地,在第一时长后从上述消息队列中提取上述第一文件之前,上述方法还包括:循环步骤:依次将上述消息队列接收到的推送的文件作为上述第二文件,并执行判断步骤,其中,上述判断步骤包括:当消息队列接收到推送的上述第二文件时,判断上述第二文件的文件名是否与上述第一文件的文件名相同,如果相同,则将上述第二文件中的上述待测脚本名称合并于上述第一文件中。进一步地,在第一时长后从上述消息队列中提取上述第一文件之后,上述方法还包括:从上述第一文件中读取上述待测脚本名称;在本地缓存的待测脚本代码中查找与上述待测脚本名称相对应的待测脚本和测试用例;将上述待测脚本和测试用例发送至上述测试执行端。进一步地,在测试执行端执行上述测试用例以对上述待测脚本进行测试包括:对上述测试用例中的部分或全部的测试用例进行扫描,得到测试用例列表;根据上述测试用例列表,调度用于创建和部署虚拟化开发环境的预设工具或调度用于具体执行测试的一个或多个子测试机;利用上述预设工具或上述子测试机执行上述测试用例列表中所列的测试用例以对上述待测脚本进行测试。进一步地,上述测试用例包括:第一类测试用例和第二类测试用例,其中,上述第一类测试用例中的测试用例每次运行时都需要重新构建测试环境;上述第二类测试用例中的所有测试用例共用一个相同的测试环境。进一步地,在测试执行端执行上述测试用例以对上述待测脚本进行测试之前,上述方法还包括:将需要执行的测试用例划分为上述第一类测试用例和上述第二类测试用例;将划分出的上述第一类测试用例和上述第二类测试用例分别存储到第一文件夹和第二文件夹中;分别依次执行上述第一文件夹和上述第二文件夹中的测试用例,以对上述待测脚本进行测试,其中,在执行上述第一文件夹中的测试用例时,每次执行测试时,都会构建一个新的测试环境,当次测试完毕后,销毁或重置该测试环境,在执行上述第二文件中的测试用例时,在构建一个测试环境后,依次执行上述第二文件中的所有的测试用例,当上述第二文件夹中的全部测试用例执行完毕后,销毁或重置该测试环境。进一步地,在测试执行端执行上述测试用例以对上述待测脚本进行测试之后,上述方法还包括:获取上述脚本提交者标识;根据获取的上述脚本提交者标识,将对上述待测脚本进行测试后生成的测试报告反馈给相应的脚本提交者。根据本专利技术实施例的另一方面,还提供了一种脚本测试装置,包括:接收单元,用于接收脚本测试请求,上述请求至少包括待测脚本代码;更新单元,用于根据接收到的上述待测脚本代码,对本地缓存的相应的待测脚本代码进行同步更新,上述待测脚本代码包含待测脚本和测试用例;测试单元,用于使得在测试执行端执行上述测试用例以对上述待测脚本进行测试。进一步地,上述装置还包括:提取单元,用于在测试执行端执行上述测试用例以对上述待测脚本进行测试之前,从上述待测脚本代码中至少提取出以下内容之一:待测脚本所属分支的名称、待测脚本名称、以及脚本提交者标识;创建单元,用于创建以上述待测脚本所属分支的名称命名的第一文件,上述第一文件至少包括上述待测脚本名称;推送单元,用于将上述第一文件推送至消息队列中,在第一时长后从上述消息队列中提取上述第一文件,上述第一时长为前一个待测脚本完成测试的时长。进一步地,上述装置还包括:循环单元,用于在第一时长后从上述消息队列中提取上述第一文件之前,执行循环步骤,上述循环步骤包括:依次将上述消息队列接收到的推送的文件作为上述第二文件,本文档来自技高网
...
脚本测试方法及装置

【技术保护点】
一种脚本测试方法,其特征在于,包括:接收脚本测试请求,所述请求至少包括待测脚本代码;根据接收到的所述待测脚本代码,对本地缓存的相应的待测脚本代码进行同步更新,所述待测脚本代码包含待测脚本和测试用例;在测试执行端执行所述测试用例以对所述待测脚本进行测试。

【技术特征摘要】
1.一种脚本测试方法,其特征在于,包括:接收脚本测试请求,所述请求至少包括待测脚本代码;根据接收到的所述待测脚本代码,对本地缓存的相应的待测脚本代码进行同步更新,所述待测脚本代码包含待测脚本和测试用例;在测试执行端执行所述测试用例以对所述待测脚本进行测试。2.根据权利要求1所述的方法,其特征在于,在测试执行端执行所述测试用例以对所述待测脚本进行测试之前,所述方法还包括:从所述待测脚本代码中至少提取出以下内容之一:待测脚本所属分支的名称、待测脚本名称、以及脚本提交者标识;创建以所述待测脚本所属分支的名称命名的第一文件,所述第一文件至少包括所述待测脚本名称;将所述第一文件推送至消息队列中,在第一时长后从所述消息队列中提取所述第一文件,所述第一时长为前一个待测脚本完成测试的时长。3.根据权利要求2所述的方法,其特征在于,在第一时长后从所述消息队列中提取所述第一文件之前,所述方法还包括:循环步骤:依次将所述消息队列接收到的推送的文件作为第二文件,并执行判断步骤,其中,所述判断步骤包括:当消息队列接收到推送的所述第二文件时,判断所述第二文件的文件名是否与所述第一文件的文件名相同,如果相同,则将所述第二文件中的所述待测脚本名称合并于所述第一文件中。4.根据权利要求3所述的方法,其特征在于,在第一时长后从所述消息队列中提取所述第一文件之后,所述方法还包括:从所述第一文件中读取所述待测脚本名称;在本地缓存的待测脚本代码中查找与所述待测脚本名称相对应的待测脚本和测试用例;将所述待测脚本和测试用例发送至所述测试执行端。5.根据权利要求1至4中任一项所述的方法,其特征在于,在测试执行端执行所述测试用例以对所述待测脚本进行测试包括:对所述测试用例中的部分或全部的测试用例进行扫描,得到测试用例列表;根据所述测试用例列表,调度用于创建和部署虚拟化开发环境的预设工具或调度用于具体执行测试的一个或多个子测试机;利用所述预设工具或所述子测试机执行所述测试用例列表中所列的测试用例以对所述待测脚本进行测试。6.根据权利要求1所述的方法,其特征在于,所述测试用例包括:第一类测试用例和第二类测试用例,其中,所述第一类测试用例中的测试用例每次运行时都需要重新构建测试环境;所述第二类测试用例中的所有测试用例共用一个相同的测试环境。7.根据权利要求6所述的方法,其特征在于,在测试执行端执行所述测试用例以对所述待测脚本进行测试之前,所述方法还包括:将需要执行的测试用例划分为所述第一类测试用例和所述第二类测试用例;将划分出的所述第一类测试用例和所述第二类测试用例分别存储到第一文件夹和第二文件夹中;分别依次执行所述第一文件夹和所述第二文件夹中的测试用例,以对所述待测脚本进行测试,其中,在执行所述第一文件夹中的测试用例时,每次执行测试时,都会构建一个新的测试环境,当次测试完毕后,销毁或重置该测试环境,在执行所述第二文件中的测试用例时,在构建一个测试环境后,依次执行所述第二文件中的所有的测试用例,当所述第二文件夹中的全部测试用例执行完毕后,销毁或重置该测试环境。8.根据权利要求2所述的方法,其特征在于,在测试执行端执行所述测试用例以对所述待测脚本进行测试之后,所述方法还包括:获取所述脚本提交者标识;根据获取的所述脚本提交者标识,将对所述待测脚本进行测试后生成的测试报告反馈给相应的脚本提交者。9.一种脚本测试装置,其特征在于,包括:接收单元,用于接收脚本测试请求,所述请求至少包括待测脚本代码;更新单元,用于根据接收到的所...

【专利技术属性】
技术研发人员:龚继华毕文娟何丹
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1