CN113609015A - 一种基于Bash Shell的自动化测试框架 - Google Patents

一种基于Bash Shell的自动化测试框架 Download PDF

Info

Publication number
CN113609015A
CN113609015A CN202110895333.5A CN202110895333A CN113609015A CN 113609015 A CN113609015 A CN 113609015A CN 202110895333 A CN202110895333 A CN 202110895333A CN 113609015 A CN113609015 A CN 113609015A
Authority
CN
China
Prior art keywords
layer
test
case
component
scheduling
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.)
Pending
Application number
CN202110895333.5A
Other languages
English (en)
Inventor
张勇军
李斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Advanced Operating System Innovation Center Tianjin Co ltd
Original Assignee
Advanced Operating System Innovation Center Tianjin Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Advanced Operating System Innovation Center Tianjin Co ltd filed Critical Advanced Operating System Innovation Center Tianjin Co ltd
Priority to CN202110895333.5A priority Critical patent/CN113609015A/zh
Publication of CN113609015A publication Critical patent/CN113609015A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种基于Bash Shell的自动化测试框架,包括:用例组织层,用于存储测试用例脚本以及定义测试用例脚本结构;执行调度层,用于调度和执行用例;所述执行调度层与所述用例组织层连接;底层组件层,用于定义和封装框架方法函数;所述底层组件层与所述执行调度层连接;数据收集层,用于在测试过程中记录和生成测试结果和日志信息;所述数据收集层分别与所述用例组织层、所述执行调度层和所述底层组件层连接。本发明提供了一种轻量型、灵活便捷的设计方案,省去了框架部署的时间,无需解决平台适配问题,同时提供了自动化框架的整合能力,测试人员只需要关注测试脚本的开发即可,测试完成后统计测试结果,节约了人工成本,大大提高了自动化测试的效率。

Description

一种基于Bash Shell的自动化测试框架
技术领域
本发明属于自动化测试技术领域,具体涉及一种基于Bash Shell的自动化测试框架。
背景技术
随着国产操作系统的不断发展,比如发展迅猛的麒麟操作系统,其不仅涉及了服务器操作系统、桌面操作系统、嵌入式操作系统、麒麟云等产品,同时还支持飞腾、龙芯、申威、兆芯、海光、鲲鹏等国产CPU。面对市场的竞争,为了给用户提供更好的产品,每次产品迭代都需要投入大量的人力在不同Linux发行版、不同产品系和不同架构上进行回归测试,测试任务极重。
现实中,因为是基于操作系统层级的测试,测试人员会选择使用shell开发一些脚本实现部分自动化,零散或者单一脚本并不能有效提升效率和完成测试管理的工作,急需要一种成熟的、可重用的自动化测试框架,以解决代码的组织及运行控制问题,辅助完成测试任务的执行、测试管理和测试统计。
市面上较为成熟的自动化框架大都基于java、Python语言,如Junit、Pytest等,它们提供了完善的框架能力,但对运行环境具有依赖性,搭建步骤繁琐,缺乏灵活性;更重要的是对于linux操作系统来说,这些框架或语言都存在适配问题,一旦引入,随着操作系统的不断升级,需要不断地解决框架或语言带来的适配问题,导致测试人员无法将全部时间都集中在开发测试脚本上,自动化效率不高。也有一些基于shell实现的框架,如BaseShell,更像一套工具库而非框架。在这种情况下,一款部署简单、不存在适配问题、又具有成熟框架能力的自动化测试框架成为迫切需要解决的问题。
现有技术存在以下缺点:
(1)框架部署过程繁琐,不能直接使用,往往需要根据当前设备情况解决一些部署中的问题;
(2)对于linux操作系统来说,框架也属于第三方应用,随着操作系统不断升级,每次都要先解决框架带来的适配问题;而测试人员最直接的需求是开发/转化测试用例,而不是消耗大量时间在解决框架适配问题上。
一些基于shell的框架有以下问题:
(1)框架能力弱,如执行调度、日志能力、报告统计与发送邮件功能提供不完善或者未提供,不能帮助测试人员便捷、高效的进行自动化的测试管理与统计工作;
(2)代码结构设计上较弱,代码复用率不高,自动化测试用例开发效率慢。
发明内容
为解决上述问题,本发明提供了一种基于Bash Shell的自动化测试框架,包括:
用例组织层,用于存储测试用例脚本以及定义测试用例脚本结构;
执行调度层,用于调度和执行用例;所述执行调度层与所述用例组织层连接;
底层组件层,用于定义和封装框架方法函数;所述底层组件层与所述执行调度层连接;
数据收集层,用于在测试过程中记录和生成测试结果和日志信息;所述数据收集层分别与所述用例组织层、所述执行调度层和所述底层组件层连接。
优选地,所述用例组织层包括:标签设置、前置处理、用例步骤和后置处理。
优选地,所述执行调度层包括:指令解析、用例集构建和用例执行。
优选地,所述底层组件层包括:调度组件、日志组件、报告组件、邮件组件和公共基础库。
优选地,所述数据收集层包括:测试日志收集和测试结果收集。
优选地,所述公共基础库包括:网络检查、断言、时间戳、文件转换和环境恢复。
本申请提供的一种基于Bash Shell的自动化测试框架具有如下有益效果:
本发明提供的一种基于Bash Shell的自动化测试框架,提供了一种轻量型、灵活便捷的设计方案,充分发挥linux平台上shell的能力;省去了框架部署的时间,无需解决平台适配问题,同时提供了自动化框架的整合能力,测试人员只需要关注测试脚本的开发即可,框架会进行组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,节约了人工成本,大大提高了自动化测试的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于Bash Shell的自动化测试框架的整体示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1,在本申请实施例中,本发明提供了一种基于Bash Shell的自动化测试框架,包括:
用例组织层,用于存储测试用例脚本以及定义测试用例脚本结构;
执行调度层,用于调度和执行用例;所述执行调度层与所述用例组织层连接;
底层组件层,用于定义和封装框架方法函数;所述底层组件层与所述执行调度层连接;
数据收集层,用于在测试过程中记录和生成测试结果和日志信息;所述数据收集层分别与所述用例组织层、所述执行调度层和所述底层组件层连接。
在本申请实施例中,本发明的总体方案在技术实现上分为以下几个部分:
框架部署简单化:旨在拉取框架代码即完成部署,若需要其他能力,也遵循优先使用Linux系统公有源的库或工具的原则。
框架能力高效化:结合管理执行类框架所具备能力(组织、管理、执行、结果统计与展示),采用分层设计的思想,在结构上共设计了4层,内容如下:
用例组织层,用于测试用例脚本的存储。
执行调度层,用于测试用例的调度与执行。
基础组件层,用于基础库的封装,以及组件的开发如:调度组件、日志组件、报告组件、邮件组件。
数据收集层,用户测试日志的收集与测试结果的统计。
兼容适配最大化:选用Linux系统的缺省语言Shell进行开发,在Linux系统各种发行版上、各种不同架构上,几乎不存在适配问题。
如图1,在本申请实施例中,所述用例组织层包括:标签设置、前置处理、用例步骤和后置处理。
在本申请实施例中,用例组织层用于存储测试用例脚本,定义测试用例脚本结构,包括标签设置、前置处理、用例步骤、后置处理。用例脚本结构中,用例标签为每个测试用例的固有属性,表征测试用例的优先级和模块功能,在开发脚本时需要优先定义,脚本可定义多个标签内容;用例脚本前置处理,用于参数设置、前置软件安装等脚本运行前环境准备;用例步骤定义功能测试步骤、执行及断言;用例后置处理,进行测试后环境恢复。测试脚本按照定义的脚本结构设计实现,每个脚本的运行都需通过执行调度层识别脚本标签,进行用例的调度和执行。
如图1,在本申请实施例中,所述执行调度层包括:指令解析、用例集构建和用例执行。
在本申请实施例中,执行调度层用于用例调度和执行,确定测试用例的执行顺序、执行规则;包括用户指令解析,用例集构建和用例执行。流程调度层控制整个测试流程及每个测试脚本的执行,并提供具有总调度功能的入口文件,用于与用户终端进行交互,根据用户终端输入指令进行测试用例总调度与执行。本调度层通过解析用户指令,根据指令定义规则及用例组织层中脚本设置的用例标签,获取待测试用例集,执行全部测试用例。此外,执行调度层可设置多层级、多维度的测试用例执行规则,支持不同测试集级、用例级的定制化扩展,并针对脚本的异常运行进行处理。包括:多层级:执行调度层支持执行测试集的全部用例、部分用例、单个用例,构建待测用例集的测试任务;多维度:执行调度层支持根据用例脚本的标签信息,进行用例调度和执行。支持单个标签、多个标签与(A AND B)、多个标签或(A OR B)、多个标签非(A NOT B)的用例集级,按照用例标签获取用例集并构建测试任务;异常处理:执行调度层实时监控脚本运行情况,脚本运行异常时进行后台杀进程操作,由数据收集层收集异常运行结果及日志,进行测试环境恢复,进行下一用例的执行。
如图1,在本申请实施例中,所述底层组件层包括:调度组件、日志组件、报告组件、邮件组件和公共基础库。
在本申请实施例中,底层组件层用于定义并封装框架方法函数,作为框架统一接口,方便进行框架和用例脚本的扩展。按实现功能分为多个组件,主要包括公共基础库、调度组件、日志组件、报告组件、邮件组件。
在本申请实施例中,公共基础库封装框架公用的方法函数,例如网络检查状态的方法函数、脚本运行断言方法函数、时间戳处理方法函数、文件格式转换方法函数、系统备份还原方法函数、ssh远程交互方法函数、软件的安装卸载检查等公共方法函数。调度组件用于解析用户终端指令、按照定义指令规则获取待测试用例集、执行用例;例如指令解析方法函数、获取测试用例集方法函数、用例执行方法函数、用例执行数量及结果统计方法函数等。日志组件用于设置日志级别,并根据配置的全局日志级别记录日志;例如:日志级别初始化定义方法函数、定义日志内容输出内容及格式的方法函数、日志级别记录日志的方法函数等。报告组件用于生成测试报告;包括定义报告内容格式的方法函数、生成表格格式报告的方法函数、生成html报告的方法函数等。邮件组件用于将测试报告、测试日志进行邮件发送。例如:邮件服务器配置方法函数、邮件内容定义方法函数、邮件发送方法函数等。
如图1,在本申请实施例中,所述数据收集层包括:测试日志收集和测试结果收集。
在本申请实施例中,数据收集层用于在测试过程中记录和生成测试结果和日志信息。测试过程中,数据收集层会实时收集和记录日志信息,将日志信息按照日期、类型、优先级进行保存,输出框架级运行日志和用例级运行日志,便于分析和定位问题。收集并记录脚本运行结果数据,按照报告生成规则和格式进行分类汇总,生成测试报告,通过邮件发送。
如图1,在本申请实施例中,所述公共基础库包括:网络检查、断言、时间戳、文件转换和环境恢复等公共方法。
本发明提供的一种基于Bash Shell的自动化测试框架,提供了一种轻量型、灵活便捷的设计方案,充分发挥linux平台上shell的能力;省去了框架部署的时间,无需解决平台适配问题,同时提供了自动化框架的整合能力,测试人员只需要关注测试脚本的开发即可,框架会进行组织、管理和执行那些独立的自动化测试用例,测试完成后统计测试结果,节约了人工成本,大大提高了自动化测试的效率。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

Claims (6)

1.一种基于Bash Shell的自动化测试框架,其特征在于,包括:
用例组织层,用于存储测试用例脚本以及定义测试用例脚本结构;
执行调度层,用于调度和执行用例;所述执行调度层与所述用例组织层连接;
底层组件层,用于定义和封装框架方法函数;所述底层组件层与所述执行调度层连接;
数据收集层,用于在测试过程中记录和生成测试结果和日志信息;所述数据收集层分别与所述用例组织层、所述执行调度层和所述底层组件层连接。
2.根据权利要求1所述的基于Bash Shell的自动化测试框架,其特征在于,所述用例组织层包括:标签设置、前置处理、用例步骤和后置处理。
3.根据权利要求1所述的基于Bash Shell的自动化测试框架,其特征在于,所述执行调度层包括:指令解析、用例集构建和用例执行。
4.根据权利要求1所述的基于Bash Shell的自动化测试框架,其特征在于,所述底层组件层包括:调度组件、日志组件、报告组件、邮件组件和公共基础库。
5.根据权利要求1所述的基于Bash Shell的自动化测试框架,其特征在于,所述数据收集层包括:测试日志收集和测试结果收集。
6.根据权利要求4所述的基于Bash Shell的自动化测试框架,其特征在于,所述公共基础库包括:网络检查、断言、时间戳、文件转换和环境恢复。
CN202110895333.5A 2021-08-05 2021-08-05 一种基于Bash Shell的自动化测试框架 Pending CN113609015A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110895333.5A CN113609015A (zh) 2021-08-05 2021-08-05 一种基于Bash Shell的自动化测试框架

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110895333.5A CN113609015A (zh) 2021-08-05 2021-08-05 一种基于Bash Shell的自动化测试框架

Publications (1)

Publication Number Publication Date
CN113609015A true CN113609015A (zh) 2021-11-05

Family

ID=78306980

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110895333.5A Pending CN113609015A (zh) 2021-08-05 2021-08-05 一种基于Bash Shell的自动化测试框架

Country Status (1)

Country Link
CN (1) CN113609015A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234944A (zh) * 2023-11-09 2023-12-15 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622234A (zh) * 2012-03-07 2012-08-01 迈普通信技术股份有限公司 一种自动化测试用例的开发系统及开发方法
CN109614337A (zh) * 2018-12-24 2019-04-12 普华基础软件股份有限公司 一种基于linux系统的性能测试系统及测试工具
CN110399299A (zh) * 2019-07-17 2019-11-01 深圳证券交易所 自动化测试框架和测试用例的执行方法
CN111881056A (zh) * 2020-08-06 2020-11-03 泰山信息科技有限公司 一种自动化测试框架及测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622234A (zh) * 2012-03-07 2012-08-01 迈普通信技术股份有限公司 一种自动化测试用例的开发系统及开发方法
CN109614337A (zh) * 2018-12-24 2019-04-12 普华基础软件股份有限公司 一种基于linux系统的性能测试系统及测试工具
CN110399299A (zh) * 2019-07-17 2019-11-01 深圳证券交易所 自动化测试框架和测试用例的执行方法
CN111881056A (zh) * 2020-08-06 2020-11-03 泰山信息科技有限公司 一种自动化测试框架及测试方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117234944A (zh) * 2023-11-09 2023-12-15 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法
CN117234944B (zh) * 2023-11-09 2024-01-30 天津华来科技股份有限公司 一种基于pytest的接口自动化测试方法

Similar Documents

Publication Publication Date Title
CN109947746B (zh) 一种基于etl流程的数据质量管控方法和系统
CN110232024B (zh) 软件自动化测试框架及测试方法
CN110321152B (zh) 一种软件开发平台
US11099820B2 (en) Reconfiguring application software into microservice architecture
CN110764753B (zh) 一种业务逻辑代码生成方法、装置、设备及存储介质
EP3798846A1 (en) Operation and maintenance system and method
CN111047190A (zh) 一种基于交互式学习技术的多元化业务建模框架系统
CN103150249B (zh) 一种自动化测试的方法和系统
US9697104B2 (en) End-to end tracing and logging
US8826239B2 (en) Asynchronous code testing in integrated development environment (IDE)
CN111309609B (zh) 软件处理系统
WO2021097824A1 (zh) 一种代码质量和缺陷的分析方法、服务器及存储介质
CN111625230A (zh) 一种统一前端JavaScript编码规范的系统
CN110245077A (zh) 一种程序异常的响应方法及设备
CN110351131B (zh) 一种用于分布式链路的监控方法、装置和电子设备
CN115664939A (zh) 一种基于自动化技术的综合运维方法、装置和存储介质
CN115374595A (zh) 一种基于过程挖掘的自动化软件过程建模方法及系统
CN113609015A (zh) 一种基于Bash Shell的自动化测试框架
CN110928796A (zh) 一种自动化测试平台
CN111752806A (zh) 一种云环境下虚拟磁盘io指标采集的方法
CN115757045A (zh) 一种交易日志分析方法、系统及装置
US20220398185A1 (en) Self-optimizing analysis system for core dumps
CN109032928A (zh) 嵌入式软件构件监测方法
CN114661571A (zh) 模型评测方法、装置、电子设备和存储介质
CN113031969A (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