CN110515848B - 自动化测试系统与自动化测试方法 - Google Patents

自动化测试系统与自动化测试方法 Download PDF

Info

Publication number
CN110515848B
CN110515848B CN201910806466.3A CN201910806466A CN110515848B CN 110515848 B CN110515848 B CN 110515848B CN 201910806466 A CN201910806466 A CN 201910806466A CN 110515848 B CN110515848 B CN 110515848B
Authority
CN
China
Prior art keywords
test
layer
different types
cases
test case
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
Application number
CN201910806466.3A
Other languages
English (en)
Other versions
CN110515848A (zh
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.)
Xingyin Information Technology Shanghai Co ltd
Original Assignee
Xingyin Information Technology Shanghai 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 Xingyin Information Technology Shanghai Co ltd filed Critical Xingyin Information Technology Shanghai Co ltd
Priority to CN201910806466.3A priority Critical patent/CN110515848B/zh
Publication of CN110515848A publication Critical patent/CN110515848A/zh
Application granted granted Critical
Publication of CN110515848B publication Critical patent/CN110515848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/3688Test management for test execution, e.g. scheduling of test suites
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

本发明提供了自动化测试系统与自动化测试方法,其中,自动化测试系统采用Hydra架构,包括:基础框架层、能力提供层、框架接入层、应用层与测试用例层;基础框架层,用于通过动态语言接口接入不同的动态语言;能力提供层,用于提供能力集,能力集中包括至少一种基础能力;框架接入层,用于提供不同类型的测试框架;其中,不同类型的测试框架用于执行不同类型的测试用例,不同类型的测试框架之间可通过统一上下文服务进行交互;应用层,用于提供预制的自动化库,来与被测对象进行交互;测试用例层,用于获取不同类型的测试用例。本发明的技术方案,充分降低了自动化测试的复杂度,提高了自动化测试的便利性,从而也提高了自动化测试效率。

Description

自动化测试系统与自动化测试方法
技术领域
本发明涉及自动化测试技术领域,更具体的说,涉及自动化测试系统与自动化测试方法。
背景技术
在现代软件开发流程中,自动化测试已成为其中必不可少的一个环节。通过自动化测试过程,可以很大程度地节省人力成本、时间成本和硬件资源,提高测试效率,并能尽早地发现软件设计和软件实现中存在的缺陷。
现有的自动化测试框架更偏重于一个领域如接口自动化或者UI自动化,基于关键字驱动的自动化测试框架或者行为驱动的自动化测试框架又通常缺少对不同领域的支持,仍旧需要测试人员从头开始集成其他框架。同时为了能够复用开发的资产,考虑到语言上面的一致性,现有的python的测试架构难以直接复用java的工具包,而纯java的框架需要测试人员具备较强的编码能力。可见,现有的自动化测试方案,实施起来较为复杂,便利性较差,不仅会导致用户的学习成本与使用成本较高,而且也会严重影响自动化测试的效率。
因此,目前迫切需要一种简单、便利的自动化测试方案,以降低用户的学习成本与使用成本,提高自动化测试效率。
发明内容
有鉴于此,本发明提供了一种自动化测试方法及系统,以解决目前自动化测试方案复杂度较高,便利性较差的技术问题。
为实现上述目的,本发明提供如下技术方案:
一种自动化测试系统,采用Hydra架构;所述系统包括:基础框架层、能力提供层、框架接入层、应用层与测试用例层;
所述基础框架层,用于通过动态语言接口接入不同的动态语言;
所述能力提供层,用于提供能力集,所述能力集中包括至少一种基础能力;
所述框架接入层,用于提供不同类型的测试框架;其中,所述不同类型的测试框架用于执行不同类型的测试用例,所述不同类型的测试框架之间可通过统一上下文服务进行交互;
所述应用层,用于提供预制的自动化库,来与被测对象进行交互;
所述测试用例层,用于获取不同类型的测试用例。
优选的,所述不同的动态语言至少包括:JavaScript语言与Jython语言。
优选的,所述至少一种基础能力包括:数据库访问、接口调用封装、模板引擎与第三方工具包中的至少一种。
优选的,所述不同类型的测试框架包括:Jasmine测试框架、Cucumber-jvm测试框架、PyTest测试框架与TestNg测试框架中的至少两种。
优选的,所述预制的自动化库中封装有:WebDriver协议、Appium协议、Restful协议与Thrift协议中的至少一种。
优选的,所述不同类型的测试用例包括:基于Jasmine的测试用例、基于Cucumber的测试用例、基于Jython PyTest的测试用例与基于TestNG的测试用例中的至少两种。
优选的,Hydra在架构层面,为各个测试用例提供统一配置管理、统一日志管理、统一上下文管理与统一报告管理。
一种自动化测试方法,应用于前面所述的自动化测试系统;所述方法包括:
获取测试用例集;所述测试用例集中包括至少一种类型的测试用例;
根据所述测试用例集中测试用例的类型,构建相应的测试执行器;
利用所述测试执行器,执行相应的测试用例,得到相应的测试结果;
根据所述测试用例集中所有测试用例的测试结果,生成统一的测试报告。
优选的,当所述测试用例集中包括不同类型的测试用例时,所述根据所述测试用例集中测试用例的类型,构建相应的测试执行器包括:
根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器。
优选的,在所述根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器之后,所述方法还包括:
当所述不同的测试执行器之间需要进行交互时,调用所述统一上下文服务;
指示所述不同的测试执行器,通过所述统一上下文服务来进行交互。
从上述的技术方案可以看出,本发明提供的自动化测试系统与自动化测试方法中,自动化测试系统通过基础框架层实现了对不同动态语言的接入支持,并通过框架接入层提供了不同类型的测试框架,来支持不同类型的测试用例,其中,不同类型的测试框架之间可以共存并能够通过统一上下文服务来进行交互,从而使得测试用例开发者完全可以采用自己最熟悉的脚本语言来开发测试用例,而无须局限于采用某一种特定测试框架所对应的脚本语言来进行开发,也无需根据测试需求从头开始集成其他框架,更无需测试人员具备极强的编码能力,从而降低了自动化测试的复杂度,降低了测试用户的学习成本与使用成本,提高了自动化测试的便利性,进而提高了自动化测试的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的自动化测试系统的基本架构图;
图2为本发明实施例提供的自动化测试系统的具体架构图;
图3为本发明实施例提供的自动化测试方法的流程图;
图4为本发明实施例提供的自动化测试过程的交互图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明基于Hydra搭建的自动化测试平台,可以很容易地将业务测试的测试场景、已有的测试代码与第三方的测试框架相融合,并提供给业务测试一个可以开箱即用(无需安装与设置)的环境。通过Hydra,测试人员可以快速编写包括接口、操作系统命令以及UI层面的自动化测试用例,并能在一个统一的持续集成环境下管理和执行测试用例。
请参阅图1,图1为本发明实施例提供的自动化测试系统的基本架构图。
本实施例提供的自动化测试系统,采用了Hydra架构来实现。
如图1所示,本实施例提供的Hydra架构的自动化测试系统中,至少可包括基础框架层10、能力提供层20、框架接入层30、应用层40与测试用例层50。
基础框架层10,用于通过动态语言接口接入不同的动态语言,来实现自动化测试系统对不同动态语言的支持。
能力提供层20,用于提供能力集,所述能力集中包括至少一种基础能力。
框架接入层30,用于提供不同类型的测试框架。
其中,不同类型的测试框架用于执行不同类型的测试用例,不同类型的测试框架之间可通过统一上下文服务进行交互。
应用层40,用于提供预制的自动化库,来与被测对象(也即被测系统)进行交互。
测试用例层50,用于获取不同类型的测试用例。其中,测试用例的类型需要与测试框架的类型相对应。
本实施例提供的自动化测试系统,通过基础框架层实现了对不同动态语言的接入支持,并通过框架接入层提供了不同类型的测试框架,来支持不同类型的测试用例,其中,不同类型的测试框架之间可以共存并能够通过统一上下文服务来进行交互,从而使得测试用例开发者完全可以采用自己最熟悉的脚本语言来开发测试用例,而无须局限于采用某一种特定测试框架所对应的脚本语言来进行开发,也无需根据测试需求从头开始集成其他框架,更无需测试人员具备极强的编码能力,从而降低了自动化测试的复杂度,也降低了测试用户的学习成本与使用成本,提高了自动化测试的便利性,进而也提高了自动化测试的效率。
请参阅图2,图2为本发明实施例提供的自动化测试系统的具体架构图。
如图2所示,自动化测试系统的Hydra架构中,通过基础框架层的动态语言接口,可接入的不同的动态语言至少可包括:JavaScript语言与Jython语言。
其中,JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。
Jython是一种完整的语言,而不是一个Java翻译器或仅仅是一个Python编译器,它是一个Python语言在Java中的完全实现。
整体Hydra架构的主体是一个java进程,其通过动态语言接口可接入JavaScript、Jython等动态语言。
在基础框架层中,还包括Nashorn引擎。Nashorn引擎是Java SE 8的一部分,Nashorn引擎扩展了Java在JVM(JavaVirtualMachine,java虚拟机)上运行动态JavaScript脚本的能力。
在基础框架层中,Nashorn引擎以及Jython动态语言均可构建于JVM之上。
在能力提供层提供的能力集中所具有的至少一种基础能力可包括:数据库访问、接口调用封装、模板引擎与第三方工具包中的至少一种。
在Hydra架构中,一些基础能力被打包集成进来,从而提供了这种开箱即用的能力集,在该能力集中可包括并不限于:数据库访问(如MySQL、Redis)、http请求和rpc(RemoteProcedure Call,远程过程调用)接口调用、模板引擎等。进一步讲,能力提供层可以提供所有第三方能力集。
其中,MySQL是一个关系型数据库管理系统。
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API(Application Programming Interface,应用程序编程接口)。
并且,在自动化测试系统中,Hydra在架构层面,还为各个测试用例提供统一配置管理、统一日志管理、统一上下文管理与统一报告管理。
在框架接入层中所提供的不同类型的测试框架,具体可包括:Jasmine测试框架、Cucumber-jvm测试框架、PyTest测试框架与TestNg测试框架中的至少两种。Hydra在上层框架中封装了Jasmine、Cucumber、PyTest和TestNG等核心组件的支持,让这些测试框架的测试代码可以跨测试用例来通过统一上下文服务进行交互。
其中,Jasmine是一个用来编写Javascript测试的框架,它不依赖于任何其它的JavaScript框架。
Cucumber是一个能够理解用普通语言描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。
PyTest是基于python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。
TestNG是Java中的一个测试框架,能够很好地适用于自动化测试场景。
在应用层所提供的预制的自动化库中可以封装有:WebDriver协议、Appium协议、Restful协议与Thrift协议中的至少一种。例如,在自动化库的支持上,Hydra对WebDriver、Appium、Restful和Thrift协议进行了封装,测试用例开发者可以以自己熟悉的方式,使用这些预制的自动化库来对被测对象进行交互。
其中,WebDriver是一个干净、快速的自动测试web应用程序的框架。
Restful是一种软件架构风格、设计风格,而不是标准,Restful提供了一组设计原则和约束条件,基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。
Appium是一个自动化测试开源工具,也是一个跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。
Thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。Thrift允许定义一个简单的定义文件中的数据类型和服务接口,以作为输入文件。
测试用例层能够支持不同类型的测试用例,这些不同类型的测试用例可包括:基于Jasmine的测试用例(Jasmine Testcases)、基于Cucumber的测试用例(CucumberTestcases)、基于Jython PyTest的测试用例(Jython Testcases)与基于TestNG的测试用例(TestNG Testcases)中的至少两种(即多种)。也就是说,每个Hydra的测试用例,可以是一个基于JavaScript的Jasmine脚本,可以是一个Cucumber的测试场景,也可以是一个TestNG的单元测试用例,还可以是一个PyTest的Jython脚本,而这些脚本都可以以同样的方式引用和使用下层提供的自动化库和能力集。
本实施例的自动化测试系统,提供了一种具体化的Hydra架构,通过基础框架层实现了对JavaScript语言与Jython语言的接入支持,并通过框架接入层提供了Jasmine测试框架、Cucumber-jvm测试框架、PyTest测试框架与TestNg测试框架,来支持相应类型的测试用例,其中,不同类型的测试框架之间可以共存并能够通过统一上下文服务来进行交互,使得测试用例开发者完全可以采用自己最熟悉的脚本语言来开发测试用例,而并不局限于采用某一种特定测试框架所对应的脚本语言来开发,从而降低了自动化测试的复杂度,降低了测试用户的学习成本与使用成本,提高了自动化测试的便利性,进而提高了自动化测试的效率。
Hydra的特性是通过构建在JVM上的动态语言(例如JavaScript、Jython)来获得容易的用例编写的能力,同时又能共享开发提供的底层工具代码。在框架层面,Hydra对上层测试框架提供了统一的测试用例粒度定义、测试结果上报和汇总、测试用例管理和批量执行以及统一的上下文和日志的能力。让不同的上层框架的测试代码之间可以通过统一的上下文来传递测试数据和配置,同时统一日志可以让不同的测试框架在执行时可被持续集成一致对待。
在具体实现中,Hydra通过测试执行管理入口获得执行列表,通过解析每个测试用例集构建对应的测试执行器,比如基于JavaScript的JSTestRunner(JS测试执行器)、基于Cucumber的BDDTestRunner(BDD测试执行器)、基于TestNG的JavaTestRunner(Java测试执行器)等;这些测试执行器会在统一的上下文中驱动测试用例的执行,并将结果统一汇总到TestResult(测试结果集)中,并以统一的测试报告的形式返回。整个架构可以采用一个zip包的形式或者docker(轻量化虚拟机)的形式提供给用户,用户可以直接解压即用或者用docker命令直接启动,因此,相比其他框架需要一定的初始安装和配置工作,本发明提供的自动化测试框架对此进行了大量的简化,降低了用户的学习和使用成本,提高了自动化测试的便利性。
请参阅图3,图3为本发明实施例提供的自动化测试方法的流程图。
本实施例提供的自动化测试方法,应用于前述实施例中的基于Hydra架构的自动化测试系统。
如图3所示,本实施例提供的自动化测试方法可包括:
S110:获取测试用例集。
其中,所述测试用例集中包括至少一种类型的测试用例,例如,基于Jasmine的测试用例、基于Cucumber的测试用例、基于Jython PyTest的测试用例与基于TestNG的测试用例;
S120:根据所述测试用例集中测试用例的类型,构建相应的测试执行器。
其中,当所述测试用例集中包括不同类型的测试用例时,该步骤S120可具体包括:根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器。
具体地,针对基于Jasmine的测试用例,构建基于Jasmine的测试执行器;针对基于Cucumber的测试用例,构建基于Cucumber的测试执行器;针对基于Jython PyTest的测试用例,构建基于PyTest的测试执行器;针对基于TestNG的测试用例,构建基于TestNG的测试执行器。
相应的,在构建出不同的测试执行器之后,当不同的测试执行器之间需要进行交互时,便可以调用统一上下文服务,并指示不同的测试执行器,通过统一上下文服务来进行交互。
S130:利用所述测试执行器,执行相应的测试用例,得到相应的测试结果。
S140:根据所述测试用例集中所有测试用例的测试结果,生成统一的测试报告。
本实施例提供的自动化测试方法,应用于Hydra架构的自动化测试系统,首先获取包括至少一种类型的测试用例的测试用例集,然后根据所述测试用例集中测试用例的类型,构建相应的测试执行器,具体地,根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器,并然后利用所述测试执行器,执行相应的测试用例,并且不同的测试执行器之间通过统一上下文服务进行交互,最后根据所述测试用例集中所有测试用例的测试结果,生成统一的测试报告,使得测试用例开发者完全可以采用自己最熟悉的脚本语言来开发测试用例,而并不局限于采用某一种特定测试框架所对应的脚本语言来开发,从而降低了自动化测试的复杂度,降低了测试用户的学习成本与使用成本,提高了自动化测试的便利性,进而提高了自动化测试的效率。
请参阅图4,图4为本发明实施例提供的自动化测试过程的交互图。
本实施例提供的自动化测试过程,是基于Hydra架构的自动化测试系统所实现的自动化测试的交互过程,如图4所示,具体交互过程可包括:
1)、在Hydra初始化后,测试执行控制模块(TestRunner)通过读取测试用例集(.control)文件,来获取待执行的测试用例集(测试用例列表)。
其中,测试执行控制模块还需要读取测试配置信息,来获取与测试相关的配置信息。
2)、根据测试用例集中每个测试用例的类型(如Jasmine、Cucumber、JythonPyTest和TestNG),构建对应的测试执行器(如基于Jasmine的测试执行器JSTestSuiteRunner、基于Cucumber的测试执行器CucumberTestSuiteRunner、基于PyTest的测试执行器JythonTestSuiteRunner与基于TestNG的测试执行器TestNGTestSuiteRunner),并传入统一上下文Context。
其中,统一上下文Context是用于实现不同测试执行器之间交互的上下文环境。测试执行器会调用统一上下文服务,来获取在一个统一的执行中的上下文Context,同时注入到这次执行中去,这样当不同的执行器需要交互时,它可以直接获得统一上下文中的对象,而不需要考虑是哪个执行器传入的。
3)、测试执行器开始执行对应的测试用例,并将测试日志以统一格式收集汇总,得到测试结果,再将测试结果以测试用例的维度进行上报。
4)、在测试执行器完成该测试用例执行后,测试报告模块基于测试用例的测试结果生成统一测试报告。
本实施例提供的自动化测试过程,基于Hydra架构的自动化测试系统来实现,其中,针对Jasmine、Cucumber、Jython PyTest和TestNG等类型的测试用例,分别对应构建基于Jasmine的测试执行器、基于Cucumber的测试执行器、基于PyTest的测试用例与基于TestNG的测试执行器,来分别执行相应的测试用例,各测试执行器之间通过统一上下文Context进行交互,在各测试执行器执行完相应的测试用例后,统一汇总测试日志,并根据测试结果生成统一测试报告,使得测试用例开发者完全可以采用自己最熟悉的脚本语言来开发测试用例,而并不局限于采用某一种特定测试框架所对应的脚本语言来开发,从而降低了自动化测试的复杂度,降低了测试用户的学习成本与使用成本,提高了自动化测试的便利性,进而提高了自动化测试的效率。
最后,还需要说明的是,在本文中,诸如第一和第一等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式来实现。基于这样的理解,本申请的技术方案对背景技术做出贡献的全部或者部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领12域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种自动化测试系统,其特征在于,采用Hydra架构;所述系统包括:基础框架层、能力提供层、框架接入层、应用层与测试用例层;
所述基础框架层,用于通过动态语言接口接入不同的动态语言;
所述能力提供层,用于提供能力集,所述能力集中包括至少一种基础能力;
所述框架接入层,用于提供不同类型的测试框架;其中,所述不同类型的测试框架用于执行不同类型的测试用例,所述不同类型的测试框架之间可通过统一上下文服务进行交互;
所述不同类型的测试框架包括:Jasmine测试框架、Cucumber-jvm测试框架、PyTest测试框架与TestNg测试框架中的至少两种,所述Hydra架构中封装了所述Jasmine测试框架、所述Cucumber-jvm测试框架、所述PyTest测试框架与所述TestNg测试框架核心组件的支持;
所述应用层,用于提供预制的自动化库,来与被测对象进行交互;
所述测试用例层,用于获取不同类型的测试用例。
2.如权利要求1所述的系统,其特征在于,所述不同的动态语言至少包括:JavaScript语言与Jython语言。
3.如权利要求1所述的系统,其特征在于,所述至少一种基础能力包括:数据库访问、接口调用封装、模板引擎与第三方工具包中的至少一种。
4.如权利要求1所述的系统,其特征在于,所述预制的自动化库中封装有:WebDriver协议、Appium协议、Restful协议与Thrift协议中的至少一种。
5.如权利要求1所述的系统,其特征在于,所述不同类型的测试用例包括:基于Jasmine的测试用例、基于Cucumber的测试用例、基于Jython PyTest的测试用例与基于TestNG的测试用例中的至少两种。
6.如权利要求1所述的系统,其特征在于,Hydra在架构层面,为各个测试用例提供统一配置管理、统一日志管理、统一上下文管理与统一报告管理。
7.一种自动化测试方法,其特征在于,应用于如权利要求1~6中任一项所述的自动化测试系统;所述方法包括:
获取测试用例集;所述测试用例集中包括至少一种类型的测试用例;
根据所述测试用例集中测试用例的类型,构建相应的测试执行器;
利用所述测试执行器,执行相应的测试用例,得到相应的测试结果;
根据所述测试用例集中所有测试用例的测试结果,生成统一的测试报告。
8.如权利要求7所述的方法,其特征在于,当所述测试用例集中包括不同类型的测试用例时,所述根据所述测试用例集中测试用例的类型,构建相应的测试执行器包括:
根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器。
9.如权利要求8所述的方法,其特征在于,在所述根据所述测试用例集中测试用例的不同类型,对应构建不同的测试执行器之后,所述方法还包括:
当所述不同的测试执行器之间需要进行交互时,调用所述统一上下文服务;
指示所述不同的测试执行器,通过所述统一上下文服务来进行交互。
CN201910806466.3A 2019-08-29 2019-08-29 自动化测试系统与自动化测试方法 Active CN110515848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910806466.3A CN110515848B (zh) 2019-08-29 2019-08-29 自动化测试系统与自动化测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910806466.3A CN110515848B (zh) 2019-08-29 2019-08-29 自动化测试系统与自动化测试方法

Publications (2)

Publication Number Publication Date
CN110515848A CN110515848A (zh) 2019-11-29
CN110515848B true CN110515848B (zh) 2023-06-09

Family

ID=68628883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910806466.3A Active CN110515848B (zh) 2019-08-29 2019-08-29 自动化测试系统与自动化测试方法

Country Status (1)

Country Link
CN (1) CN110515848B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111240958A (zh) * 2019-12-04 2020-06-05 五八同城信息技术有限公司 一种接口测试方法、装置、电子设备及介质
CN111190812B (zh) * 2019-12-12 2023-12-08 华东计算技术研究所(中国电子科技集团公司第三十二研究所) 基于嵌入式设备的自动化测试框架的系统
CN110990293B (zh) * 2019-12-17 2023-08-11 北京同有飞骥科技股份有限公司 自动校验测试方法及系统
CN111488285B (zh) * 2020-04-15 2023-05-12 抖音视界有限公司 接口测试方法、装置、电子设备及计算机可读存储介质
CN112148611B (zh) * 2020-09-28 2023-08-04 深圳信息通信研究院 一种基于云架构的自动化测试中间接口方法与平台
CN112860557A (zh) * 2021-02-18 2021-05-28 深圳无域科技技术有限公司 自动化测试方法及系统
CN117762601A (zh) * 2024-02-22 2024-03-26 北方健康医疗大数据科技有限公司 一种hydra服务调用方法、系统、终端及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839035B1 (en) * 2011-09-14 2014-09-16 Amazon Technologies, Inc. Cloud-based test execution
CN110109831A (zh) * 2019-04-24 2019-08-09 中科恒运股份有限公司 自动化测试框架系统、自动化测试方法及终端设备

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223360A1 (en) * 2004-03-31 2005-10-06 Bea Systems, Inc. System and method for providing a generic user interface testing framework
WO2009148481A1 (en) * 2008-06-06 2009-12-10 Sapient Corporation Systems and methods for visual test authoring and automation
US9552281B2 (en) * 2011-12-28 2017-01-24 Verisign, Inc. Utilizing a test automation tool in a test automation environment
US9021438B2 (en) * 2013-06-20 2015-04-28 Sap Portals Israel Ltd Automatic framework for parallel testing on multiple testing environments
CN106886493B (zh) * 2017-02-22 2021-02-02 苏州浪潮智能科技有限公司 一种自动化测试系统的建立方法与装置
CN108804305A (zh) * 2017-05-05 2018-11-13 北京嘀嘀无限科技发展有限公司 一种自动化测试的方法及装置
CN109840192B (zh) * 2017-11-27 2022-06-07 北京京东尚科信息技术有限公司 自动化测试的方法和装置
CN108614774A (zh) * 2018-04-24 2018-10-02 百度在线网络技术(北京)有限公司 自动化测试方法和装置
CN108932194A (zh) * 2018-06-21 2018-12-04 北京京东金融科技控股有限公司 自动化测试方法、装置、系统、介质及电子设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839035B1 (en) * 2011-09-14 2014-09-16 Amazon Technologies, Inc. Cloud-based test execution
CN110109831A (zh) * 2019-04-24 2019-08-09 中科恒运股份有限公司 自动化测试框架系统、自动化测试方法及终端设备

Also Published As

Publication number Publication date
CN110515848A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN110515848B (zh) 自动化测试系统与自动化测试方法
Petrov et al. Race detection for web applications
US10169199B2 (en) Automatic model-specific debugger extensions
US8166347B2 (en) Automatic testing for dynamic applications
CN110795357B (zh) 程序监控方法及装置
US10353809B2 (en) System and method for executing integration tests in multiuser environment
US20020198868A1 (en) System and method for specification tracking in a Java compatibility testing environment
CN103049371A (zh) Android应用程序测试方法和测试装置
CN103729294A (zh) 应用软件性能脚本测试方法与装置
CN112231213A (zh) Web自动化测试方法、系统、存储介质及终端设备
Farooq et al. Runtimedroid: Restarting-free runtime change handling for android apps
US20230401058A1 (en) Semantic functional wrappers of services
CN111124870A (zh) 一种接口测试方法及装置
CN114328250A (zh) 软件系统自动自检方法、介质和装置
CN109491904B (zh) 一种SparkSQL应用程序的自动化测试方法和装置
CN113641594B (zh) 跨端自动化测试方法以及相关装置
US20130132930A1 (en) Capturing telemetry data by dynamic language engine
CN110750457A (zh) 一种基于内存数据库的自动化单元测试方法及装置
CN114416202B (zh) 一种移动端sdk调用方法及系统
EP2721494B1 (en) System and method to in-line script dependencies
CN115454785A (zh) 基于VSCode的主机性能图形化实时监测管理方法
Mariani et al. MASH: tool integration made easy
Ludewig Espreso—A system for process control software specification
CN113656290A (zh) 一种mock点自动识别方法、装置以及设备
CN112685049B (zh) 一种java字节码编译方法

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