CN112286779B - 测试任务处理方法、装置、存储介质和计算机设备 - Google Patents

测试任务处理方法、装置、存储介质和计算机设备 Download PDF

Info

Publication number
CN112286779B
CN112286779B CN201910665924.6A CN201910665924A CN112286779B CN 112286779 B CN112286779 B CN 112286779B CN 201910665924 A CN201910665924 A CN 201910665924A CN 112286779 B CN112286779 B CN 112286779B
Authority
CN
China
Prior art keywords
test
script
case
data
environment
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
CN201910665924.6A
Other languages
English (en)
Other versions
CN112286779A (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201910665924.6A priority Critical patent/CN112286779B/zh
Publication of CN112286779A publication Critical patent/CN112286779A/zh
Application granted granted Critical
Publication of CN112286779B publication Critical patent/CN112286779B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/3664Environments for testing or debugging software
    • 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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请涉及一种测试任务处理方法、装置、计算机可读存储介质和计算机设备,方法包括:获取测试任务,确定测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名,查找测试用例名对应的测试脚本,将测试环境对应的测试环境参数、以及测试数据对应的数据源路径写入测试脚本,得到更新测试脚本,通过运行更新测试脚本,配置测试环境并读取测试数据,基于测试数据和测试脚本中携带的测试逻辑,生成测试用例,在测试环境下,执行测试用例,得到测试结果。无需在每个测试脚本所中写入特定的测试数据和测试环境,提高了测试脚本的简洁性与可复用性,从而简化测试用例脚本的编写规模,提高编写效率,进而提高测试任务完成效率。

Description

测试任务处理方法、装置、存储介质和计算机设备
技术领域
本申请涉及测试技术领域,特别是涉及一种测试任务处理方法、装置、计算机可读存储介质和计算机设备。
背景技术
在产品的研发过程中,当产品进入系统测试阶段后,为了保证产品的质量,需要对其在模拟实际的使用环境下的功能和性能进行全面的自动化测试。根据在测试过程中所发现的产品的缺陷,开发人员对产品设计进行修正。
随着业务系统的分布式化,自动化测试的范围逐渐从基础的接口扩展到复杂的业务场景。为此,测试流程变得越来越复杂,面临修改的可能性就越来越高。
传统的自动化测试过程中,对于图形化的自动化测试平台,需要在图形界面上点击、右键等操作进才能编辑单个自动化测试用例,对于批量新增与修改等操作较为繁琐。如果使用脚本语言去编写自动化测试用例,一个个独立脚本语言也比较难维护,对于需要执行大量测试用例进行测试的场景,测试用例的编写数量多、规模大,导致了完成测试任务的处理效率较低。
发明内容
基于此,有必要针对完成测试任务的处理效率较低的技术问题,提供一种测试方法、装置、计算机可读存储介质和计算机设备。
一种测试任务处理方法,包括:
获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名;
查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;
将所述测试环境参数和所述数据源路径写入所述测试脚本,得到更新测试脚本;
通过运行所述更新测试脚本,配置所述测试环境并读取所述测试数据;
基于所述测试数据和所述测试逻辑,生成测试用例;
在所述测试环境下,执行所述测试用例,得到测试结果。
一种测试任务处理装置,所述装置包括:
测试任务获取模块,用于获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名;
测试脚本查找模块,用于查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;
测试脚本更新模块,用于将所述测试环境参数和所述数据源路径写入所述测试脚本,得到更新测试脚本;
测试脚本运行模块,用于通过运行所述更新测试脚本,配置所述测试环境并读取所述测试数据;
测试用例生成模块,用于基于所述测试数据和所述测试逻辑,生成测试用例;
测试用例执行模块,用于在所述测试环境下,执行所述测试用例,得到测试结果。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行以下步骤:
获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名;
查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;
将所述测试环境参数和所述数据源路径写入所述测试脚本,得到更新测试脚本;
通过运行所述更新测试脚本,配置测试环境并读取测试数据;
基于所述测试数据和所述测试逻辑,生成测试用例;
在所述测试环境下,执行所述测试用例,得到测试结果。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行以下步骤:
获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名;
查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;
将所述测试环境参数和所述数据源路径写入所述测试脚本,得到更新测试脚本;
通过运行所述更新测试脚本,配置所述测试环境并读取所述测试数据;
基于所述测试数据和所述测试逻辑,生成测试用例;
在所述测试环境下,执行所述测试用例,得到测试结果。
上述测试任务处理方法、装置、计算机可读存储介质和计算机设备,相较于传统的测试方法,将测试环境、测试数据与测试逻辑分离,一方面,通过将测试环境对应的测试环境参数写入测试脚本,通过运行测试脚本,配置测试环境,通过参数调用,无需在每个测试用例的测试脚本中写入特定的测试环境,在测试任务改变时,只需修改测试环境参数,无需对测试脚本中的测试逻辑进行修改,使得同一个测试脚本对应的测试用例在不同环境都可执行。另一方面,采用将测试数据与测试逻辑分离的方式,通过运行测试脚本,读取测试数据,结合测试脚本中携带的测试逻辑,生成测试用例,相较于在每个测试脚本中写入固定的输入数据得到测试用例的方式,提高了测试脚本的简洁性与可复用性,从而简化测试用例脚本的编写规模,提高编写效率,进而提高了测试任务的完成效率。
附图说明
图1为一个实施例中测试任务处理方法的应用环境图;
图2为一个实施例中测试任务处理方法的流程示意图;
图3为一个实施例中配置测试环境步骤的流程示意图;
图4为一个实施例中基础测试用例的测试过程的流程示意图;
图5为一个实施例中场景用例的测试过程的流程示意图;
图6为另一个实施例中测试任务处理方法的流行示意图;
图7为一个实施例中版本封装步骤的流程示意图;
图8为一个实施例中写入有测试环境参数的脚本程序架构示意图;
图9为一个实施例中基础测试用例的脚本程序架构示意图;
图10为一个实施例中写入有数据源路径的脚本程序架构示意图;
图11为一个实施例中场景用例的脚本程序架构示意图;
图12为一个实施例中测试计划用例的脚本程序架构示意图;
图13为一个实施例中封装版本目录的界面示意图;
图14为一个实施例中测试任务处理结果的界面示意图;
图15为一个实施例中测试任务处理方法的处理过程示意图;
图16为一个实施例中测试任务处理装置的结构框图;
图17为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,测试任务处理方法的应用环境如图1所示。应用环境涉及自动化测试平台102。自动化测试平台是一种基于pyunit(Python unittest,自动化单元测试框架)的自动化测试平台,图形化的自动化测试平台在编辑效率远远低于测试脚本,而通过统一自动化测试平台来管理与运行测试脚本,便于无损抵地扩展测试脚本的功能。该自动化测试平台,以pyunit为单元测试框架库,采用基于python的自动化测试脚本,利用python的代码可读性高且崇尚简洁的特点,能让用户用较少的代码表达相同的测试流程,且python生态环境较为全面,有强大的第三方库集供用户使用,简化测试脚本的编写过程。对于一项测试任务,通过获取测试任务,确定测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名,其中,所述测试环境参数用于进行测试环境配置,所述数据源路径用于读取测试数据,查找测试用例名对应的测试脚本,将测试环境对应的测试环境参数、以及测试数据对应的数据源路径写入测试脚本,得到更新测试脚本,通过运行更新测试脚本,配置测试环境并读取测试数据,基于测试数据和测试脚本中携带的测试逻辑,生成测试用例,在测试环境下,执行测试用例,得到测试结果。将测试环境、测试数据与测试逻辑分离,实现了环境驱动和数据驱动,提高了测试用例的简洁性与可复用性,从而简化测试用例的编写规模,提高编写测试用例的效率,进而提高了测试任务的完成效率。其中,数据驱动是指使用外部数据来源作为测试用例的输入。环境驱动是指测试用例不指定特定的测试环境,可通过默认或外部设置,使得测试用例在不同环境都可执行。
在一个实施例中,自动化测试平台102可以设置于终端,具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。在另一个实施例中,自动化测试平台102可以设置于服务器,服务器可以通过单个服务器或是服务器集群来实现。
在一个实施例中,提供了一种测试任务处理方法。本实施例主要以该方法应用于上述图1中的自动化测试平台来举例说明。参照图2,该测试任务处理方法具体包括步骤S202至S212。
S202,获取测试任务,确定测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名。
测试任务是指对指定对象或是指定接口进行执行逻辑验证的任务。自动化测试用例可以用于版本测试、回归测试、以及验证与线上对齐测试等。不同测试类型测试,环境很有可能是不一样的,测试环境参数用于配置测试环境,测试环境包括测试过程对应的环境以及实际应用过程对应的环境等。为满足测试用例在对应的测试环境下运行,通常需要在测试脚本中配置好对应测试环境,再执行测试用例。数据源路径用于读取测试数据,测试数据是指用于验证测试逻辑是否正确的数据。在实施例中,测试数据包括多组数据,每一组测试数据结合测试脚本中携带的测试逻辑,得到多个测试用例,使得在测试脚本能验证多种不同数据组合的情况。测试用例包括测试数据与测试逻辑,按测试逻辑对测试数据进行处理,即为测试用例的执行。测试用例名用于表征实现某测试功能的测试脚本,一个测试用例对应一个测试脚本,测试用例名可以为测试脚本的文件名。通过测试任务,确定待测试的功能,即确定所需测试用例的测试用例名。在一个实施例中,自动化测试平台配置有测试任务与测试用例名的关联数据表,通过查找关联数据表,自动获取到测试任务所需的测试用例名,从而根据测试用例名查找到测试用例名对应出的测试脚本。所需的测试用例可以是单个基础测试用例、多个基础测试用例组成的场景用例、以及包括基础测试用例和场景用例的测试计划用例。
S204,查找测试用例名对应的测试脚本,测试脚本中携带有测试逻辑。
在自动化测试过程中,测试方法包括基于图形化的自动化测试平台或基于测试脚本的自动化测试平台来实现。其中,基于图形化的自动化测试平台,需要在图形界面上点击、右键等操作进才能编辑单个自动化测试用例,对于批量新增与修改等操作较为繁琐。基于测试脚本的自动化测试平台,是使用脚本语言来编写自动化测试用例,一个测试用例对应一个测试脚本。不同的测试任务需要使用不同的测试用例来进行测试。脚本是一种批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等。脚本程序在执行时,是由脚本解释器,将其一条条的翻译成机器可识别的指令,并按程序顺序执行。测试脚本是自动执行测试过程或部分测试过程的计算机可读指令。测试脚本语言是自动化软件测试设计的基础,包括perl,python,php,tcl,guile,ruby以及UNIX系统的各种shell。在其中一个实施例中,测试脚本中采用的是基于python的测试脚本语言,利用python的代码可读性高且崇尚简洁的特点,可以简化测试脚本的编写过程,进而提高编写效率。测试逻辑是测试脚本的主体部分,每一组测试数据与测试逻辑结合即可得到一个测试用例。
S206,将测试环境参数和数据源路径写入测试脚本,得到更新测试脚本。
测试环境对应的测试环境参数是指用于查找得到测试环境的环境配置数据,对测试环境进行配置的参数,测试环境参数可以是配置数据,也可以是配置数据的存储路径,在测试脚本中写入测试环境参数,在测试脚本运行时,可以通过存储路径,查找得到对应的配置数据,进行测试环境配置。在实施例中,可以利用全局对象设置测试环境簇的方式写入测试环境参数。
在一个实施例中,测试环境参数为配置数据存储路径,如图3所示,配置测试环境包括步骤S302至S304。
S302,根据配置数据存储路径,查找测试环境配置数据,测试环境配置数据的存储位置包括配置文件缓存区、环境信息数据库以及持久化内存中的任意一种。
S304,根据测试环境配置数据,配置测试环境。
在其中一个实施例中,根据配置数据存储路径,查找测试环境配置数据,为,从配置文件缓存区中查找测试环境配置数据。配置文件缓存区是指用于缓存配置文件的存储区域,配置文件是指用户可以对配置数据进行编辑修改的文档,利用文档的可视化特点,便于用户对配置数据进行更新。
在其中另一个实施例中,根据配置数据存储路径,查找测试环境配置数据为,从环境信息数据库中查找测试环境配置数据。环境信息数据库是结构化的数据存储方式,适用于配置数据的数据量较大且修改频率较小的测试环境配置数据的存储。
在其中再一个实施例中,根据配置数据存储路径,查找测试环境配置数据为,从持久化内存中查找测试环境配置数据。持久化内存也称为非易失性内存,介于内存和存储器层级之间,可以提供了比动态随机存取存储器更大的容量同时也有比存储器更显著的访问速度,便于快速查找得到测试环境配置数据。
S208,通过运行更新测试脚本,配置测试环境并读取测试数据。
更新的测试脚本除了测试逻辑,还包括写入的测试环境参数和数据源路径。通过运行更新测试,根据测试环境参数,确定或查找测试环境配置数据,配置测试环境。根据数据源路径,读取存储数据源路径的测试数据。在实施例中,数据源路径中包括指定路径和默认路径,默认路径用于保证测试用例在无指定数据来源时能正常运行。
S210,基于测试数据和测试逻辑,生成测试用例。
测试用例,是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,以便测试某个程序路径或核实是否满足某个特定需求。一个测试用例至少包括测试数据和测试逻辑,基于测试数据和测试逻辑,生成测试用例。
S212,在测试环境下,执行测试用例,得到测试结果。
在测试环境下,执行测试用例进行测试,可以得到测试用例的执行结果,将执行结果与预期结果相比较,得到测试结果,测试结果包括测试成功、测试失败和测试错误。测试结果包括是报告,具体来说,测试任务携带的测试用例执行结束时,生成测试报告。测试报告包括测试时间,如测试开始时间、测试运行总耗时。测试统计结果,如测试成功数量、测试失败数量以及测试错误数量,成功是指测试用例的测试结果与预期相同的情况,失败是指测试用例的测试结果与预期不同的情况、错误是指未能得到测试结果的情况。在另一个实施例中,测试报告还包括各项测试用例的测试详情,具体包括测试用例类,具体描述信息、测试类型、测试结果以及详情查看链接。
上述测试任务处理方法,一方面,通过将测试环境对应的测试环境参数写入测试脚本,通过运行测试脚本,配置测试环境,通过参数调用,无需在每个测试用例的测试脚本中写入特定的测试环境,在测试任务改变时,只需修改测试环境参数,无需对测试脚本中的测试逻辑进行修改,使得同一个测试脚本对应的测试用例在不同环境都可执行。另一方面,采用将测试数据与测试逻辑分离的方式,通过运行测试脚本,读取测试数据,结合测试脚本中携带的测试逻辑,生成测试用例,相较于在每个测试脚本中写入固定的输入数据得到测试用例的方式,提高了测试脚本的简洁性与可复用性,从而简化测试用例脚本的编写规模,提高编写效率,进而提高了测试任务的完成效率。
在其中一个实施例中,测试用例包括单个基础测试用例。如图4所示,基础测试用例的测试过程包括步骤S402至S406。
S402,根据测试脚本中携带的初始化参数,对基础测试用例进行前置初始化处理。
S404,执行基础测试用例。
S406,执行后的基础测试用例进行后置清理处理。
前置初始化处理是指在基础测试用例开始执行之前,进行初始化操作。后置清理处理是指在基础测试用例执行结束以后,进行的清理动作。例如,以基础测试用例为请求转账服务为例,前置初始化操作可以是增加转账的处理节点,后置清理处理可以是删除转账的处理节点。
在一个实施例中,测试用例包括多个基础测试用例组成的场景用例。如图5所示,场景用例的测试过程包括步骤S502至S508。
S502,获取场景用例的测试脚本,测试脚本的测试逻辑包括按顺序执行多个基础测试用例。
S504,运行场景用例的测试脚本,调用并运行第一基础测试用例对应的第一调用脚本,配置测试环境并读取第一调用脚本的测试数据,生成并执行第一基础测试用例,得到第一基础测试用例的测试结果。
S506,当第一基础测试用例的测试结果为测试成功时,调用并运行第二调用脚本,其中,第二调用脚本为排列顺序仅次于第一调用脚本的调用脚本。
S508,当第一基础测试用例的测试结果为测试失败或测试错误时,结束测试过程。
场景用例由多个基础测试用例组成,各个基础测试用例顺序执行,上一测试用例的测试结果直接影响到一下测试用例是否需要运行。当其中一个基础测试用例的测试结果与预期结果不相符时,结束该场景用例的测试。当所有基础测试用例均顺序执行完时,结束该场景用例的测试。
在一个实施例中,测试项目所需的测试用例包括基础测试用例和场景用例中的至少一类组成的测试计划用例。
测试计划用例可以是基础测试用例与场景用例的任意组合,可以只包括基础测试用例,基础测试用例的数量可以是一个或多个,也可以只包括场景用例,场景测试用例的数量也可以是一个或多个。测试计划用例对应的测试脚本中,包括声明数组,该数组中包括所需的基础测试用例和场景用例的调用路径。
在一个实施例中,获取测试任务中还包括测试版本参数。如图6所示,测试任务的执行过程包括步骤S602至S612。
S602,获取测试任务中,确定测试任务携带的测试环境参数、测试数据在版本目录中对应的数据源路径、测试版本参数以及所需测试用例的测试用例名。
S604,从测试版本参数对应的版本目录中,查找测试用例名对应的测试脚本。
S606,将测试环境参数以及测试数据在版本目录中的数据源路径写入查找得到的测试脚本,得到更新测试脚本。
S608,通过运行更新测试脚本,配置测试环境并从版本目录中读取测试数据。
S610,基于测试数据和测试逻辑,生成测试用例。
S612,在测试环境下,执行测试用例,得到测试结果。
在测试版本参数对应的版本目录中,封装有同一版本下的测试数据、测试资源、测试用例、测试计划与测试报告。通过测试版本参数,实现版本驱动,保证版本迭代不会影响历史数据。
在一个实施例中,从测试版本参数对应的版本文件目录中,查找测试脚本以及测试数据之前,还包括版本封装过程,如图7所示,具体包括步骤S702至S704。
S702,获取同一版本的各项测试文件,测试文件包括测试数据、测试资源、测试用例、测试计划和测试报告中的至少一项。
S704,将同一版本的各项测试文件进行归类并封装。
对于某些业务,需要保证版本迭代不会影响历史数据,如果测试用例也随之版本迭代而修改,测试用例无法还原出历史版本的测试流程。在实施例中,通过自动从最近版本拉取出最新版本,来封装最近版本并创建迭代版本,迭代版本的更新在拉取出的最新版本的基础上实现,通过把最近版本的测试数据、测试资源、测试用例、测试计划与测试报告等封装起来,在版本空间不受历史版本的影响,也不修改历史版本。
在一个实施例中,用于实现测试任务处理流程的自动化测试平台包括以下特点:集成大量基于python的自动化测试脚本。提供数据驱动的功能,使得自动化测试脚本能验证多种不同数据组合的情况,也提供基于数据驱动的测试脚本组合,实现场景用例。提供环境驱动的功能,可在外部指定自动化测试脚本的测试环境,无需编辑自动化测试脚本。提供版本驱动的功能,基于版本迭代的方式管理测试用例,把测试数据、测试资源、测试用例、测试计划与测试报告等封装起来成为特定版本闭环项目,用以验证需要保证历史数据稳定性的业务系统。提供测试计划的功能,可把相关的测试用例组织一起,批量执行测试用例。测试用例执行结束后,都会生成一份测试报告。对于基础测试用例和场景用例,都会通过测试类型项来标示出来。
具体来说,该平台设置有统一管理环境信息的模块,该模块可从配置文件或环境信息数据库或持久化内存中,读取到不同测试环境的信息。由于隔离的环境信息,在构造测试资源时,利用全局对象(global_config)的设置测试环境簇的方法(set_cur_env_cluster)来设置测试用例执行的测试环境,测试资源根据获取到实时的测试环境信息,自动请求得到被测测试环境的服务,实现环境驱动。
在一个实施例中,当测试任务携带的测试用例为单个基础测试用例时,对应的测试脚本程序架构如图9所示,该平台的测试用例都继承于测试用例基类(TestCaseBase),一个测试用例脚本对应一个自动化测试用例。而测试逻辑对应的流程在运行测试方式(run_test)成员函数中编写,提供设置测试用例的前置初始化操作(pre_test)和设置测试用例的后置清理操作(post_test)设置前置操作和后置操作。在其中一个实施例中,如图10所示,通过测试脚本中成员变量test_data获取数据来源的输入值。为了保证测试用例在无外部设置数据来源时能正常运行,通过设置默认的数据驱动来源(set_test_data)设置默认的数据来源。在初始化测试用例的时候可以设置数据来源的路径来修改测试数据。其中,数据来源方式支持多种数据类型,具体可以包括ini、json以及其他数据类型。
在一个实施例中,当测试任务携带的测试用例为多个基础测试用例组成的场景用例时,对应的测试脚本程序架构如图11所示,由于自动化测试用例需要依赖到多个基础的测试用例,可以通过基于数据驱动实现场景用例。场景用例是一种特殊的测试用例。该自动化测试平台的场景用例都继承于场景用例基类(TestSceneBase),一个场景用例脚本对应一个自动化场景用例。而测试逻辑对应的测试流程,在表征运行测试方法的run_test成员函数中编写,场景用例是多个基础测试用例组成,常用的定义函数或方法与测试用例保持一致,但在run_test中不是设置具体的测试步骤,而是添加基础测试用例(add_test_case)把所需调用的基础测试用例组装起来,并提供测试用例的路径和自定义参数,进而把基础测试用例添加到场景用例中。常用参数有基础测试用例的类路径参数、设置数据驱动的参数如数据来源、标签等、设置数据映射关系的参数以及设置是否异常回滚必须执行的基础测试用例的参数。同样,场景用例的测试脚本中也提供设置测试用例的前置初始化操作(pre_test)和设置测试用例的后置清理操作(post_test)设置前置操作和后置操作。
在一个实施例中,当需要多个基础测试用例和场景用例组织在一起执行时,通过测试计划用例来实现。在测试计划用例的测试脚本中,只需要声明一个数组(testcase_set),数组的每一项包括测试用例或场景用例的路径。如图12所以,测试计划用例,包括两个基础测试用例和一个场景用例。分别执行测试脚本中的基础测试用例和场景用例,即可完成测试任务。
在一个实施例中,对于某些业务,需要保证版本迭代不会影响历史数据,如果测试用例也随之版本迭代而修改,测试用例无法还原出历史版本的测试流程。为此引入了版本驱动的功能,通过该平台创建项目的迭代版本,该平台就会自动从最近版本拉取出最新版本,并且将原版本的测试数据、测试资源、测试用例、测试计划与测试报告等封装起来,在版本空间不受历史版本的影响,也不修改历史版本。具体来说,版本驱动的实现是基于模块隔离和相对路径来保证的。该平台根据为每个迭代版本创建版本独特的模块集合,把测试数据、测试资源、测试用例、测试计划和测试报告等组装成一个python模块,使得当前迭代版本的相关资源与测试用例都强关联起来。如图13所示,封装版本包括版本v00、v01以及v02,不同版本中分装有对应的测试文件。测试用例和测试计划根据相对路径导入当前迭代版本的测试数据、测试资源。测试用例运行器(TestRunner)和场景用例运行器(TestSceneRunner)也根据相对路径动态加载测试用例、场景用例和测试计划。
在一个实施例中,测试用例执行结束后,都会生成一份测试报告。对于基础测试用例和场景用例,都会通过测试类型项来标示出来,如图14所示,测试报告包括测试时间,如测试开始时间、测试运行总耗时。测试统计结果,如成功数量、失败数量以及错误数量,成功是指测试用例的测试结果与预期相同的情况,失败时指测试用例的测试结果与预期不同的情况、错误是指未能得到测试结果的情况,一般发生在场景用例中,由于场景用例为多个基础测试用例顺序执行,当其中一个基础测试用例发生错误时,执行顺序在该基础测试用例后面的基础测试用例将不会被执行,即该场景用例执行出现中断情况,该场景用例对应测试结果为错误。测试报告还包括各项测试用例的测试详情,具体包括测试用例类,具体描述信息、测试类型如基础测试用例或场景用例或测试计划用例、测试结果以及详情查看链接。
在一个实施例中,自动化测试平台的进行测试的流程如图15所示,首先根据命令提示符(CMD)或接口调用(RESTful API),管理模块(Manager)从数据库或配置文件中读取环境信息配置测试环境,根据测试任务,确定测试项目为测试计划用例或基础测试用例或场景用例,如果测试用例为单个基础测试用例,则直接查找测试脚本,通过测试用例运行器(TestRunner)加载测试脚本,并获取外部数据来源的测试数据,然后执行结合测试数据和测试逻辑的基础测试用例即常规测试用例。如果测试用例为测试计划,则根据测试计划中包含的基础测试用例和场景用例,通过测试用例运行器(TestRunner)和场景用例运行器(TestSceneRunner)来执行对应的测试用例。TestRunner可直接执行测试用例,而对于场景用例,需要启动TestSceneRunner来运行多个基础测试用例,最后把最终结果反馈至TestRunner。在测试用例执行时,可以通过调用API或请求测试对象来实现。在测试用例执行结束时,生成测试报告,并收集包含测试数据、测试资源、测试用例、测试计划与测试报告的测试结果。
在一个实施例中,提供了一种测试任务处理装置1600,装置包括:
测试任务获取模块1602,用于获取测试任务,确定测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名,其中,所述测试环境参数用于进行测试环境配置,所述数据源路径用于读取测试数据。
测试脚本查找模块1604,用于查找测试用例名对应的测试脚本,测试脚本中携带有测试逻辑。
测试脚本更新模块1606,用于将测试环境对应的测试环境参数、以及测试数据对应的数据源路径写入测试脚本,得到更新测试脚本。
测试脚本运行模块1608,用于通过运行更新测试脚本,配置测试环境并读取测试数据。
测试用例生成模块1610,用于基于测试数据和测试逻辑,生成测试用例。
测试用例执行模块1612,用于在测试环境下,执行测试用例,得到测试结果。
在一个实施例中,测试用例包括单个基础测试用例。测试用例执行模块1612,还用于根据测试脚本中携带的初始化参数,对基础测试用例进行前置初始化处理,执行基础测试用例,对执行后的基础测试用例进行后置清理处理。
在一个实施例中,测试用例包括多个基础测试用例组成的场景用例。测试脚本的测试逻辑包括按顺序执行多个基础测试用例。测试脚本运行模块1608,还用于通过运行测试脚本,按顺序依次调用并运行基础测试用例对应的调用脚本,针对每一个调用脚本,配置测试环境并读取调用脚本对应的测试数据。
在一个实施例中,测试环境参数为配置数据存储路径。测试脚本运行模块1608,还用于根据配置数据存储路径,查找测试环境配置数据,测试环境配置数据的存储位置包括配置文件缓存区、环境信息数据库以及持久化内存中的任意一种,根据测试环境配置数据,配置测试环境。
在一个实施例中,获取测试任务中还包括测试版本参数。测试脚本查找模块1604,还用于从测试版本参数对应的版本目录中,查找测试用例名对应的测试脚本,测试脚本更新模块1606,还用于将测试数据在版本目录中对应的数据源路径写入测试脚本。
在一个实施例中,测试任务处理装置还包括版本封装模块,用于获取同一版本的各项测试文件,测试文件包括测试数据、测试资源、测试用例、测试计划和测试报告中的至少一项,将同一版本的各项测试文件进行归类并封装。
上述测试任务处理装置,将测试环境、测试数据与测试逻辑分离,一方面,通过将测试环境对应的测试环境参数写入测试脚本,通过运行测试脚本,配置测试环境,通过参数调用,无需在每个测试用例的测试脚本中写入特定的测试环境,在测试任务改变时,只需修改测试环境参数,无需对测试脚本中的测试逻辑进行修改,使得同一个测试脚本对应的测试用例在不同环境都可执行。另一方面,采用将测试数据与测试逻辑分离的方式,通过运行测试脚本,读取测试数据,结合测试脚本中携带的测试逻辑,生成测试用例,相较于在每个测试脚本中写入固定的输入数据得到测试用例的方式,提高了测试脚本的简洁性与可复用性,从而简化测试用例脚本的编写规模,提高编写效率,进而提高了测试任务的完成效率。
图17示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的自动化处理平台。如图17所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现测试任务处理方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行测试任务处理方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图17中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的测试任务处理装置可以实现为一种计算机程序的形式,计算机程序可在如图17所示的计算机设备上运行。计算机设备的存储器中可存储组成该测试任务处理装置的各个程序模块,比如,图16所示的测试任务获取模块1602、测试脚本查找模块1604、测试脚本更新模块1606、测试脚本运行模块1608、测试用例生成模块1610和测试用例执行模块1612。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的测试任务处理方法中的步骤。
例如,图17所示的计算机设备可以通过如图16所示的测试任务处理装置中的测试任务获取模块1602执行获取测试任务,确定测试任务携带的测试环境参数、测试数据的数据源路径以及所需测试用例的测试用例名,其中,所述测试环境参数用于进行测试环境配置,所述数据源路径用于读取测试数据。计算机设备可通过测试脚本查找模块1604执行查找测试用例名对应的测试脚本,测试脚本中携带有测试逻辑。计算机设备可通过测试脚本更新模块1606执行将测试环境对应的测试环境参数、以及测试数据对应的数据源路径写入测试脚本,得到更新测试脚本。计算机设备可通过测试脚本运行模块1608执行通过运行更新测试脚本,配置测试环境并读取测试数据。计算机设备可通过测试用例生成模块1610执行基于测试数据和测试逻辑,生成测试用例。计算机设备可通过测试用例执行模块1612执行在测试环境下,执行测试用例,得到测试结果。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述测试任务处理方法的步骤。此处测试任务处理方法的步骤可以是上述各个实施例的测试任务处理方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述测试任务处理方法的步骤。此处测试任务处理方法的步骤可以是上述各个实施例的测试任务处理方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (14)

1.一种测试任务处理方法,包括:
获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径、测试版本参数以及所需测试用例的测试用例名;
从所述测试版本参数对应的版本目录中,查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;版本的迭代包括最近版本测试用例的封装和迭代版本测试用例的创建,所述迭代版本测试用例在从最近版本拉取出的最新版本测试用例的基础上实现;
将所述测试环境参数和所述测试数据在所述版本目录中对应的数据源路径写入所述测试脚本,得到更新测试脚本;
通过运行所述更新测试脚本,配置测试环境并从所述版本目录中读取测试数据;
基于所述测试数据和所述测试逻辑,生成测试用例;
在所述测试环境下,执行所述测试用例,得到测试结果。
2.根据权利要求1所述的方法,其特征在于,所述测试用例包括单个基础测试用例;所述执行所述测试用例之前,还包括:
根据所述测试脚本中携带的初始化参数,对所述基础测试用例进行前置初始化处理;
所述执行所述测试用例之后,还包括:
对执行后的基础测试用例进行后置清理处理。
3.根据权利要求1所述的方法,其特征在于,所述测试用例包括多个基础测试用例组成的场景用例;所述测试脚本的测试逻辑包括按顺序执行多个基础测试用例;
所述通过运行所述更新测试脚本,配置测试环境并读取测试数据包括:
通过运行所述测试脚本,按顺序依次调用并运行所述基础测试用例对应的调用脚本;
针对每一个调用脚本,配置测试环境并读取与该调用脚本对应的测试数据。
4.根据权利要求1所述的方法,其特征在于,所述测试项目所需的测试用例包括基础测试用例和场景用例中的至少一类组成的测试计划用例。
5.根据权利要求1所述的方法,其特征在于,所述测试环境参数为配置数据存储路径;所述配置测试环境包括:
根据所述配置数据存储路径,查找测试环境配置数据,所述测试环境配置数据的存储位置包括配置文件缓存区、环境信息数据库以及持久化内存中的任意一种;
根据所述测试环境配置数据,配置测试环境。
6.根据权利要求1所述的方法,其特征在于,所述从所述测试版本参数对应的版本文件目录中,查找所述测试脚本以及所述测试数据之前,还包括:
获取同一版本的各项测试文件,所述测试文件包括测试数据、测试资源、测试用例、测试计划和测试报告中的至少一项;
将同一版本的各项测试文件进行归类并封装。
7.一种测试任务处理装置,其特征在于,所述装置包括:
测试任务获取模块,用于获取测试任务,确定所述测试任务携带的测试环境参数、测试数据的数据源路径、测试版本参数以及所需测试用例的测试用例名;
测试脚本查找模块,用于从所述测试版本参数对应的版本目录中,查找所述测试用例名对应的测试脚本,所述测试脚本中携带有测试逻辑;版本的迭代包括最近版本测试用例的封装和迭代版本测试用例的创建,所述迭代版本测试用例在从最近版本拉取出的最新版本测试用例的基础上实现;
测试脚本更新模块,用于将所述测试环境参数和所述测试数据在所述版本目录中对应的数据源路径写入所述测试脚本,得到更新测试脚本;
测试脚本运行模块,用于通过运行所述更新测试脚本,配置所述测试环境并从所述版本目录中读取所述测试数据;
测试用例生成模块,用于基于所述测试数据和所述测试逻辑,生成测试用例;
测试用例执行模块,用于在所述测试环境下,执行所述测试用例,得到测试结果。
8.根据权利要求7所述的装置,其特征在于,所述测试用例包括单个基础测试用例;所述测试用例执行模块,还用于根据所述测试脚本中携带的初始化参数,对所述基础测试用例进行前置初始化处理;对执行后的基础测试用例进行后置清理处理。
9.根据权利要求7所述的装置,其特征在于,所述测试用例包括多个基础测试用例组成的场景用例;所述测试脚本的测试逻辑包括按顺序执行多个基础测试用例;
所述测试脚本运行模块,还用于通过运行所述测试脚本,按顺序依次调用并运行所述基础测试用例对应的调用脚本;针对每一个调用脚本,配置测试环境并读取与该调用脚本对应的测试数据。
10.根据权利要求7所述的装置,其特征在于,所述测试项目所需的测试用例包括基础测试用例和场景用例中的至少一类组成的测试计划用例。
11.根据权利要求7所述的装置,其特征在于,所述测试环境参数为配置数据存储路径;测试脚本运行模块,还用于根据所述配置数据存储路径,查找测试环境配置数据,根据所述测试环境配置数据,配置测试环境;所述测试环境配置数据的存储位置包括配置文件缓存区、环境信息数据库以及持久化内存中的任意一种。
12.根据权利要求7所述的装置,其特征在于,所述装置还包括版本封装模块,用于获取同一版本的各项测试文件,所述测试文件包括测试数据、测试资源、测试用例、测试计划和测试报告中的至少一项;将同一版本的各项测试文件进行归类并封装。
13.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
14.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至6中任一项所述方法的步骤。
CN201910665924.6A 2019-07-23 2019-07-23 测试任务处理方法、装置、存储介质和计算机设备 Active CN112286779B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910665924.6A CN112286779B (zh) 2019-07-23 2019-07-23 测试任务处理方法、装置、存储介质和计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910665924.6A CN112286779B (zh) 2019-07-23 2019-07-23 测试任务处理方法、装置、存储介质和计算机设备

Publications (2)

Publication Number Publication Date
CN112286779A CN112286779A (zh) 2021-01-29
CN112286779B true CN112286779B (zh) 2024-04-09

Family

ID=74419166

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910665924.6A Active CN112286779B (zh) 2019-07-23 2019-07-23 测试任务处理方法、装置、存储介质和计算机设备

Country Status (1)

Country Link
CN (1) CN112286779B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965905B (zh) * 2021-03-11 2024-06-18 京东科技信息技术有限公司 数据测试方法、装置、设备及存储介质
CN113190443A (zh) * 2021-04-28 2021-07-30 南京航空航天大学 测试方法、装置、计算机设备和存储介质
CN113220597B (zh) * 2021-06-18 2024-04-16 中国农业银行股份有限公司 测试方法、测试装置、电子设备及存储介质
CN113704099A (zh) * 2021-08-20 2021-11-26 北京空间飞行器总体设计部 一种用于航天器电源系统评测的测试脚本生成方法及设备
CN113836026A (zh) * 2021-09-28 2021-12-24 深圳Tcl新技术有限公司 一种升级测试方法、装置、电子设备和存储介质
CN114490202B (zh) * 2021-12-21 2023-06-23 北京密码云芯科技有限公司 一种密码设备测试方法、装置、电子设备及存储介质
CN114238142A (zh) * 2021-12-24 2022-03-25 四川启睿克科技有限公司 一种基于appium+python的移动端ui自动化测试方法
CN114968787B (zh) * 2022-05-27 2023-09-19 中移互联网有限公司 基于节点关系的测试方法、装置及电子设备
CN114812695B (zh) * 2022-06-27 2022-10-28 芯耀辉科技有限公司 一种产品测试方法、装置、计算机设备和存储介质
CN118132406A (zh) * 2022-11-28 2024-06-04 中兴通讯股份有限公司 一种测试方法、装置、电子设备及存储介质
CN115904852B (zh) * 2023-03-14 2023-05-16 珠海星云智联科技有限公司 一种用于数据处理器的自动化测试方法、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908543A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 应用程序测试方法、装置、计算机设备及存储介质
CN108845940A (zh) * 2018-06-14 2018-11-20 云南电网有限责任公司信息中心 一种企业级信息系统自动化功能测试方法和系统
CN109885488A (zh) * 2019-01-30 2019-06-14 上海卫星工程研究所 用例表驱动的卫星轨道计算软件自动化测试方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710370B2 (en) * 2015-10-13 2017-07-18 Adobe Systems Incorporated Automated testing of shell scripts

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107908543A (zh) * 2017-07-26 2018-04-13 平安壹钱包电子商务有限公司 应用程序测试方法、装置、计算机设备及存储介质
CN108845940A (zh) * 2018-06-14 2018-11-20 云南电网有限责任公司信息中心 一种企业级信息系统自动化功能测试方法和系统
CN109885488A (zh) * 2019-01-30 2019-06-14 上海卫星工程研究所 用例表驱动的卫星轨道计算软件自动化测试方法及系统

Also Published As

Publication number Publication date
CN112286779A (zh) 2021-01-29

Similar Documents

Publication Publication Date Title
CN112286779B (zh) 测试任务处理方法、装置、存储介质和计算机设备
CN109032611A (zh) 脚本部署方法、装置、计算机设备及存储介质
CN108319460B (zh) 应用程序安装包的生成方法、装置、电子设备及存储介质
CA3131079A1 (en) Test case generation method and device, computer equipment and storage medium
CN109032631B (zh) 应用程序补丁包获取方法、装置、计算机设备及存储介质
CN111324522A (zh) 一种自动化测试系统及方法
CN112506525A (zh) 持续集成和持续交付方法、装置、电子设备及存储介质
CN113127347A (zh) 一种接口测试方法、装置、设备及可读存储介质
CN112380130A (zh) 基于调用依赖关系的应用测试方法和装置
CN113868280B (zh) 参数化单元数据更新方法、装置、计算机设备和存储介质
CN112286999A (zh) 基于mysql和mongodb的动态表单实现方法
CN111190584A (zh) Ehis-db系统版本发布方法、装置、计算机设备和存储介质
CN113094252A (zh) 测试用例生成方法、装置、计算机设备及存储介质
CN114237754A (zh) 一种数据加载方法、装置、电子设备以及存储介质
CN110597552A (zh) 项目持续集成流水线的配置方法、装置、设备及存储介质
CN112596746B (zh) 应用安装包生成方法、装置、计算机设备和存储介质
CN117290236A (zh) 软件测试方法、装置、计算机设备及计算机可读存储介质
CN116594635A (zh) 一种云原生持续集成与交付的方法及装置
CN115757172A (zh) 测试执行方法、装置、存储介质及计算机设备
JP3978285B2 (ja) 不揮発性メモリ内蔵半導体装置テスト方法
CN113535182B (zh) 项目工程的构建方法、装置、计算机设备和存储介质
CN115934129A (zh) 软件项目更新方法、装置、计算机设备及存储介质
US11556460B2 (en) Test case generation for software development using machine learning
CN111400243B (zh) 基于流水线服务的研发管理系统以及文件存储方法、装置
CN115237422A (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