CN114328177A - 一种基于多语言k8s的自动化测试系统及其测试方法 - Google Patents

一种基于多语言k8s的自动化测试系统及其测试方法 Download PDF

Info

Publication number
CN114328177A
CN114328177A CN202111412898.XA CN202111412898A CN114328177A CN 114328177 A CN114328177 A CN 114328177A CN 202111412898 A CN202111412898 A CN 202111412898A CN 114328177 A CN114328177 A CN 114328177A
Authority
CN
China
Prior art keywords
test
automatic
script
scripts
execution
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
CN202111412898.XA
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.)
Shanghai Xinzhaoyang Information Technology Co ltd
Original Assignee
Shanghai Xinzhaoyang Information Technology 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 Shanghai Xinzhaoyang Information Technology Co ltd filed Critical Shanghai Xinzhaoyang Information Technology Co ltd
Priority to CN202111412898.XA priority Critical patent/CN114328177A/zh
Publication of CN114328177A publication Critical patent/CN114328177A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于多语言K8S的自动化测试系统及其测试方法,通过统一的脚本解析,分发和执行,统一资源和执行标准;利用Kubernetes弹性扩容的机制,使资源得到统一充分的利用。各个项目可以根据自身特点来选择自动化框架,整个的运行和资源的调度和结果统一由自动化模块完成。本套自动化系统通过自动解析测试脚本匹配上测试用例,方便非脚本开发人员执行用例,而不需要了解脚本的实现过程,通过统一的执行引擎驱动执行Jenkins模板来执行自动化用例,通过Jenkins的分发机制,来完成用例的分发到Kubernetes集群,自动创建实例完成自动化测试工作。

Description

一种基于多语言K8S的自动化测试系统及其测试方法
技术领域
本发明涉及自动化测试管理平台,具体涉及一种基于多语言K8S的自动化测试系统及其测试方法。
背景技术
随着客户对软件质量的要求越来越高,在研发过程中能快速的反馈产品的质量,为了提高测试效率自动化测试在软件研发过程中得到广泛的应用,都会基于某种特定语言采购或者开发一套自动化框架来提高测试效率,随着测试人员的增加,大家掌握的语言和自动化框架都不一样,对于自己不熟悉的语言或者框架很难快速应用到项目和工作中,需要一段时间的学习,如何降低这种学习成本并根据项目的特点选择自动化框架,并融入到整个自动化标准体系中。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Kubernetes简称K8s,是用8代替8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
发明内容
针对现有技术存在的问题,本发明提供一种基于多语言K8S的自动化测试系统及其测试方法,通过统一的脚本解析,分发和执行,统一资源和执行标准;利用Kubernetes弹性扩容的机制,使资源得到统一充分的利用。各个项目可以根据自身特点来选择自动化框架,整个的运行和资源的调度和结果统一由自动化模块完成。
本发明的技术方案是:一种基于多语言K8S的自动化测试系统,包括脚本解析模块、脚本运行模块、测试数据生成模块和脚本分发模块;
所述脚本解析模块用于从代码库中对多种自动化测试框架写的自动化脚本进行预编译,预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号,并保存到数据库中;让测试用例从手工执行变成自动化执行。
所述脚本运行模块用于在测试平台创建对应的测试计划时,通过测试计划包含的多个测试用例,查找对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板;
所述测试数据生成模块用于在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,把生成好的数据发送到共享存储OSS(运营支撑系统)中,供测试执行的时候使用;
所述脚本分发模块通过所述测试数据生成模块填充完被测试系统环境需要的配置数据,通过所述脚本运行模块查找需要执行的自动化测试框架执行模板后,调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
进一步的,所述脚本解析模块中,对多种测试框架写的自动化脚本进行预编译后,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。
进一步的,所述多种测试框架包括Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter测试框架。
进一步的,所述测试数据生成模块中,被测试系统环境所依赖的测试数据包括被测试系统环境的基础配置数据,用户名,密码,菜单项。
本发明还提供一种基于多语言K8S的自动化测试方法,具体步骤如下:
步骤1、脚本解析:从代码库中对多种自动化测试框架写的自动化脚本进行预编译,预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号,并保存到数据库中;
步骤2、运行脚本:
步骤21、通过测试平台创建对应的测试计划,在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,把生成好的数据发送到共享存储OSS(共享文件数据存储服务器)中,供测试执行的时候使用;
步骤22、测试计划包含多个测试用例,查找多个测试用例对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板;
步骤23、调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
进一步的,所述对多种测试框架写的自动化脚本进行预编译后,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。
进一步的,所述多种测试框架包括Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter测试框架。
进一步的,所述被测试系统环境所依赖的测试数据包括被测试系统环境的基础配置数据,用户名,密码,菜单项。
本发明的有益效果是:提供一种基于多语言K8S的自动化测试系统及其测试方法,通过统一的脚本解析,分发和执行,统一资源和执行标准;利用Kubernetes弹性扩容的机制,使资源得到统一充分的利用。各个项目可以根据自身特点来选择自动化框架,整个的运行和资源的调度和结果统一由自动化模块完成。
本套自动化系统通过自动解析测试脚本匹配上测试用例,方便非脚本开发人员执行用例,而不需要了解脚本的实现过程,通过统一的执行引擎驱动执行Jenkins模板来执行自动化用例,通过Jenkins的分发机制,来完成用例的分发到Kubernetes集群,自动创建实例完成自动化测试工作。
综上,本申请能够结合项目本身特点选择自动化框架,不局限特定自动化框架。通过自动化模块接入不同的自动化框架,统一规范和标准,平台化。非脚本编写人员能方便执行自动化脚本和查看结果。自动化资产测试数据统一管理和维护。通过Kubernetes实现资源统一调度和自动化测试机器利用率。
附图说明
图1为基于多语言K8S的自动化测试系统模块框图;
图2为解析脚本框图;
图3为在测试平台上展示用例和脚本关系图;
图4为运行脚本框图;
图5为通过测试平台创建测试计划,测试计划主要包含如下计划名称和测试的环境示意图;
图6为创建完测试计划后,选择需要的测试用例,点击用例运行调用自动化执行引擎执行用例,自动化引擎会调用Jenkins的开发接口创建任务运行用例示意图;
图7为用例执行过程中需要测试数据会调用对象存储的测试数据,执行测试用例,并把测试结果回填到测试平台,点击结果查看运行详情示意图。
具体实施方式
下面结合附图对本发明做进一步的说明。
如图1所示,基于多语言K8S的自动化测试系统,包括脚本解析模块、脚本运行模块、测试数据生成模块和脚本分发模块。
脚本解析模块:主要从代码库中对Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter等框架写的自动化脚本进行预编译,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号。让测试用例从手工执行变成自动化执行。
脚本运行模块:在测试平台创建对应的测试计划时,通过测试计划包含的多个测试用例,查找对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板。
测试数据生成模块:用于在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,主要包含被测试系统的基础配置数据,用户名,密码,菜单项等等,把生成好的数据发送到共享存储OSS(运营支撑系统)中,供测试执行的时候使用。
脚本分发模块:通过所述测试数据生成模块填充完被测试系统环境需要的配置数据,通过所述脚本运行模块查找需要执行的自动化测试框架执行模板后,调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
为实现上述功能,本平台使用步骤和一些技术细节如下:
1、解析脚本
如图2所示,从代码库中对Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter多种自动化测试框架写的自动化脚本进行预编译,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号,并保存到数据库中。具体的,解析后结果通过测试用例和测试脚本编号建立对应关系,在测试平台上展示用例和脚本关系,通过测试脚本编号查看脚本的详情。如图3所示。
2、运行脚本具体如图4所示
步骤一:如图5所示,通过测试平台创建测试计划,测试计划主要包含如下计划名称和测试的环境:在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,把生成好的数据发送到共享存储OSS(运营支撑系统)中,供测试执行的时候使用。
步骤二:如图6所述,创建完测试计划后,选择需要的测试用例,点击用例运行调用脚本运行模块执行用例。所述脚本运行模块用于在测试平台创建对应的测试计划时,通过测试计划包含的多个测试用例,查找对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板;调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中。
步骤三:如图7所示,用例执行过程中需要测试数据会调用对象存储的测试数据,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
本申请通过统一的脚本解析,分发和执行,统一资源和执行标准;利用Kubernetes弹性扩容的机制,使资源得到统一充分的利用。各个项目可以根据自身特点来选择自动化框架,整个的运行和资源的调度和结果统一由自动化模块完成。
本套自动化系统通过自动解析测试脚本匹配上测试用例,方便非脚本开发人员执行用例,而不需要了解脚本的实现过程,通过统一的执行引擎驱动执行Jenkins模板来执行自动化用例,通过Jenkins的分发机制,来完成用例的分发到Kubernetes集群,自动创建实例完成自动化测试工作。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种基于多语言K8S的自动化测试系统,其特征在于:包括脚本解析模块、脚本运行模块、测试数据生成模块和脚本分发模块;
所述脚本解析模块用于从代码库中对多种自动化测试框架写的自动化脚本进行预编译,预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号,并保存到数据库中;
所述脚本运行模块用于在测试平台创建对应的测试计划时,通过测试计划包含的多个测试用例,查找对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板;
所述测试数据生成模块用于在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,把生成好的数据发送到共享存储OSS中,供测试执行的时候使用;
所述脚本分发模块通过所述测试数据生成模块填充完被测试系统环境需要的配置数据,通过所述脚本运行模块查找需要执行的自动化测试框架执行模板后,调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
2.根据权利要求1所述的一种基于多语言K8S的自动化测试系统,其特征在于:所述脚本解析模块中,对多种测试框架写的自动化脚本进行预编译后,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。
3.根据权利要求1所述的一种基于多语言K8S的自动化测试系统,其特征在于:所述多种测试框架包括Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter测试框架。
4.根据权利要求1所述的一种基于多语言K8S的自动化测试系统,其特征在于:所述测试数据生成模块中,被测试系统环境所依赖的测试数据包括被测试系统环境的基础配置数据,用户名,密码,菜单项。
5.一种基于多语言K8S的自动化测试方法,其特征在于:具体步骤如下:
步骤1、脚本解析:从代码库中对多种自动化测试框架写的自动化脚本进行预编译,预编译通过后解析自动化脚本和测试用例的关系,将一个测试用例关联一个自动化脚本的测试脚本编号;
步骤2、运行脚本:
步骤21、通过测试平台创建对应的测试计划,在创建测试计划的时候,选择需要测试的系统环境,根据测试计划中设置的系统环境,获取被测试系统环境所依赖的测试数据,对所依赖的测试数据进行数据初始化,把生成好的数据发送到共享存储OSS中,供测试执行的时候使用;
步骤22、测试计划包含多个测试用例,查找多个测试用例对应的测试脚本编号,根据测试脚本编号关联的测试脚本类型,查找对应的自动化测试框架执行模板,驱动执行自动化测试框架执行模板;
步骤23、调用Jenkins开发接口根据生成好的多个自动化测试框架执行模板一一对应创建多个任务,通过预植入的yaml文件生成同样多个Kubernetes的实例,实例创建完成后,发放自动化测试框架执行模板对应的自动化脚本到Kubernetes实例中,执行测试脚本,把测试结果通过测试平台提供的接口回填到测试用例;测试人员在测试平台上就能看到测试执行结果;并发送测试结果邮件给相关人员,执行结束后通过Kubernetes自动释放测试资源,供其他实例使用。
6.根据权利要求5所述的一种基于多语言K8S的自动化测试方法其特征在于:所述对多种测试框架写的自动化脚本进行预编译后,检查自动化脚本是否有编译错误,预编译不通过,发送邮件给对应的测试人员,修改脚本。
7.根据权利要求5所述的一种基于多语言K8S的自动化测试方法其特征在于:所述多种测试框架包括Pytest、Junit、TestNG、Rotbot Framework、Cucumber、Cypress、Jmeter测试框架。
8.根据权利要求5所述的一种基于多语言K8S的自动化测试方法其特征在于:所述被测试系统环境所依赖的测试数据包括被测试系统环境的基础配置数据,用户名,密码,菜单项。
CN202111412898.XA 2021-11-25 2021-11-25 一种基于多语言k8s的自动化测试系统及其测试方法 Pending CN114328177A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111412898.XA CN114328177A (zh) 2021-11-25 2021-11-25 一种基于多语言k8s的自动化测试系统及其测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111412898.XA CN114328177A (zh) 2021-11-25 2021-11-25 一种基于多语言k8s的自动化测试系统及其测试方法

Publications (1)

Publication Number Publication Date
CN114328177A true CN114328177A (zh) 2022-04-12

Family

ID=81046936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111412898.XA Pending CN114328177A (zh) 2021-11-25 2021-11-25 一种基于多语言k8s的自动化测试系统及其测试方法

Country Status (1)

Country Link
CN (1) CN114328177A (zh)

Similar Documents

Publication Publication Date Title
US10162612B2 (en) Method and apparatus for inventory analysis
EP3769223B1 (en) Unified test automation system
US10430319B1 (en) Systems and methods for automatic software testing
US9792203B2 (en) Isolated testing of distributed development projects
US10360141B2 (en) Automated application test system
US7490319B2 (en) Testing tool comprising an automated multidimensional traceability matrix for implementing and validating complex software systems
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US7512933B1 (en) Method and system for associating logs and traces to test cases
US7926024B2 (en) Method and apparatus for managing complex processes
CN110321281A (zh) 基于混合自动化测试框架的Web测试平台及测试方法
EP2572294B1 (en) System and method for sql performance assurance services
US20060230319A1 (en) Automated migration of software instructions
CN102693183A (zh) 一种实现软件自动化测试的方法及系统
CN110928783A (zh) 基于RobotFramework自动化测试数据化改造的平台
CN111708706A (zh) 工业互联网app自动化测试系统和测试方法
Wahler et al. CAST: Automating software tests for embedded systems
CN114818565A (zh) 基于python的仿真环境管理平台、方法、设备及介质
Helfen et al. Testing SAP solutions
CN112181852A (zh) 一种接口自动化测试方法、装置、计算机设备及存储介质
EP2913757A1 (en) Method, system, and computer software product for test automation
CN113342679A (zh) 接口测试方法及测试装置
CN112435072A (zh) 一种模型创建方法、装置、电子设备及存储介质
CN112016256A (zh) 一种集成电路开发平台、方法、存储介质及设备
Sun et al. A web testing platform based on hybrid automated testing framework
CN114328177A (zh) 一种基于多语言k8s的自动化测试系统及其测试方法

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