CN107704395B - 一种基于Openstack下云平台自动化测试实施方法与系统 - Google Patents
一种基于Openstack下云平台自动化测试实施方法与系统 Download PDFInfo
- Publication number
- CN107704395B CN107704395B CN201710999460.3A CN201710999460A CN107704395B CN 107704395 B CN107704395 B CN 107704395B CN 201710999460 A CN201710999460 A CN 201710999460A CN 107704395 B CN107704395 B CN 107704395B
- Authority
- CN
- China
- Prior art keywords
- test
- environment
- cloud platform
- message
- virtual machine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明适用于软件测试技术领域,提供一种基于Openstack下云平台自动化测试实施方法与系统,所述方法包括三个大步骤:配置自动化测试方案;搭建自动化测试环境;执行并分析自动化测试方案。本发明中,首先创建自动化测试方案,然后运维云平台解析自动化测试方案,调用OpenStack云平台外部接口,投递两虚拟机对应待测环境和测试环境,经过运维云平台、消息服务器和虚拟机中的消息处理引擎组成的消息机制处理消息,完善待测环境和测试环境虚拟机配置,执行自动化测试工作指令。整套实施方法的功能稳定可靠,结构清晰,可扩展性高,实用性强。
Description
技术领域
本发明属于软件测试技术领域,尤其涉及一种基于Openstack下云平台自动化测试实施方法与系统。
背景技术
随着软件测试技术的发展,人们已经逐渐从最初的纯手工测试转变到手工与自动化测试技术相结合的测试方法。近年来,随着软件系统的升级换代和对测试人员技术水平要求越来越高,自动化测试技术发展已成为了一种趋势,越来越受到广泛关注和重视。在自动化测试技术应用与推广下,自动化测试技术已逐渐的开始深入到软件产品质量的各个环节。自动化测试用例数量也在逐渐的增加,运行的次数和频率越来越高。当前软件产品开发迭代周期快,对软件产品回归测试周期也有所要求,这就要求测试人员对每日构建的想法和实践进行落实。具体特征体现在,无人值守,覆盖颗粒度高,测试报告详细和完整等具体表现。在实施自动化测试过程中对资源利用率要求比较严格,若是资源不够的状态,在仅限的资源上运行自动化测试用例和平台时,就会因为资源不足而导致运行缓慢,服务器宕机等现象,最后连自动化测试报告也无法获取,严重影响自动化测试技术和平台的推广与应用,不利于测试工作的开展与推进。
发明内容
鉴于上述问题,本发明的目的在于提供一种基于Openstack下云平台自动化测试实施方法与系统,旨在解决现有测试方案自动化程度不高、统计数据分析较差的技术问题。
一方面,所述基于Openstack下云平台自动化测试实施方法包括下述步骤:
步骤S1、配置自动化测试方案;
步骤S2、搭建自动化测试环境;
步骤S3、执行并分析自动化测试方案。
进一步的,所述步骤S1具体包括:
S11、使用SVN客户端管理工具维护SVN服务器所创建的待测环境指定项目的SVN目录以及测试环境指定项目的SVN目录;
S12、配置运维云平台中基础参数,包括配置虚拟机镜像模板记录、虚拟机资源配置记录以及项目版本,然后记录项目版本关联的待测环境模板和测试环境模板;
S13、填写本次自动化测试的概况信息,选择测试的项目版本后,配置本次测试的待测环境和测试环境,创建自动化测试方案,包括普通自动化测试方案、定时自动化测试方案或多节点自动化测试方案。
进一步的,所述步骤S2具体包括:
S21、运维云平台后台处理所述创建的自动化测试方案并解析;
S22、运维云平台根据自动化测试方案的需求,调用OpenStack的外部接口,OpenStack云平台投递虚拟机,包括投递待测环境虚拟机和测试环境虚拟机;
S23、运维云平台记录执行自动化测试方案时产生的业务数据,记录存放在运维云平台对应的数据库内;
S24、运维云平台组织修改待测环境和测试环境虚拟机的指令,生成组织消息并发送至消息服务器中的发送消息队列,消息服务器读取所述发送消息队列,按照发送消息的虚拟机的mac地址,点播发送给指定虚拟机。
进一步的,所述步骤S3具体包括:
S31、待测环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行;
S32、测试环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行;
S33、测试环境虚拟机中的消息处理引擎逐条执行消息体中的指令,当所有指令都执行成功,将执行状态消息记录为成功,否则记录为失败,将执行状态消息发送至消息服务器并保存在接收消息队列中;运维云平台接收从消息服务器反馈的执行状态消息,根据执行状态消息标记自动化测试方案是否执行完成;
S34、测试环境虚拟机中的RobotFramework自动化测试平台完成自动化测试后,将测试结果数据存入数据库指定位置;
S35、访问运维云平台的自动化测试模块,查看自动化测试方案对应的测试报告,查看报告中的测试执行概况数据。
进一步的,上述步骤S13中,在配置本次测试的待测环境时,在待测环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的待测环境虚拟机镜像模板;在配置本次测试的测试环境时,在测试环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的测试环境虚拟机镜像模板,创建普通自动化测试方案,如果填写了定时规则,则创建定时自动化测试方案,如果添加了测试环境节点,还需要继续选择附加的测试环境,直至补足覆盖完全测试范围的测试环境为止,创建多节点自动化测试方案。
进一步的,步骤S31中,所述提取所有需执行的指令逐条执行包括:下载SVN服务器中待测环境SVN目录的内容、将从SVN服务器下载的内容拷贝至指定位置、各待测程序运行需要编辑的环境数据、启动待测程序;步骤S32中,所述提取所有需执行的指令逐条执行包括:下载SVN服务器中测试环境目录的内容、将从SVN服务器下载内容拷贝至指定位置、修改自动化测试脚本中的参数值、执行自动化测试。
进一步的,步骤S34中需要改造RobotFramework自动化测试平台和python编写的dbbot扩展包,改造RobotFramework自动化测试平台时,在python环境中Robotframework扩展包的源码中加入调用dbbot扩展包的run函数的语句,当自动化测试完成时,使用dbbot扩展包自动解析存放自动化测试结果内容的文件output.xml;改造python编写的dbbot扩展包时,修改dbbot扩展包中数据库的连接、插入语句,拼接插入语句的方法,dbbot扩展包支持将测试结果数据存入不同类型的数据库内,支持将自定义业务字段的参数值存入数据库。
进一步的,所述步骤S3还包括:
S36、访问运维云平台的自动化测试模块,按照测试任务信息、用例集信息、用例信息逐级检查统计数据,点击其中执行失败的用例记录的分析原因按钮,在分析原因页面中排查用例执行失败原因,并回到用例信息页面,标记用例的错误原因。
进一步的,所述运维云平台的自动化测试模块支持两种辅助方式分析用例错误原因:
1)测试web页面上的功能错误时,远程显示用例失败时的错误截图,此截图位于测试环境虚拟机中;
2)根据产品业务需求,测试url形式的接口请求功能错误时,允许选择接口请求结果记录文件,与预期结果文件进行远程文件对比,使用消息机制远程调用测试环境中的对比工具对比前面所说的两个文件,远程获取测试环境中的报告文件,将对比报告内容显示在页面上,报告中会记录文件差异的部分。
另一方面,所述基于Openstack下云平台自动化测试实施系统包括:SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机,所述消息服务器中内置有发送消息队列和接收消息队列,所述测试环境虚拟机和待测环境虚拟机内置消息处理引擎,所述运维平台内置有自动化测试模块,所述OpenStack云平台与所述运维云平台、测试环境虚拟机、待测环境虚拟机连接,所述运维云平台与所述数据库、消息服务器连接,所述消息服务器与所述测试环境虚拟机和待测环境虚拟机连接,所述测试环境虚拟机与所述消息服务器、数据库连接,所述SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机按照上述基于Openstack下云平台自动化测试实施方法执行。
本发明的有益效果是:用户在运维云平台中选择创建自动化测试方案,运维云平台解析自动化测试方案,调用OpenStack云平台外部接口,投递两虚拟机对应待测环境和测试环境,经过运维云平台、消息服务器和虚拟机中的消息处理引擎组成的消息机制处理消息,完善待测环境和测试环境虚拟机配置,执行自动化测试工作指令。整套实施方法的功能稳定可靠,结构清晰,可扩展性高,实用性强。
附图说明
图1是本发明实施例提供的基于Openstack下云平台自动化测试实施方法的流程图;
图2是配置自动化测试方案的具体流程图;
图3是搭建自动化测试环境的具体流程图;
图4是执行并分析自动化测试方案的具体流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明方法基于Openstack下云平台自动化测试实施系统实现,所述基于Openstack下云平台自动化测试实施系统包括:SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机,所述消息服务器中内置有发送消息队列和接收消息队列,所述测试环境虚拟机和待测环境虚拟机内置消息处理引擎,所述运维平台内置有自动化测试模块,所述OpenStack云平台与所述运维云平台、测试环境虚拟机、待测环境虚拟机连接,所述运维云平台与所述数据库、消息服务器连接,所述消息服务器与所述测试环境虚拟机和待测环境虚拟机连接,所述测试环境虚拟机与所述消息服务器、数据库连接,所述SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机按照上述基于Openstack下云平台自动化测试实施方法执行。
SVN服务器中的SVN代码版本管理工具维护待测环境和测试环境,其中待测环境包括待测程序以及待测环境依赖,测试环境包括所述自动化测试脚本、python扩展包和文件比较程序BeyondComare。
所述OpenStack云平台对虚拟机镜像模板文件进行集中管理,并接收Openstack外部接口调用,投递特定配置的虚拟机。所述虚拟机镜像模板文件是将操作系统以及通用配置通过命令打包而成的QCOW2格式的镜像模板文件。其中待测环境的虚拟机模板包含部分待测环境的通用依赖内容,测试环境虚拟机模板包含RobotFramework自动化测试平台和通用依赖内容。
所述测试环境虚拟机和待测环境虚拟机中的消息处理引擎会解析运消息服务器发送给指定虚拟机的消息内容,依次执行消息体里面的所有指令,向给消息服务器发送含有执行状态的消息。
所述测试环境虚拟机还内置有RobotFramework自动化测试平台,该平台为执行测试脚本的平台,该测试平台的环境已搭建好,默认打包到测试环境模板中。经过对该平台的改造,完成自动化测试工作后,将测试报告内容转存至指定数据库内。
所述数据库为存储自动化测试结果的数据库,供运维云平台进行查询、修改等操作。
所述运维云平台提供自动化测试的门户页面,在门户页面上选择待测环境和测试环境的SVN目录以及两环境对应的虚拟机配置,调用OpenStack云平台的外部接口,投递待测环境和测试环境对应的虚拟机,运维云平台向消息服务器发送关于初始化虚拟机环境的消息,消息服务器以点播方式向待测环境发送含有部署待测程序命令的消息,消息服务器也以点播方式向测试环境发送含有初始化并执行自动化测试脚本命令的消息。运维云平台接收消息服务器发送的含有自动化测试执行状态的消息,从数据库查询关于本次自动化测试的执行信息,根据统计数据分析测试执行的失败原因。
基于上述系统,本实施例提供的基于Openstack下云平台自动化测试实施方法包括下述步骤(如图1所示):
步骤S1、配置自动化测试方案。
所述步骤S1的具体执行过程如图2所示,包括下述步骤:
S11、维护指定项目的SVN目录。
使用SVN客户端管理工具维护SVN服务器所创建的待测环境指定项目的SVN目录(目前以时间戳实现)以及测试环境指定项目的SVN目录。在待测环境指定项目的SVN目录下配置程序包、三方扩展包、中间件扩展包以及定制化扩展包等等;在测试环境指定项目的SVN目录配置自动化测试脚本、python扩展包等等,因为RobotFramework自动化测试平台底层是用pyhton语言实现,测试环境的扩展包为现开源的python扩展包或者自己研发的python扩展包。
作为一种实例,首先维护测试环境SVN目录,在项目SVN目录下创建testscript目录(专门存放测试脚本),该目录下创建时间戳目录如20170606102633(目录创建时间),该时间目录下存放测试脚本。然后维护待测环境SVN目录,在项目SVN目录下创建server目录(存放待测程序的环境),同样在该目录下创建时间戳目录,该目录下存放待测程序、jdk扩展包、中间件扩展包、公司基础扩展包内容。
S12、配置运维云平台中基础参数。
具体的包括:
1)配置虚拟机镜像模板记录:记录投递的虚拟机操作系统环境配置。在OpenStack云平台中创建虚拟机镜像模板记录,选择对应的虚拟机镜像模板文件,如安装某些特定软件后的windows或者linux操作系统环境,在运维云平台中同步虚拟机镜像模板记录。
作为一种实例,在OpenStack云平台中创建虚拟机镜像模板记录,分别创建待测环境和测试环境的虚拟机镜像模板记录,创建待测环境虚拟机镜像模板记录选择已制作好的linux操作系统的模板文件,创建测试环境虚拟机镜像模板记录选择已制作好的windows操作系统的模板文件。在运维云平台中同步虚拟机镜像模板记录配置。
2)配置虚拟机资源配置记录:记录投递的虚拟机使用CPU、内存和硬盘的配置。在OpenStack平台中创建云主机类型记录,如配置2核CPU、4G内存、50G磁盘空间组合的资源配置记录,在运维云平台中同步虚拟机资源配置记录。
3)配置项目版本。
记录项目版本关联的待测环境模板和测试环境模板,以项目版本作为分类快速创建自动化测试方案。在运维云平台中创建某项目有测试需求的版本记录,分别选择待测环境和测试环境的镜像模板记录,此关联记录作为项目版本记录。
作为一种实例,在运维云平台中创建测试项目的版本记录项目A,分别选择待测环境和测试环境的镜像模板记录。
S13、创建自动化测试方案。
在运维云平台中,打开创建自动化测试方案页面,进行以下步骤操作:
首先填写本次自动化测试的概况信息;项目A系统测试20170606。
然后选择测试的项目版本后,配置本次测试的待测环境和测试环境,创建自动化测试方案。自动化测试方案,包括普通自动化测试方案、定时自动化测试方案或多节点自动化测试方案。
本步骤中,在选择测试的项目版本后,这时会动态显示需要配置待测环境和测试环境。在待测环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的待测环境虚拟机镜像模板,此处不显示虚拟机镜像配置项。在测试环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的测试环境虚拟机镜像模板,此处不显示虚拟机镜像配置项。
经过配置后,提交自动化测试方案,即可完成自动化测试方案的配置,运维云平台会按照配置,进行后续的工作。正常情况下,创建的自动化测试方案为普通自动化测试方案。作为一种实例,选择项目A,选择待测环境SVN目录20170606102633,选择虚拟机资源配置2核CPU、4G内存、50G磁盘空间组合,系统默认选择测试版本记录中配置的待测环境虚拟机镜像模板,此处不显示虚拟机镜像配置项。选择项目A,选择测试环境SVN目录20170606102633,选择虚拟机资源配置4核CPU、8G内存、50G磁盘空间组合,系统默认选择测试版本记录中配置的测试环境虚拟机镜像模板,此处不显示虚拟机镜像配置项。
另外,本发明还支持创建定时自动化测试方案和多节点自动化测试方案。
如果填写了定时规则,按照定时规则创建定时自动化测试方案,定时规则分为间隔时长触发和固定时间触发。在运维云平台中创建定时自动化测试方案记录,填写本次定时自动化测试方案概况信息,选择待测环境和测试环境,完成对定时自动换行测试方案的创建。使用此法,可在无人值守的时间段,创建定时自动化测试方案,进行自动化测试工作。
如果添加了测试环境节点,此处的多节点指多测试环境虚拟机节点,即投递多个自动化测试环境针对待测程序进行并行测试。在运维云平台中创建自动化测试方案,填写本次测试的概况信息,选择待测环境,选择测试环境(包括待测程序部分模块的测试脚本),再点击添加测试环境节点,继续选择附加的测试环境,按此法一直添加附加测试环境,直到补足覆盖完全测试范围的测试环境为止,提交此自动化测试方案。使用此法,可以提高对待环境的资源利用率,并发自动化测试工作,加快整个自动化测试工作的进度,提高测试效率。
步骤S2、搭建自动化测试环境。
所述步骤S2的具体执行过程如图3所示,包括下述步骤:
S21、解析自动化测试方案。
运维云平台后台处理所述创建的自动化测试方案并解析,运维云平台后台集中在action包的OrderParseAction类中处理自动化测试方案,调用orderSaveDeploy方法分析。
作为一种实例,创建自动化测试方案后,运维云平台在后台解析自动化测试方案项目A系统测试20170606,在action包的OrderParseAction类中处理,调用orderSaveDeploy方法分析。
S22、投递虚拟机。
运维云平台根据自动化测试方案的需求,调用OpenStack的外部接口,OpenStack云平台投递虚拟机,包括投递待测环境虚拟机和测试环境虚拟机。在运维云平台后台process包中继承或覆盖基类ProcessService中的processMachine方法,在此方法内实现关于自动化测试方案的虚拟机的投递业务,包括投递待测环境的虚拟机和测试环境虚拟机。该业务中投递虚拟机步骤需调用核心包中的deployMachine(IProcess process,Goodsgoods,Set collection,String proxyState,int computerNumber)方法。
S23、存储业务数据。
运维云平台记录执行自动化测试方案时产生的业务数据,记录存放在运维云平台对应的数据库内,进行存储操作时需要实现基类中的proccessBusiness抽象方法,在此方法内实现自动化测试方案对应业务数据的初始化、参数值获取与存储,如goods信息、虚拟机ip、mac地址、infrastructure信息等。
S24、发送初始化环境消息。
经OpenStack云平台投递出待测环境虚拟机和测试环境虚拟机,虚拟机中还需要对环境进行改造,才适用作为自动化测试工作的环境,本发明可以解析固定格式的消息信息,执行其中的消息指令,达到完善待测环境和测试环境直至适用作为自动化测试工作的环境。具体的,首先运维云平台组织修改待测环境和测试环境虚拟机的指令,调用geoAgentCommandFactory.getCommandModule(class),创建消息处理引擎能识别的json格式消息对象,将此封装为消息体内容,即得到组织消息;然后发送至消息服务器中的发送消息队列,发送消息需要调用核心包中的sendMachineByMessage(Goods goods,Set<InfrastructureGoods>infrastructureGoodsSet)方法,该方法为将消息发送给消息服务器队列,消息服务器读取所述发送消息队列,按照发送消息的虚拟机的mac地址,点播发送给指定虚拟机。
步骤S3、执行并分析自动化测试方案。
所述步骤S3的具体执行过程如图4所示,包括下述步骤:
S31、待测环境虚拟机中的消息处理引擎处理消息。
待测环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行,消息指令较多不一一列举。
需解析的json格式消息体内容如:
{"-name":"key","#text":"%3C%21%5BinfrastructureId%5D%3E"}
转化为xml格式内容:
<plugin_geoagent name="replace">
<plugin_params>
<plugin_param/>
<plugin_param
name="path">C%3A%5CPython27%5CLib%5Csite-packages%5Cdbbot%5CRandomFile.txt</plugin_param>
<plugin_param
name="key">%3C%21%5BinfrastructureId%5D%3E</plugin_param>
<plugin_param
name="target">890c5d5542194d3baaf289f78c99e710</plugin_param>
</plugin_params>
</plugin_geoagent>
所述提取所有需执行的指令逐条执行包括:下载SVN服务器中待测环境SVN目录的内容、将从SVN服务器下载的内容拷贝至指定位置、各待测程序运行需要编辑的环境数据、启动待测程序。
S32、测试环境虚拟机中的消息处理引擎处理消息。
测试环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行。所述提取所有需执行的指令逐条执行包括:下载SVN服务器中测试环境目录的内容、将从SVN服务器下载内容拷贝至指定位置、修改自动化测试脚本中的参数值、执行自动化测试。
S33、测试环境虚拟机中的消息处理引擎返回执行状态消息。
测试环境虚拟机中的消息处理引擎逐条执行消息体中的指令,当所有指令都执行成功,将执行状态消息记录为成功,否则记录为失败,将执行状态消息发送至消息服务器并保存在接收消息队列中;运维云平台接收从消息服务器反馈的执行状态消息,根据执行状态消息标记自动化测试方案项目A系统测试20170606是否执行完成。
S34、存储自动化测试结果。
测试环境虚拟机中的RobotFramework自动化测试平台完成自动化测试后,将测试结果数据存入数据库指定位置。
本发明需要改造RobotFramework自动化测试平台和python编写的dbbot扩展包,改造RobotFramework自动化测试平台时,在python环境中Robotframework扩展包的源码中加入调用dbbot扩展包的run函数的语句,当自动化测试完成时,使用dbbot扩展包自动解析存放自动化测试结果内容的文件output.xml;改造python编写的dbbot扩展包时,修改dbbot扩展包中数据库的连接、插入语句,拼接插入语句的方法,dbbot扩展包支持将测试结果数据存入不同类型的数据库内,支持将自定义业务字段的参数值存入数据库。
S35、查看自动化测试结果。
访问运维云平台的自动化测试模块,查看自动化测试方案对应的测试报告,查看报告中的测试执行概况数据。
S36、分析原因。
访问运维云平台的自动化测试模块,按照测试任务信息、用例集信息、用例信息逐级检查统计数据,点击其中执行失败的用例记录的分析原因按钮,在分析原因页面中排查用例执行失败原因,并回到用例信息页面,标记用例的错误原因。
所述运维云平台的自动化测试模块支持两种辅助方式分析用例错误原因:
1)测试web页面上的功能错误时,远程显示用例失败时的错误截图,此截图位于测试环境虚拟机中;
2)根据产品业务需求,测试url形式的接口请求功能错误时,允许选择接口请求结果记录文件,与预期结果文件进行远程文件对比,使用消息机制远程调用测试环境中的对比工具对比前面所说的两个文件,远程获取测试环境中的报告文件,将对比报告内容显示在页面上,报告中会记录文件差异的部分。
根据以上两种辅助方式,熟悉业务的用户能较便捷能分析自动化测试中执行失败的原因。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于Openstack下云平台自动化测试实施方法,其特征在于,所述方法包括下述步骤:
步骤S1、配置自动化测试方案;
步骤S2、搭建自动化测试环境;
步骤S3、执行并分析自动化测试方案;
其中,所述步骤S1具体包括:
S11、使用SVN客户端管理工具维护SVN服务器所创建的待测环境指定项目的SVN目录以及测试环境指定项目的SVN目录;
S12、配置运维云平台中基础参数,包括配置虚拟机镜像模板记录、虚拟机资源配置记录以及项目版本,然后记录项目版本关联的待测环境模板和测试环境模板;
S13、填写本次自动化测试的概况信息,选择测试的项目版本后,配置本次测试的待测环境和测试环境,创建自动化测试方案,包括普通自动化测试方案、定时自动化测试方案或多节点自动化测试方案;
其中,所述步骤S2具体包括:
S21、运维云平台后台处理所述创建的自动化测试方案并解析;
S22、运维云平台根据自动化测试方案的需求,调用OpenStack的外部接口,OpenStack云平台投递虚拟机,包括投递待测环境虚拟机和测试环境虚拟机;
S23、运维云平台记录执行自动化测试方案时产生的业务数据,记录存放在运维云平台对应的数据库内;
S24、运维云平台组织修改待测环境和测试环境虚拟机的指令,生成组织消息并发送至消息服务器中的发送消息队列,消息服务器读取所述发送消息队列,按照发送消息的虚拟机的mac地址,点播发送给指定虚拟机;
其中,所述步骤S3具体包括:
S31、待测环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行;
S32、测试环境虚拟机中的消息处理引擎接收到消息后,解析其中的json格式的消息体内容,转化为xml格式内容,提取所有需执行的指令逐条执行;
S33、测试环境虚拟机中的消息处理引擎逐条执行消息体中的指令,当所有指令都执行成功,将执行状态消息记录为成功,否则记录为失败,将执行状态消息发送至消息服务器并保存在接收消息队列中;运维云平台接收从消息服务器反馈的执行状态消息,根据执行状态消息标记自动化测试方案是否执行完成;
S34、测试环境虚拟机中的RobotFramework自动化测试平台完成自动化测试后,将测试结果数据存入数据库指定位置;
S35、访问运维云平台的自动化测试模块,查看自动化测试方案对应的测试报告,查看报告中的测试执行概况数据。
2.如权利要求1所述基于Openstack下云平台自动化测试实施方法,其特征在于,上述步骤S13中,在配置本次测试的待测环境时,在待测环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的待测环境虚拟机镜像模板;在配置本次测试的测试环境时,在测试环境配置区内,选择SVN目录中对应本次测试范围的目录,选择虚拟机资源配置项,默认选择测试的项目版本中配置的测试环境虚拟机镜像模板,创建普通自动化测试方案,如果填写了定时规则,则创建定时自动化测试方案,如果添加了测试环境节点,还需要继续选择附加的测试环境,直至补足覆盖完全测试范围的测试环境为止,创建多节点自动化测试方案。
3.如权利要求2所述基于Openstack下云平台自动化测试实施方法,其特征在于,步骤S31中,所述提取所有需执行的指令逐条执行包括:下载SVN服务器中待测环境SVN目录的内容、将从SVN服务器下载的内容拷贝至指定位置、各待测程序运行需要编辑的环境数据、启动待测程序;步骤S32中,所述提取所有需执行的指令逐条执行包括:下载SVN服务器中测试环境目录的内容、将从SVN服务器下载内容拷贝至指定位置、修改自动化测试脚本中的参数值、执行自动化测试。
4.如权利要求3所述基于Openstack下云平台自动化测试实施方法,其特征在于,步骤S34中需要改造RobotFramework自动化测试平台和python编写的dbbot扩展包,改造RobotFramework自动化测试平台时,在python环境中Robotframework扩展包的源码中加入调用dbbot扩展包的run函数的语句,当自动化测试完成时,使用dbbot扩展包自动解析存放自动化测试结果内容的文件output.xml;改造python编写的dbbot扩展包时,修改dbbot扩展包中数据库的连接、插入语句,拼接插入语句的方法,dbbot扩展包支持将测试结果数据存入不同类型的数据库内,支持将自定义业务字段的参数值存入数据库。
5.如权利要求1所述基于Openstack下云平台自动化测试实施方法,其特征在于,所述步骤S3还包括:
S36、访问运维云平台的自动化测试模块,按照测试任务信息、用例集信息、用例信息逐级检查统计数据,点击其中执行失败的用例记录的分析原因按钮,在分析原因页面中排查用例执行失败原因,并回到用例信息页面,标记用例的错误原因。
6.如权利要求5所述基于Openstack下云平台自动化测试实施方法,其特征在于,所述运维云平台的自动化测试模块支持两种辅助方式分析用例错误原因:
1)测试web页面上的功能错误时,远程显示用例失败时的错误截图,此截图位于测试环境虚拟机中;
2)根据产品业务需求,测试url形式的接口请求功能错误时,允许选择接口请求结果记录文件,与预期结果文件进行远程文件对比,使用消息机制远程调用测试环境中的对比工具对比前面所说的两个文件,远程获取测试环境中的报告文件,将对比报告内容显示在页面上,报告中会记录文件差异的部分。
7.一种基于Openstack下云平台自动化测试实施系统,其特征在于,所述云平台自动化测试实施系统包括:SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机,所述消息服务器中内置有发送消息队列和接收消息队列,所述测试环境虚拟机和待测环境虚拟机内置消息处理引擎,所述运维平台内置有自动化测试模块,所述OpenStack云平台与所述运维云平台、测试环境虚拟机、待测环境虚拟机连接,所述运维云平台与所述数据库、消息服务器连接,所述消息服务器与所述测试环境虚拟机和待测环境虚拟机连接,所述测试环境虚拟机与所述消息服务器、数据库连接,所述SVN服务器、运维云平台、OpenStack云平台、消息服务器、数据库、测试环境虚拟机和待测环境虚拟机按照如权利要求1-6任一项所述基于Openstack下云平台自动化测试实施方法执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710999460.3A CN107704395B (zh) | 2017-10-24 | 2017-10-24 | 一种基于Openstack下云平台自动化测试实施方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710999460.3A CN107704395B (zh) | 2017-10-24 | 2017-10-24 | 一种基于Openstack下云平台自动化测试实施方法与系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704395A CN107704395A (zh) | 2018-02-16 |
CN107704395B true CN107704395B (zh) | 2020-07-07 |
Family
ID=61183061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710999460.3A Active CN107704395B (zh) | 2017-10-24 | 2017-10-24 | 一种基于Openstack下云平台自动化测试实施方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704395B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108540351B (zh) * | 2018-04-20 | 2021-06-25 | 西北工业大学 | 分布式大数据服务的自动化测试方法 |
CN109002298A (zh) * | 2018-10-01 | 2018-12-14 | 曾鸿坤 | 一种第三方平台托管项目通用的自动部署到云平台方法 |
CN109815130A (zh) * | 2018-12-26 | 2019-05-28 | 中链科技有限公司 | 基于区块链的软件兼容性测试的存储方法及系统 |
CN110058920B (zh) * | 2019-03-04 | 2023-01-31 | 平安科技(深圳)有限公司 | 虚拟机性能检测方法及装置、电子设备、存储介质 |
CN110022244B (zh) * | 2019-04-03 | 2020-08-28 | 北京字节跳动网络技术有限公司 | 用于发送信息的方法和装置 |
CN110471839A (zh) * | 2019-07-11 | 2019-11-19 | 平安普惠企业管理有限公司 | 定时测试任务控制方法、装置、计算机设备及存储介质 |
CN112306839A (zh) * | 2019-07-24 | 2021-02-02 | 中国移动通信有限公司研究院 | 接口测试方法、装置及服务器 |
CN112765007A (zh) * | 2019-10-21 | 2021-05-07 | 腾讯科技(深圳)有限公司 | 一种集成测试方法、装置及存储介质 |
CN112416747A (zh) * | 2020-01-21 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 一种测试用例执行方法、装置、设备及介质 |
CN111488284B (zh) * | 2020-04-14 | 2023-04-21 | 上海仪电(集团)有限公司中央研究院 | 一种用于OpenStack云平台的模拟操作主动检测方法 |
CN111897724B (zh) * | 2020-07-21 | 2022-12-06 | 国云科技股份有限公司 | 一种适用于云平台的自动化测试方法及装置 |
CN111858352B (zh) * | 2020-07-22 | 2024-04-05 | 中国平安财产保险股份有限公司 | 自动化测试监控的方法、装置、设备及存储介质 |
CN112532473B (zh) * | 2020-11-12 | 2023-09-01 | 苏宁金融科技(南京)有限公司 | 基于dns的多环境测试访问方法及装置 |
CN112463622B (zh) * | 2020-12-07 | 2022-05-27 | 苏州浪潮智能科技有限公司 | 一种模块化的测试和数据分析方法及装置 |
CN112506786B (zh) * | 2020-12-15 | 2022-04-19 | 西安中朗智控科技有限公司 | 一种回归测试方法和回归测试装置 |
CN114465937B (zh) * | 2021-12-30 | 2023-11-17 | 宁畅信息产业(北京)有限公司 | 网卡测试方法、装置、服务器和介质 |
CN117093491B (zh) * | 2023-08-24 | 2024-04-16 | 鱼快创领智能科技(南京)有限公司 | 一种用于车载t-box简单编程的自动化测试方法 |
CN117472785B (zh) * | 2023-12-25 | 2024-04-16 | 银河麒麟软件(长沙)有限公司 | Linux系统下的Openstack测试方法及系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140282421A1 (en) * | 2013-03-15 | 2014-09-18 | Microsoft Corporation | Distributed software validation |
CN105095089A (zh) * | 2015-09-14 | 2015-11-25 | 北京金山安全软件有限公司 | 一种测试应用软件性能的方法及装置 |
CN106411633A (zh) * | 2016-08-23 | 2017-02-15 | 国家电网公司 | 一种基于openstack的Web应用兼容性测试方法及其系统 |
CN106383784A (zh) * | 2016-09-20 | 2017-02-08 | 上海爱数信息技术股份有限公司 | 软件自动化测试方法及系统 |
CN106776289A (zh) * | 2016-11-24 | 2017-05-31 | 山东交通学院 | 多任务自适应云测试方法 |
-
2017
- 2017-10-24 CN CN201710999460.3A patent/CN107704395B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN107704395A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107704395B (zh) | 一种基于Openstack下云平台自动化测试实施方法与系统 | |
CN109933522B (zh) | 一种自动化用例的测试方法、测试系统及存储介质 | |
CN110633209B (zh) | 一种车载安卓多媒体导航仪自动化测试方法及系统 | |
CN105094783B (zh) | 安卓应用稳定性测试的方法及装置 | |
KR20210040884A (ko) | 엣지 컴퓨팅 테스트 방법, 장치, 전자 장치 및 컴퓨터 판독 가능 매체 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
US20120089931A1 (en) | Lightweight operation automation based on gui | |
CN109902017A (zh) | 一种基于RobotFramework测试Dubbo接口的方法及终端 | |
CN104580480A (zh) | 一种客户端远程自动化部署系统及方法 | |
CN112882700A (zh) | iOS应用程序构建方法及装置、电子设备及存储介质 | |
CN105204991A (zh) | 一种物联设备测试方法及装置 | |
CN110362490B (zh) | 融合iOS与Android移动应用的自动化测试方法及系统 | |
CN110955600A (zh) | 接口测试方法及装置 | |
CN111367534A (zh) | 一种基于应用环境的服务编排方法及系统 | |
CN112306884A (zh) | 程序测试控制、执行方法及其相应的装置、设备、介质 | |
US8819631B2 (en) | System and method for self dependent web automation | |
CN112328470A (zh) | 一种自动化运维测试方法、装置、设备及存储介质 | |
CN111651352B (zh) | 一种仓库代码的合并方法及装置 | |
CN109445384B (zh) | 一种多设备控制系统 | |
CN109597627A (zh) | 一种组件安装方法、装置、存储介质和处理器 | |
CN116301951B (zh) | 一种基于kubernetes的微服务应用安装升级方法及装置 | |
CN112181852A (zh) | 一种接口自动化测试方法、装置、计算机设备及存储介质 | |
CN113254187A (zh) | 测试数据的生成方法、装置、电子设备和存储介质 | |
CN112685051A (zh) | 自动执行shell脚本的方法、装置、平台及存储介质 | |
CN108694046A (zh) | 容器装配方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 430223 Wuda science and Technology Park, Jiangxia Avenue, Miaoshan community, Donghu Development Zone, Wuhan City, Hubei Province Patentee after: Geospace Information Technology Co., Ltd. Address before: 430223 Wuda science and Technology Park, Jiangxia Avenue, Miaoshan community, Donghu Development Zone, Wuhan City, Hubei Province Patentee before: WUDA GEOINFORMATICS Co.,Ltd. |