基于python的支持全架构轻量自动化测试系统技术方案

技术编号:37810162 阅读:10 留言:0更新日期:2023-06-09 09:40
基于python的支持全架构轻量自动化测试系统,包括交互式命令模块以及与其连接的测试层、业务层及核心层,交互式命令模块用于接收用户的测试需求,并将用户的测试需求下发至测试层、业务层及核心层执行,测试层用于基于用户的需要筛选测试用例,获取不同测试所需的数据源,并将所筛选的测试用例及所获取的数据源传递给核心层执行具体的测试;业务层用于提供核心层执行具体测试过程中涉及到的业务所需的接口,并基于测试层筛选的测试用例,提供通用业务流程的指定和顺序流转功能。本发明专利技术既轻量部署简单化,又灵活定制可插拔,功能强大、维护成本低、极大程度简化了国产异构平台,异构操作系统的复杂的适配问题。操作系统的复杂的适配问题。操作系统的复杂的适配问题。

【技术实现步骤摘要】
基于python的支持全架构轻量自动化测试系统


[0001]本专利技术涉及自动化测试
,具体涉及基于python的支持全架构轻量自动化测试系统。

技术介绍

[0002]我国信创产业、自主可控发展处于难得的机遇期,随着国产操作系统的迅猛发展 ,比如国内Linux市占率第一的麒麟操作系统,不仅涉及了桌面,服务器,嵌入式,云平台等产品,同时能异构支持飞腾、海光、鲲鹏、龙芯、兆芯等国产CPU芯片。目前国产操作系统适配的软硬件数量与Windows平台适配的软硬件数量差距悬殊,且生态呈碎片化,测试任务重,适配效率低。
[0003]针对基于操作系统层面的测试,通常是测试人员开发一些shell或python 脚本进行测试实现一定程度的自动化,但是效率低,维护成本高,复用程度低。
[0004]自动化测试框架能解决代码组织及运行控制,统一管控,一定程度提高了适配效率,减少了维护成本。自动化测试框架的实现方式多种多样:基于shell实现的框架,实现轻量,部署简单,但是功能相对薄弱,具体存在以下问题:1、 功能简单,日志,报告不完善,仅支持shell测试用例,不支持python测试用例调度,不能有效助力测试人员的适配测试工作;2、代码复用率低;3、适用场景有限,仅支持命令行,不支持接口对外提供服务。
[0005]基于Java,Python实现的相对成熟的自动化框架,如Junit,Pytest,功能完善,但是实现太重,依赖运行环境,部署较复杂,有失灵活,同时框架本身依赖太多,存在适配问题;灵活性较差,只适用特定场景。
[0006]因此,设计实现一款具备轻量、原生、灵活、可插拔的特点,能够支持全系列CPU架构的自动化测试框架迫在眉睫。

技术实现思路

[0007]为解决已有技术存在的不足,本专利技术提供了一种基于python的支持全架构轻量自动化测试系统,包括交互式命令模块、测试层、业务层及核心层,其中,交互式命令模块与测试层、业务层及核心层均信息连接,用于接收用户的测试需求,并将用户的测试需求下发至测试层、业务层及核心层执行,测试层、业务层及核心层相互信息连接,其中,测试层用于基于用户的需要筛选测试用例,获取不同测试所需的数据源,并将所筛选的测试用例及所获取的数据源传递给核心层执行具体的测试;业务层用于提供核心层执行具体测试过程中涉及到的业务所需的接口,并基于测试层筛选的测试用例,提供通用业务流程的指定和顺序流转功能。
[0008]其中,所述交互式命令模块所能够实现的用户与测试层、业务层及核心层之间交
互功能包括:切换测试执行环境、获取筛选测试用例的参数、指定测试用例的根目录及指定测试并发运行的数量。
[0009]其中,所述测试层包括测试套件、测试用例模块及测试数据模块,其中,测试用例模块中包括多种不同的测试用例,用于基于不同的测试需要提供,各测试用例包括测试目的、测试执行环境、测试重要程度及测试步骤;测试套件与测试用例模块连接,用于根据不同的业务逻辑将多个测试用例组合为测试用例集,供核心层调度,以用于不同业务功能的测试;测试数据模块以插件形式存在,可从测试系统中抽离出来,用于提供每个具体的测试所需特定资源的数据,供核心层解析后传入实例化的测试用例集中。
[0010]其中,所述测试用例模块支持python的测试用例,也支持shell的测试用例;测试系统运行python时,通过标准库的subprocess模块fork一个子进程,并将shell测试用例作为外部程序运行以实现对shell的测试用例的支持。
[0011]其中,所述核心层包括测试驱动程序、测试执行器、公共库及日志报告生成模块,其中,测试驱动程序与测试执行器连接,用于基于不同的测试需要,挂载不同的测试驱动插件供测试执行器执行不同的自动化测试;测试执行器同时与公共库、测试套件、测试用例模块、测试数据模块及日志报告生成模块均连接,测试执行器在进行自动化测试前,分别从测试套件或测试用例模块,以及测试数据模块中获取具体的测试所需的测试用例集或测试用例,以及所需特定资源的数据,解析具体的测试所需特定资源的数据并传入实例化的测试用例;公共库用于通过其内包含的公用函数库为测试执行器提供所有测试都可调用的公共资源,该公共资源包括实现测试过程中通用操作的操作方法集;日志报告生成模块用于收集测试执行器在测试过程中产生的测试数据,并基于事先定义好的HTML模块,记录测试日志并生成测试报告。
[0012]其中,测试驱动程序所挂载的测试驱动插件包括UI自动化测试所需要的Selenium/WebDriver、接口测试所需要的Requests以及性能测试所需要的Locust库;公共库所提供的操作方法集包括测试前连接数据库的操作步骤及测试完成后的环境清理操作步骤。
[0013]其中,所述业务层包括业务抽象类模块、业务流程类模块以及业务验证逻辑模块,其中,业务抽象类模块、业务流程类模块以及业务验证逻辑模块均与核心层连接;业务抽象类模块用于提供给核心层执行具体测试过程中涉及到的业务所需的接口,使核心层能够在进行不同的测试时实现不同的业务功能;业务流程类模块及业务验证逻辑模块还同时与测试层连接,业务流程类模块用于基于测试层筛选的测试用例,提供通用业务流程的指定和顺序流转功能;业务验证逻辑模块用于对所筛选的测试用例涉及到的业务逻辑进行验证,并将验证结果记录在核心层的日志报告生成模块中。
[0014]其中,所述业务验证逻辑模块以插件形式存在,可从测试系统中抽离出来。本专利技术提供的基于python的支持全架构轻量自动化测试系统,既轻量部署简单化,又灵活定制可插拔,功能强大,可同时驱动python、shell测试用例,也能支持cgi、cli模式,维护成本低,
极大程度简化了国产异构平台,异构操作系统的复杂的适配问题。
附图说明
[0015]图1:本专利技术的基于python的支持全架构轻量自动化测试系统的技术构思图。
[0016]图2:本专利技术的基于python的支持全架构轻量自动化测试系统的逻辑框架图。
[0017]图3:基于本专利技术的基于python的支持全架构轻量自动化测试系统的一个自动化测试流程图。
具体实施方式
[0018]为了对本专利技术的技术方案及有益效果有更进一步的了解,下面结合附图详细说明本专利技术的技术方案及其产生的有益效果。
[0019]为了解决现有技术存在的不足,本专利技术的目的在于提出一种轻量、原生、灵活、可插拔的自动化测试框架,充分发挥Linux 平台原生python的能力,基于国产全架构支持python,依赖少、极大节省部署时间,无需解决平台适配问题,适用多个场景,既支持命令行工具,又支持RestAPI对外提供服务。
[0020]图1为本专利技术的基于python的支持全架构轻量自动化测试系统的技术构思图:本专利技术的基于python的支持全架构轻量自动化测试系统,可适用于飞腾、鲲鹏、龙芯、申威、海光、兆芯及intel/AMD等多种操作系统,本专利技术基于原生python运行环境设计,在原生本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于python的支持全架构轻量自动化测试系统,其特征在于,包括交互式命令模块、测试层、业务层及核心层,其中,交互式命令模块与测试层、业务层及核心层均信息连接,用于接收用户的测试需求,并将用户的测试需求下发至测试层、业务层及核心层执行,测试层、业务层及核心层相互信息连接,其中,测试层用于基于用户的需要筛选测试用例,获取不同测试所需的数据源,并将所筛选的测试用例及所获取的数据源传递给核心层执行具体的测试;业务层用于提供核心层执行具体测试过程中涉及到的业务所需的接口,并基于测试层筛选的测试用例,提供通用业务流程的指定和顺序流转功能。2.如权利要求1所述的基于python的支持全架构轻量自动化测试系统,其特征在于,所述交互式命令模块所能够实现的用户与测试层、业务层及核心层之间交互功能包括:切换测试执行环境、获取筛选测试用例的参数、指定测试用例的根目录及指定测试并发运行的数量。3.如权利要求1所述的基于python的支持全架构轻量自动化测试系统,其特征在于,所述测试层包括测试套件、测试用例模块及测试数据模块,其中,测试用例模块中包括多种不同的测试用例,用于基于不同的测试需要提供,各测试用例包括测试目的、测试执行环境、测试重要程度及测试步骤;测试套件与测试用例模块连接,用于根据不同的业务逻辑将多个测试用例组合为测试用例集,供核心层调度,以用于不同业务功能的测试;测试数据模块以插件形式存在,可从测试系统中抽离出来,用于提供每个具体的测试所需特定资源的数据,供核心层解析后传入实例化的测试用例集中。4.如权利要求3所述的基于python的支持全架构轻量自动化测试系统,其特征在于,所述测试用例模块支持python的测试用例,也支持shell的测试用例;测试系统运行python时,通过标准库的subprocess模块fork一个子进程,并将shell测试用例作为外部程序运行以实现对shell的测试用例的支持。5.如权利要求3所述的基于python的支持全架构轻量自动化测试系统,其特征在于,所述核心层包括测试驱动程序、测试执行器、公共库及日志...

【专利技术属性】
技术研发人员:张要辉苏文星张文艳杨烁
申请(专利权)人:先进操作系统创新中心天津有限公司
类型:发明
国别省市:

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

1