一种自动升级及自动化测试方法与流程

文档序号:16262571发布日期:2018-12-14 21:41阅读:354来源:国知局
一种自动升级及自动化测试方法与流程

本发明涉及服务器测试领域,尤其涉及一种自动升级及自动化测试方法。

背景技术

日常测试中会遇到对web应用进行ui自动化的测试场景,一般常用的工具是使用selenium,并结合一些测试框架组合测试用例进行ui的自动化测试。通过selenium的高级功能seleniumgrid进行分布式的测试。通过seleniumhub下发请求到seleniumnode执行测试脚本,达到测试机与测试脚本分离的目的。

随着selenium版本的更新,大量用户的老版本产品需要升级到新版,在升级到新版本后,必要要保证原有功能的正确性,也要保证新增的特性点不会对原有的功能造成影响,由于此过程需要快速的反馈结果,手工测试效率较慢。如果采用自动化的方式完成升级则能够提高升级效率。自动升级后需要对升级后的版本进行检测,来测试自动升级后的版本是否满足需要。这样如何能够实现selenium版本自动升级,而且还能够实现对自动升级后的版本进行测试判断自动升级后的版本是否满足需要是当前丞待解决的技术问题。



技术实现要素:

为了克服上述现有技术中的不足,本发明提供一种自动升级及自动化测试方法,方法包括:

步骤一,在jenkins模块上创建自动升级任务信息;

步骤二,根据预设条件,在jenkins模块上启动自动升级任务信息,同时基于容器镜像的存放位置启动容器镜像;

步骤三,根据自动升级任务信息,从数据库中获取升级任务所需要的升级版本,进行升级;

步骤四,升级完成后,从数据库中获取基于升级后版本所需要的测试用例;

步骤五,运行测试用例,对升级后的版本进行测试,jenkins模块监测版本升级过程及测试过程,并生成升级过程日志及测试过程日志。

优选地,步骤一之前还包括:

在宿主机上安装docker模块,jenkins模块及os系统,基于docker模块,jenkins模块及os系统配置容器镜像,记录容器镜像的存放位置。

优选地,步骤二中根据预设条件包括:

根据测试人员输入的启动自动升级控制指令,在jenkins模块上启动自动升级任务信息;

或,预设自动升级的启动时间,当达到预设自动升级的启动时间时,在jenkins模块上启动自动升级任务信息;

或,监测数据库中升级版本信息,当数据库中存有升级版本信息时,在jenkins模块上启动自动升级任务信息。

优选地,步骤二中的启动容器镜像还包括:

通过宿主机的端口访问selenium/hub服务,启动selenium/hub容器。

通过待测主机的端口访问selenium/hub服务;

启动selenium/node容器,通过selenium/hub服务所在的服务器检查容器的启动情况。

优选地,步骤一还包括:

根据待docker模块的版本,jenkins模块的版本及os系统的版本,在数据库中获取docker模块,jenkins模块及os系统。

优选地,在步骤五中的运行测试用例还包括:

运行runner.py文件,runner.py文件将测试用例中的多个测试进程加入到当前运行线程中,执行多线程测试;

在seleniumnode节点浏览器上获取测试过程,查询测试用例的测试过程。

优选地,步骤五之后还包括:

测试人员访问系统的report目录下,打开index.html,显示本次测试执行情况;

测试系统通过配置测试人员的邮箱地址将生成的升级过程日志及测试过程日志以邮件的形式发送。

优选地,将测试后的测试过程日志和预设的测试过程日志进行比对,判断测试后测试过程日志中是否存在错误信息。

优选地,将测试后的测试过程日志和预设的测试过程日志进行比对,判断测试后的测试过程日志的测试参数值对应与预设测试过程日志的测试参数值是否一致。

从以上技术方案可以看出,本发明具有以下优点:

本发明通过在webui自动化测试方法中引入docker容器技术,通过docker容器技术定制测试环境容器镜像,通过容器镜像来启动多个测试环境,从而减少执行机配置环境麻烦的问题,并减少物理机器的需求数。

本发明通过docker容器,定制运行环境所需镜像,开发测试使用同一镜像,保证测试基础的准确性,缩短测试时间,并在产品的升级测试过程中,省去大量的人工操作和重复性的操作,提高产品升级测试的可靠性。整个测试过程的测试效率得到大大的提高。

在测试用例初始化时,通过指定浏览器名称和远程执行机node的远程url,从而达到预期在那个node上执行用例的目标。

测试人员访问系统的report目录下,打开index.html,显示本次测试执行情况;测试系统通过配置测试人员的邮箱地址将测试日志以邮件的形式发送,便于测试人员了解测试过程和结果。

本发明通过产品升级测试的自动化,一方面节省了大量人工操作和重复性操作,提高产品的升级测试可靠性,测试日志帮助测试和开发人员迅速定位到升级过程中发生的问题,全程的自动化大大的提高了测试效率。另一方面,通过docker容器,定制镜像,保证开发和测试的基础环境一致性,一次配置定制,达到重复配置的效果,而且此过程也会减少手工配置出错的概率。

附图说明

为了更清楚地说明本发明的技术方案,下面将对描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为自动升级及自动化测试方法流程图;

图2为自动升级及自动化测试方法实施例流程图。

具体实施方式

本发明提供一种自动升级及自动化测试方法,如图1所示,方法包括:

s1,在jenkins模块上创建自动升级任务信息;

s2,根据预设条件,在jenkins模块上启动自动升级任务信息,同时基于容器镜像的存放位置启动容器镜像;

s3,根据自动升级任务信息,从数据库中获取升级任务所需要的升级版本,进行升级;

s4,升级完成后,从数据库中获取基于升级后版本所需要的测试用例;在容器镜像上预设所要执行的测试用例;

s5,运行测试用例,对升级后的版本进行测试,jenkins模块监测版本升级过程及测试过程,并生成升级过程日志及测试过程日志。

本发明提出基于docker容器技术+持续集成工具jenkins以及其他辅助工具来完成自动升级和自动化测试的工作。

docker是被广泛应用的一种开源容器引擎,它可以支持程序的快速部署和移植,并具有很好的环境隔离性,我们可以把所需要测试产品的基础os以及依赖的工具通过dockerfile文件进行定制,最后做成镜像。

jenkins是一种持续构建工具,我们可以将升级过程和自动化测试构建成多个job,并约定好先后顺序,通过计划任务触发任务执行。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将运用具体的实施例及附图,对本发明保护的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本专利中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本专利保护的范围。

本发明提供一种实施例,如图2所示,

s11,在宿主机上安装docker模块,jenkins模块及os系统,基于docker模块,jenkins模块及os系统配置容器镜像,记录容器镜像的存放位置。

根据待docker模块的版本,jenkins模块的版本及os系统的版本,在数据库中获取docker模块,jenkins模块及os系统。

s12,在jenkins模块上创建自动升级任务信息;

s13,根据预设条件,在jenkins模块上启动自动升级任务信息,同时基于容器镜像的存放位置启动容器镜像;

s14,根据自动升级任务信息,从数据库中获取升级任务所需要的升级版本,进行升级;

s15,升级完成后,从数据库中获取基于升级后版本所需要的测试用例;

s16,运行测试用例,对升级后的版本进行测试,jenkins模块监测版本升级过程及测试过程,并生成升级过程日志及测试过程日志。

这样,基于容器技术,docker容器技术可以解决掉机器需求和环境搭建的问题。因为docker容器镜像并不包含linux内核且docker容器仓库中存在很多现成的容器镜像,下载下来就能使用,最重要的是docker容器镜像可以运行多份,每一份都是物理隔离的。基于云储存下载容器仓库中预设的容器镜像。

本发明提供另一种实施例,步骤二中根据预设条件包括:

根据测试人员输入的启动自动升级控制指令,在jenkins模块上启动自动升级任务信息;

或,预设自动升级的启动时间,当达到预设自动升级的启动时间时,在jenkins模块上启动自动升级任务信息;

或,监测数据库中升级版本信息,当数据库中存有升级版本信息时,在jenkins模块上启动自动升级任务信息。

当然不局限于上述预设条件,还可以根据测试升级需要设置其他的条件,具体条件这里不做限定。

本发明提供另一种实施例,步骤二中的启动容器镜像还包括:

通过宿主机的端口访问selenium/hub服务,启动selenium/hub容器。

通过待测主机的端口访问selenium/hub服务;

启动selenium/node容器,通过selenium/hub服务所在的服务器检查容器的启动情况。

在宿主机上安装docker模块,基于docker模块配置容器镜像之后,通过宿主机的端口访问selenium/hub服务;启动selenium/hub容器。

启动容器镜像,可以先基于云储存下载或者定制容器镜像,为了实现浏览器多版本的测试,可以从容器仓库中下载镜像。如dockerpullselenium/hub。

完成启动selenium/hub容器和selenium/node容器之后,在容器镜像上预设所要执行的测试用例。

本实施例中,步骤一还包括:

根据待docker模块的版本,jenkins模块的版本及os系统的版本,在数据库中获取docker模块,jenkins模块及os系统。

在宿主机上安装docker模块,基于docker模块配置容器镜像之后,通过宿主机的端口访问selenium/hub服务;启动selenium/hub容器。

这里的在宿主机上安装docker模块,jenkins模块及os系统可以采用测试人员手动安装,也可以采用系统基于下载获取完成后,自动安装。

本实施例中,在步骤五中的运行测试用例还包括:

运行runner.py文件,runner.py文件将测试用例中的多个测试进程加入到当前运行线程中,执行多线程测试;在seleniumnode节点浏览器上获取测试过程,查询测试用例的测试过程。

这里可以运行runner.py文件,runner.py文件将多个测试用例加入到多线程进行执行测试;在seleniumnode节点浏览器上获取测试过程,查询测试用例的测试过程。

本发明运行了runner.py文件,此文件会将多个测试用例加入到多线程进行执行,可以看到多个seleniumnode节点,并且进行查找测试进程,当然所有的执行步骤都是按照测试用例编写的测试脚本一步一步来的执行。从查询测试过程的角度来看,可以实现按照步骤来查询。

本发明通过引入docker容器技术,原来需要10台虚拟机的需求现在缩减为一台需求的需求,节省了大量的物理机器资源。从而提升物理机器的综合利用率。另外,多个虚拟机做相同的配置,过程繁琐,时间消耗较大,配置的过程中难免会出现人为的错误,针对测试环境我们可以定制容器镜像,通过启动镜像来完成相同配置的部署,在效率上得到较大的提升。

本实施例中,步骤五之后还包括:测试人员访问系统的report目录下,打开index.html,显示本次测试执行情况;测试系统通过配置测试人员的邮箱地址将生成的升级过程日志及测试过程日志以邮件的形式发送。

本实施例中,将测试后的测试过程日志和预设的测试过程日志进行比对,判断测试后测试过程日志中是否存在错误信息。

或将测试后的测试过程日志和预设的测试过程日志进行比对,判断测试后的测试过程日志的测试参数值对应与预设测试过程日志的测试参数值是否一致。

在测试用例初始化时,通过指定浏览器名称和远程执行机node的远程url,从而达到预期在那个node上执行用例的目标。

测试人员访问系统的report目录下,打开index.html,显示本次测试执行情况;测试系统通过配置测试人员的邮箱地址将测试日志以邮件的形式发送。

本发明提供的实施例中,基于docker+jenkins的自动升级及自动化测试方法,其特征在于将docker容器技术和持续集成工具jenkins结合,整个升级测试过程全程自动化,使测试效率得到较大的提升。

通过docker容器技术可以定制测试环境镜像,启动镜像创建相同的测试环境,为准备升级测试环境节省大量的时间,且开发和测试使用同一镜像,保证基础环境的一致性。在升级过程中,可以随时查看升级任务的状态,及输出日志。升级完成后,输出详细的测试日志,包含启动时间,完成时间,是否成功等关键信息。

本发明通过产品升级测试的自动化,一方面节省了大量人工操作和重复性操作,提高产品的升级测试可靠性,测试日志帮助测试和开发人员迅速定位到升级过程中发生的问题,全程的自动化大大的提高了测试效率。另一方面,通过docker容器,定制镜像,保证开发和测试的基础环境一致性,一次配置定制,达到重复配置的效果,而且此过程也会减少手工配置出错的概率。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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