CN108932191A - 自动化测试方法、系统、计算机设备及可读存储介质 - Google Patents

自动化测试方法、系统、计算机设备及可读存储介质 Download PDF

Info

Publication number
CN108932191A
CN108932191A CN201710368055.1A CN201710368055A CN108932191A CN 108932191 A CN108932191 A CN 108932191A CN 201710368055 A CN201710368055 A CN 201710368055A CN 108932191 A CN108932191 A CN 108932191A
Authority
CN
China
Prior art keywords
test
sequence
test case
case
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
CN201710368055.1A
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.)
Beijing Didi Infinity Technology and Development Co Ltd
Original Assignee
Beijing Didi Infinity Technology and Development 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 Beijing Didi Infinity Technology and Development Co Ltd filed Critical Beijing Didi Infinity Technology and Development Co Ltd
Priority to CN201710368055.1A priority Critical patent/CN108932191A/zh
Publication of CN108932191A publication Critical patent/CN108932191A/zh
Pending legal-status Critical Current

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/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

本发明实施例提出了一种自动化测试方法、系统、计算机设备及计算机可读存储介质,应用于计算机技术领域,测试方法包括:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。在需求变更时,测试脚本的改动范围最小,能够提高测试稳定性,并且能够解决系统数据环境复杂及运行时间成本较高的问题。

Description

自动化测试方法、系统、计算机设备及可读存储介质
技术领域
本发明实施例涉及计算机技术领域,具体而言,涉及一种自动化测试方法、系统、计算机设备及计算机可读存储介质。
背景技术
在移动互联网飞速发展的今天,移动应用的数量也正在迅猛增长。据2016年WWDC(Worldwide Developers Conference,苹果全球开发者大会)数据显示,仅苹果应用商店的应用数量就有200万。面对海量的移动应用,尽管测试技术也在不断更新迭代,然而由于移动应用运行环境的复杂性,相关技术中的自动化测试仍然存在三项制约因素:(1)需求不能频繁变动,测试脚本的稳定性决定了自动化测试的维护成本。(2)系统数据环境复杂,很多涉及到流程的功能很难通过模拟输入创造出符合真实场景的运行环境。(3)运行时间成本较高,测试某个流程后面的功能需要花费的时间是前面功能的几倍至几十倍。
发明内容
本发明实施例旨在至少解决现有技术或相关技术中存在的技术问题之一。
为此,本发明实施例的一个目的在于提出了一种自动化测试方法。
本发明实施例的另一个目的在于提出了一种自动化测试系统。
本发明实施例的再一个目的在于提出了一种计算机设备。
本发明实施例的又一个目的在于提出了一种计算机可读存储介质。
有鉴于此,根据本发明实施例的一个目的,提出了一种自动化测试方法,包括:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的自动化测试方法,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决了运行时间成本较高的问题。
根据本发明实施例的上述自动化测试方法,还可以具有以下技术特征:
在上述任一技术方案中,优选地,还包括:当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务。
在上述任一技术方案中,优选地,还包括:当执行任一测试用例的操作序列无异常时,按照依赖规则获取任一测试用例的下一测试用例。
在该技术方案中,在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在上述任一技术方案中,优选地,还包括:在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;当多个测试用例全部完成测试时,获取下一测试任务;当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该技术方案中,在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在上述任一技术方案中,优选地,在获取所述下一测试任务之后,还包括:判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该技术方案中,在获取到下一测试任务之后直接、自动地判断此测试任务中的测试用例是否符合依赖规则,并在符合时进行测试,节约了测试时间,提高了测试效率,以及按照依赖规则获取下一测试用例之后,依次执行下一测试用例的边界取值及操作序列并标记执行边界取值的结果信息、操作序列的操作命令信息、操作序列的执行结果信息,在保证测试用例按照依赖规则执行的同时降低了运行时间成本。
在上述任一技术方案中,优选地,还包括:当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该技术方案中,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至Flood测试集合里没有测试任务,即只在测试用例具有依赖规则时才进行自动化测试,能够在对测试过程减少人工参与的同时保证测试过程的正确执行。
在上述技术方案中,优选地,在Flood测试集合里获取当前测试任务之前,还包括:设置依赖规则。
在该技术方案中,在Flood测试集合里获取当前测试任务之前,进行测试环境的初使化,包括设置依赖规则,即设置测试用例之间的依赖规则,使得测试用例能够按照此规则进行自动测试,保证用例有序的执行,以及测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据,从而完成整个应用系统的环境数据输入,而无需前端模拟出这些数据。在上述任一技术方案中,优选地,还包括:存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该技术方案中,将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
根据本发明实施例的另一个目的,提出了一种自动化测试系统,包括:任务获取单元,用于获取当前测试任务,其中,当前测试任务包括多个测试用例;判断单元,用于判断多个测试用例之间的执行顺序是否符合依赖规则;用例获取单元,用于当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;边界获取单元,用于获取任一测试用例的边界取值;标记单元,用于基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的自动化测试系统,任务获取单元在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断单元判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,用例获取单元获取其中一个测试用例,边界获取单元获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并通过标记单元标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
根据本发明实施例的上述自动化测试系统,还可以具有以下技术特征:
在上述任一技术方案中,优选地,标记单元,还用于当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务。
在上述任一技术方案中,优选地,用例获取单元,还用于当执行任一测试用例的操作序列无异常时,按照依赖规则获取任一测试用例的下一测试用例。
在该技术方案中,在测试用例执行边界取值和/或执行操作序列的过程中出现异常时,由标记单元标记出异常信息并进入下一测试任务,在未出现异常时,用例获取单元按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在上述任一技术方案中,优选地,判断单元,还用于在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;任务获取单元,还用于当多个测试用例全部完成测试时,获取下一测试任务;以及用例获取单元,还用于当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该技术方案中,在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,通过判断单元从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,任务获取单元获取下一测试任务,当未被全部完成时,用例获取单元获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在上述任一技术方案中,优选地,判断单元,还用于在获取下一测试任务之后,判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该技术方案中,判断单元在获取到下一测试任务之后直接、自动地判断此测试任务中的测试用例是否符合依赖规则,并在符合时进行测试,节约了测试时间,提高了测试效率。标记单元按照依赖规则获取下一测试用例之后,依次执行下一测试用例的边界取值及操作序列并标记执行边界取值的结果信息、操作序列的操作命令信息、操作序列的执行结果信息,在保证测试用例按照依赖规则执行的同时降低了运行时间成本。
在上述任一技术方案中,优选地,任务获取单元,还用于当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;判断单元,还用于判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该技术方案中,任务获取单元在多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务,即只在测试用例具有依赖规则时才进行自动化测试,能够在对测试过程减少人工参与的同时保证测试过程的正确执行。
在上述技术方案中,优选地,还包括:设置单元,用于设置依赖规则。
在该技术方案中,在获取当前测试任务之前,进行测试环境的初使化,包括通过设置单元设置依赖规则,即设置测试用例之间的依赖规则,使得测试用例能够按照此规则进行自动测试,保证用例有序的执行,以及测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据,从而完成整个应用系统的环境数据输入,而无需前端模拟出这些数据。在上述任一技术方案中,优选地,还包括:存储单元,用于存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;日志生成单元,用于根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该技术方案中,通过存储单元及日志生成单元,将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
根据本发明实施例的再一个目的,提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,标记边界取值的执行结果信息;执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的计算机设备,处理器执行计算机程序时实现:在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
根据本发明实施例的上述计算机设备,还可以具有以下技术特征:
在上述技术方案中,优选地,处理器执行计算机程序时还实现以下步骤:当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;当执行任一测试用例的操作序列无异常时,按照依赖规则获取所述任一测试用例的下一测试用例。
在该技术方案中,处理器执行计算机程序时还实现在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在上述任一技术方案中,优选地,处理器执行计算机程序时还实现以下步骤:在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;当多个测试用例全部完成测试时,获取下一测试任务;当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该技术方案中,处理器执行计算机程序时还实现在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在上述任一技术方案中,优选地,处理器执行计算机程序时还实现以下步骤:存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该技术方案中,处理器执行计算机程序时还实现将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
根据本发明实施例的又一个目的,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的计算机可读存储介质,计算机程序被处理器执行时实现:在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取一个测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
根据本发明实施例的上述计算机可读存储介质,还可以具有以下技术特征:
在上述技术方案中,优选地,计算机程序被处理器执行时还实现以下步骤:当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;当执行任一测试用例的操作序列无异常时,按照依赖规则获取所述任一测试用例的下一测试用例。
在该技术方案中,计算机程序被处理器执行时还实现在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在上述任一技术方案中,优选地,计算机程序被处理器执行时还实现以下步骤:在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;当多个测试用例全部完成测试时,获取下一测试任务;当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该技术方案中,计算机程序被处理器执行时还实现在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在上述任一技术方案中,优选地,计算机程序被处理器执行时还实现以下步骤:存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据边界取值的执行结果信息、操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该技术方案中,计算机程序被处理器执行时还实现将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
本发明实施例的附加方面和优点将在下面的描述部分中变得明显,或通过本发明实施例的实践了解到。
附图说明
本发明实施例的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了本发明实施例的一个实施例的自动化测试方法的流程示意图;
图2示出了本发明实施例的另一个实施例的自动化测试方法的流程示意图;
图3示出了本发明实施例的再一个实施例的自动化测试方法的流程示意图;
图4示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图;
图5示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图;
图6示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图;
图7示出了本发明实施例的一个实施例的自动化测试系统的示意框图;
图8示出了本发明实施例的另一个实施例的自动化测试系统的示意框图;
图9示出了本发明实施例的再一个实施例的自动化测试系统的示意框图;
图10示出了本发明实施例的一个实施例的计算机设备的示意框图;
图11示出了本发明实施例的一个具体实施例的自动化测试方法的执行过程示意图;
图12示出了本发明实施例的另一个具体实施例的自动化测试方法的执行过程示意图。
具体实施方式
为了能够更清楚地理解本发明实施例的上述目的、特征和优点,下面结合附图和具体实施方式对本发明实施例进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明实施例,但是,本发明实施例还可以采用其他不同于在此描述的其他方式来实施,因此,本发明实施例的保护范围并不限于下面公开的具体实施例的限制。
本发明实施例第一方面的实施例,提出一种自动化测试方法,图1示出了本发明实施例的一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤102,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤104,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤106,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤108,获取任一测试用例的边界取值;
步骤110,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的自动化测试方法,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
图2示出了本发明实施例的另一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤202,设置依赖规则;
步骤204,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤206,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤208,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤210,获取任一测试用例的边界取值;
步骤212,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
在该实施例中,在测试集合里获取当前测试任务之前,进行测试环境的初使化,包括设置依赖规则,即设置测试用例之间的依赖规则,使得测试用例能够按照此规则进行自动测试,保证用例有序的执行,以及测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据,从而完成整个应用系统的环境数据输入,而无需前端模拟出这些数据。
图3示出了本发明实施例的再一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤302,设置依赖规则;
步骤304,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤306,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤308,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤310,获取任一测试用例的边界取值;
步骤312,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
步骤314,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务。
在该实施例中,进行测试环境的初使化,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务,即只在测试用例具有依赖规则时才进行自动化测试,能够在对测试过程减少人工参与的同时保证测试过程的正确执行。
图4示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤402,设置依赖规则;
步骤404,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤406,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤408,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤410,获取任一测试用例的边界取值;
步骤412,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
步骤414,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;
步骤416,判断执行任一测试用例的操作序列是否出现异常;
步骤418,当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;
步骤420,当执行任一测试用例的操作序列无异常时,按照依赖规则获取任一测试用例的下一测试用例。
在该实施例中,进行测试环境的初使化,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务。在测试用执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
图5示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤502,设置依赖规则;
步骤504,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤506,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤508,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤510,获取任一测试用例的边界取值;
步骤512,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
步骤514,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;
步骤516,判断测试任务是否结束,当未结束时并进入步骤506,当测试任务结束时结束线程;
步骤518,判断执行任一测试用例的操作序列是否出现异常;
步骤520,当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务,并进入步骤516;
步骤522,当执行任一测试用例的操作序列无异常时,判断多个测试用例是否全部完成测试;
步骤524,当多个测试用例全部完成测试时,获取下一测试任务,并进入步骤516;
步骤526,当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例,并进入步骤510。
在该实施例中,进行测试环境的初使化,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务。在测试用执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例。在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在本发明实施例的一个实施例中,优选地,在获取所述下一测试任务之后,还包括:判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该实施例中,在获取到下一测试任务之后直接、自动地判断此测试任务中的测试用例是否符合依赖规则,并在符合时进行测试,节约了测试时间,提高了测试效率,以及按照依赖规则获取下一测试用例之后,依次执行下一测试用例的边界取值及操作序列并标记执行边界取值的结果信息、操作序列的操作命令信息、操作序列的执行结果信息,在保证测试用例按照依赖规则执行的同时降低了运行时间成本。
图6示出了本发明实施例的又一个实施例的自动化测试方法的流程示意图。其中,该方法包括:
步骤602,设置依赖规则;
步骤604,获取当前测试任务,其中,当前测试任务包括多个测试用例;
步骤606,判断多个测试用例之间的执行顺序是否符合依赖规则;
步骤608,当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
步骤610,获取任一测试用例的边界取值;
步骤612,基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
步骤614,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;
步骤616,判断测试任务是否结束,当未结束时并进入步骤606,当测试任务结束时进入步骤628;
步骤618,判断执行任一测试用例的操作序列是否出现异常;
步骤620,当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务,并进入步骤616;
步骤622,当执行任一测试用例的操作序列无异常时,判断多个测试用例是否全部完成测试;
步骤624,当多个测试用例全部完成测试时,获取下一测试任务,并进入步骤616;
步骤626,当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例,并进入步骤610;
步骤628,存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该实施例中,进行测试环境的初使化,在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息,当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务。在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例。在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试。将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
本发明实施例第二方面的实施例,提出一种自动化测试系统,图7示出了本发明实施例的一个实施例的自动化测试系统700的示意框图。其中,该系统包括:
任务获取单元702,用于在Flood测试集合里获取当前测试任务,其中,当前测试任务包括多个测试用例;
判断单元704,用于判断多个测试用例之间的执行顺序是否符合依赖规则;
用例获取单元706,用于当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
边界获取单元708,用于获取任一测试用例的边界取值;
标记单元710,用于基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的自动化测试系统700,任务获取单元702在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断单元704判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,用例获取单元706获取其中一个测试用例,边界获取单元708获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并通过标记单元710标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
图8示出了本发明实施例的另一个实施例的自动化测试系统800的示意框图。其中,该系统包括:
任务获取单元802,用于获取当前测试任务,其中,当前测试任务包括多个测试用例;
判断单元804,用于判断多个测试用例之间的执行顺序是否符合依赖规则;
用例获取单元806,用于当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
边界获取单元808,用于获取任一测试用例的边界取值;
标记单元810,用于执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
设置单元812,用于设置依赖规则。
在该实施例中,在测试集合里获取当前测试任务之前,进行测试环境的初使化,包括通过设置单元812设置依赖规则,即设置测试用例之间的依赖规则,使得测试用例能够按照此规则进行自动测试,保证用例有序的执行,以及测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据,从而完成整个应用系统的环境数据输入,而无需前端模拟出这些数据。
在本发明实施例的一个实施例中,优选地,任务获取单元802,还用于当多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务;判断单元804,还用于判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则。
在该实施例中,任务获取单元802在多个测试用例之间的执行顺序不符合依赖规则时,不处理当前测试任务,并获取当前测试任务的下一测试任务,继续判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则,直至测试集合里没有测试任务,即只在测试用例具有依赖规则时才进行自动化测试,能够在对测试过程减少人工参与的同时保证测试过程的正确执行。
在本发明实施例的一个实施例中,优选地,标记单元810,还用于当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;用例获取单元806,还用于当执行任一测试用例的操作序列无异常时,按照依赖规则获取任一测试用例的下一测试用例。
在该实施例中,在测试用例执行操作序列的过程中出现异常时,由标记单元808标记出异常信息并进入下一测试任务,在未出现异常时,用例获取单元806按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在本发明实施例的一个实施例中,优选地,判断单元804,还用于在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;任务获取单元802,还用于当多个测试用例全部完成测试时,获取下一测试任务;以及用例获取单元806,还用于当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该实施例中,在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,通过判断单元804从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,任务获取单元802获取下一测试任务,当未被全部完成时,用例获取单元806获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在本发明实施例的一个实施例中,优选地,判断单元804,还用于在获取下一测试任务之后,判断下一测试任务中的多个测试用例之间的执行顺序是否符合依赖规则;标记单元808,还用于按照依赖规则获取任一测试用例的下一测试用例之后,执行下一测试用例的边界取值,标记下一测试用例的边界取值的执行结果信息;以及执行下一测试用例的操作序列,标记下一测试用例的操作序列的操作命令信息和操作序列的执行结果信息。
在该实施例中,判断单元804在获取到下一测试任务之后直接、自动地判断此测试任务中的测试用例是否符合依赖规则,并在符合时进行测试,节约了测试时间,提高了测试效率。标记单元808按照依赖规则获取下一测试用例之后,依次执行下一测试用例的边界取值及操作序列并标记执行边界取值的结果信息、操作序列的操作命令信息、操作序列的执行结果信息,在保证测试用例按照依赖规则执行的同时降低了运行时间成本。
图9示出了本发明实施例的再一个实施例的自动化测试系统900的示意框图。其中,该系统包括:
任务获取单元902,用于获取当前测试任务,其中,当前测试任务包括多个测试用例;
判断单元904,用于判断多个测试用例之间的执行顺序是否符合依赖规则;
用例获取单元906,用于当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;
边界获取单元908,用于获取任一测试用例的边界取值;
标记单元910,用于执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息;
设置单元912,用于设置依赖规则;
存储单元914,用于存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;
日志生成单元916,用于根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该实施例中,通过存储单元914及日志生成单元916,将操作序列的操作命令信息、操作序列的执行结果信息、异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。需要说明的是,本实施例中的任务获取单元902、判断单元904、用例获取单元906、边界获取单元908、标记单元910、设置单元912分别具有上述任务获取单元802、判断单元804、用例获取单元806、边界获取单元808、标记单元810、设置单元812的全部功能。
本发明实施例第三方面的实施例,提出一种计算机设备,图10示出了本发明实施例的一个实施例的计算机设备1000的示意框图。其中,该设备包括:
存储器1002、处理器1004及存储在存储器1002上并可在处理器1004上运行的计算机程序,处理器1004执行计算机程序时实现以下步骤:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的计算机设备1000,处理器1004执行计算机程序时实现:在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取任一测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
在本发明实施例的一个实施例中,优选地,处理器1004执行计算机程序时还实现以下步骤:当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;当执行任一测试用例的操作序列无异常时,按照依赖规则获取所述任一测试用例的下一测试用例。
在该实施例中,处理器1004执行计算机程序时还实现在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在本发明实施例的一个实施例中,优选地,处理器1004执行计算机程序时还实现以下步骤:在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;当多个测试用例全部完成测试时,获取下一测试任务;当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该实施例中,处理器1004执行计算机程序时还实现在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在本发明实施例的一个实施例中,优选地,处理器执行计算机程序时还实现以下步骤:存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该实施例中,处理器执行计算机程序时还实现将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
本发明实施例第四方面的实施例,提出了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取当前测试任务,其中,当前测试任务包括多个测试用例;判断多个测试用例之间的执行顺序是否符合依赖规则;当多个测试用例之间的执行顺序符合依赖规则时,获取多个测试用例中的任一测试用例;获取任一测试用例的边界取值;基于边界取值,执行任一测试用例的操作序列,标记操作序列的操作命令信息和操作序列的执行结果信息。
本发明实施例提供的计算机可读存储介质,计算机程序被处理器执行时实现:在测试集合里获取当前需要测试的任务加入Flood主线程并启动Flood主线程,其中Flood为一种测试工具,判断当前测试任务中包含的所有测试用例的执行顺序是否符合依赖规则,依赖规则为预设的执行顺序,并在符合时,开始进行用例测试,获取其中一个测试用例,获取一个测试用例的边界取值,依次执行此测试用例的操作序列,并标记操作序列的操作命令信息和操作序列的执行结果信息。本发明实施例中通过将测试任务采用原子用例设计能够保证每个业务功能可以用一个独立的用例来描述,在需求变更的情况下改动范围也会缩小到相关功能的独立的用例上面,提高测试稳定性,并且通过测试用例间的依赖规则使得测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的系统数据输入使用真实用户场景的数据。另外,由标记的方法代替相关测试中的断言解决运行时间成本较高的问题。
在本发明实施例的一个实施例中,优选地,计算机程序被处理器执行时还实现以下步骤:当执行任一测试用例的操作序列出现异常时,标记异常信息,并获取下一测试任务;当执行任一测试用例的操作序列无异常时,按照依赖规则获取所述任一测试用例的下一测试用例。
在该实施例中,计算机程序被处理器执行时还实现在测试用例执行操作序列的过程中出现异常时,标记出异常信息并进入下一测试任务,在未出现异常时,按照依赖规则获取下一测试用例,给出对出现异常信息时的处理过程,保证整个测试过程的执行,提高测试效率,并且使得测试人员能够通过标记的异常信息了解测试用例失败原因。
在本发明实施例的一个实施例中,优选地,计算机程序被处理器执行时还实现以下步骤:在任一测试用例不存在下一测试用例时,判断多个测试用例是否全部完成测试;当多个测试用例全部完成测试时,获取下一测试任务;当多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
在该实施例中,计算机程序被处理器执行时还实现在任一测试用例不存在下一测试用例时,将指针指向头部测试用例,从头部测试用例到尾部测试用例依次判断是否全部都测试完成,当全部完成时,获取下一测试任务,当未被全部完成时,获取未完成测试用例中的任一测试用例并对其进行测试,保证在当前任务中的测试用例均完成后自动进入下一测试任务,并且还能够保证当前测试任务中的所有测试用例全部完成测试,避免遗漏,提高了测试过程的精准度。
在本发明实施例的一个实施例中,优选地,计算机程序被处理器执行时还实现以下步骤:存储操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息;根据操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息生成执行日志。
在该实施例中,计算机程序被处理器执行时还实现将操作序列的操作命令信息、操作序列的执行结果信息和/或异常信息进行存储并生成执行日志,同时结束主线程,通过将上述信息生成执行日志,能够为测试人员提供完整的、丰富的系统信息,使得测试人员可通过分析执行日志直观地掌握系统测试状况。
图11示出了本发明实施例的一个具体实施例的自动化测试方法的执行过程示意图。其中,该方法包括:
步骤一,Flood主线程启动,初使化测试环境。
步骤二,创建一个工作线程,从测试集合里取一个任务a,加入Flood主线程并启动。工作线程启动后,检查原子用例集合中的原子用例执行顺序,如果执行顺序符合系统中预存的依赖集合中的用例间的依赖规则,则执行步骤三;否则,重复执行这一步骤,直到测试集合里没有任务后执行步骤四。采用原子用例设计,保证每个业务功能可以用一个独立的用例来描述,如果需求变更,对用例的改动范围也会缩小到相关功能的用例上,解决了测试过程中需求不能频繁变动的问题。
步骤三,从测试任务里取出一个测试用例,在边界集合中取该用例的一组边界取值,如果没有边界取值则使用默认值。如果该用例所有的边界取值都已经被执行过,标记为完成。然后,执行该用例的操作序列,标记每个操作的命令和执行结果。使用标记方法取代传统单元测试里的断言,解决了运行时间成本高的问题。若执行过程无异常,则将指针指向当前用例的下一个用例并重复当前步骤,如果没有下一个用例,将指针指向头部用例,并判断是否所有用例都已经测试完成,如果是则执行步骤二,否则重复当前步骤三。若执行过程中出现异常,标记异常信息,然后执行步骤二。采用如图11所示的有向连通图设计,通过定义用例之间的依赖规则,保证用例有序执行,测试可以通过操作链在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据,从而完成整个应用系统的环境数据输入,而无需由前端模拟后台数据,解决了系统数据环境复杂的问题。
步骤四,整理并收集标记信息和执行日志,结束测试主线程。
图12示出了本发明实施例的另一个具体实施例的自动化测试方法的执行过程示意图。执行过程包括:(1)用户进行测试,首先对软件登陆用例进行测试,读取其边界条件帐号1、帐号2、帐号3,然后根据依赖规则对发单用例进行测试,并自动完成系统数据输入,读取其边界条件起点1、起点2、起点3,然后根据依赖规则对支付用例进行测试,并自动完成系统数据输入,读取其边界条件微信、支付宝,最后根据依赖规则对评价用例进行测试,并自动完成系统数据输入,读取其边界条件五星+评价、一星+评价,在最后的支付用例测试完成后,可以重新选择其它边界条件执行测试,并且在对上述用例进行测试的过程中出现异常时,进行异常信息标记。(2)当仅有登陆用例和评价用例时,系统可以自动补全发单用例和支付用例的执行路径。
本发明实施例能够实现以下技术效果:(1)采用原子用例设计,在需求变更时,使得测试脚本的改动范围最小。(2)采用有向连通图设计,测试可以在用例间漫游的过程中自动完成系统数据输入,使测试环境的数据输入使用真实用户场景的数据。(3)采用标记算法,对某个节点的检查使用标记,碰到执行失败的用例,不用中断测试过程。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“具体实施例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或特点包含于本发明实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或实例。而且,描述的具体特征、结构、材料或特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述仅为本发明实施例的优选实施例而已,并不用于限制本发明实施例,对于本领域的技术人员来说,本发明实施例可以有各种更改和变化。凡在本发明实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。

Claims (24)

1.一种自动化测试方法,其特征在于,包括:
获取当前测试任务,其中,所述当前测试任务包括多个测试用例;
判断所述多个测试用例之间的执行顺序是否符合依赖规则;
当所述多个测试用例之间的执行顺序符合所述依赖规则时,获取所述多个测试用例中的任一测试用例;
获取所述任一测试用例的边界取值;
基于所述边界取值,执行所述任一测试用例的操作序列,标记所述操作序列的操作命令信息和所述操作序列的执行结果信息。
2.根据权利要求1所述的自动化测试方法,其特征在于,还包括:
当执行所述任一测试用例的操作序列出现异常时,标记异常信息,并获取所述下一测试任务。
3.根据权利要求2所述的自动化测试方法,其特征在于,还包括:
当执行所述任一测试用例的操作序列无异常时,按照所述依赖规则获取所述任一测试用例的下一测试用例。
4.根据权利要求3所述的自动化测试方法,其特征在于,还包括:
在所述任一测试用例不存在所述下一测试用例时,判断所述多个测试用例是否全部完成测试;
当所述多个测试用例全部完成测试时,获取所述下一测试任务;
当所述多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
5.根据权利要求4所述的自动化测试方法,其特征在于,在获取所述下一测试任务之后,还包括:
判断所述下一测试任务中的多个测试用例之间的执行顺序是否符合所述依赖规则。
6.根据权利要求1所述的自动化测试方法,其特征在于,还包括:
当所述多个测试用例之间的执行顺序不符合所述依赖规则时,不处理所述当前测试任务,并获取所述当前测试任务的下一测试任务;
判断所述下一测试任务中的多个测试用例之间的执行顺序是否符合所述依赖规则。
7.根据权利要求1至6中任一项所述的自动化测试方法,其特征在于,在获取所述当前测试任务之前,还包括:
设置所述依赖规则。
8.根据权利要求1至6中任一项所述的自动化测试方法,其特征在于,还包括:
存储所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息;
根据所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息生成执行日志。
9.一种自动化测试系统,其特征在于,包括:
任务获取单元,用于获取当前测试任务,其中,所述当前测试任务包括多个测试用例;
判断单元,用于判断所述多个测试用例之间的执行顺序是否符合依赖规则;
用例获取单元,用于当所述多个测试用例之间的执行顺序符合所述依赖规则时,获取所述多个测试用例中的任一测试用例;
边界获取单元,用于获取所述任一测试用例的边界取值;
标记单元,用于基于所述边界取值,执行所述任一测试用例的操作序列,标记所述操作序列的操作命令信息和所述操作序列的执行结果信息。
10.根据权利要求9所述的自动化测试系统,其特征在于,
所述标记单元,还用于当执行所述任一测试用例的操作序列出现异常时,标记异常信息,并获取所述下一测试任务。
11.根据权利要求10所述的自动化测试系统,其特征在于,
所述用例获取单元,还用于当执行所述任一测试用例的操作序列无异常时,按照所述依赖规则获取所述任一测试用例的下一测试用例。
12.根据权利要求11所述的自动化测试系统,其特征在于,
所述判断单元,还用于在所述任一测试用例不存在所述下一测试用例时,判断所述多个测试用例是否全部完成测试;
所述任务获取单元,还用于当所述多个测试用例全部完成测试时,获取所述下一测试任务;以及
所述用例获取单元,还用于当所述多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
13.根据权利要求12所述的自动化测试系统,其特征在于,
所述判断单元,还用于在获取所述下一测试任务之后,判断所述下一测试任务中的多个测试用例之间的执行顺序是否符合所述依赖规则。
14.根据权利要求9所述的自动化测试系统,其特征在于,
所述任务获取单元,还用于当所述多个测试用例之间的执行顺序不符合所述依赖规则时,不处理所述当前测试任务,并获取所述当前测试任务的下一测试任务;
所述判断单元,还用于判断所述下一测试任务中的多个测试用例之间的执行顺序是否符合所述依赖规则。
15.根据权利要求9至14中任一项所述的自动化测试系统,其特征在于,还包括:
设置单元,用于设置所述依赖规则。
16.根据权利要求9至14中任一项所述的自动化测试系统,其特征在于,还包括:
存储单元,用于存储所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息;
日志生成单元,用于根据所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息生成执行日志。
17.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
获取当前测试任务,其中,所述当前测试任务包括多个测试用例;
判断所述多个测试用例之间的执行顺序是否符合依赖规则;
当所述多个测试用例之间的执行顺序符合所述依赖规则时,获取所述多个测试用例中的任一测试用例;
获取所述任一测试用例的边界取值;
基于所述边界取值,执行所述任一测试用例的操作序列,标记所述操作序列的操作命令信息和所述操作序列的执行结果信息。
18.根据权利要求17所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现以下步骤:
当执行所述任一测试用例的操作序列出现异常时,标记异常信息,并获取所述下一测试任务;
当执行所述任一测试用例的操作序列无异常时,按照所述依赖规则获取所述任一测试用例的下一测试用例。
19.根据权利要求18所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现以下步骤:
在所述任一测试用例不存在所述下一测试用例时,判断所述多个测试用例是否全部完成测试;
当所述多个测试用例全部完成测试时,获取所述下一测试任务;
当所述多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
20.根据权利要求17至19中任一项所述的计算机设备,其特征在于,所述处理器执行所述计算机程序时还实现以下步骤:
存储所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息;
根据所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息生成执行日志。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现以下步骤:
获取当前测试任务,其中,所述当前测试任务包括多个测试用例;
判断所述多个测试用例之间的执行顺序是否符合依赖规则;
当所述多个测试用例之间的执行顺序符合所述依赖规则时,获取所述多个测试用例中的任一测试用例;
获取所述任一测试用例的边界取值;
基于所述边界取值,执行所述任一测试用例的操作序列,标记所述操作序列的操作命令信息和所述操作序列的执行结果信息。
22.根据权利要求21所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时还实现以下步骤:
当执行所述任一测试用例的操作序列出现异常时,标记异常信息,并获取所述下一测试任务;
当执行所述任一测试用例的操作序列无异常时,按照所述依赖规则获取所述任一测试用例的下一测试用例。
23.根据权利要求22所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时还实现以下步骤:
在所述任一测试用例不存在所述下一测试用例时,判断所述多个测试用例是否全部完成测试;
当所述多个测试用例全部完成测试时,获取所述下一测试任务;
当所述多个测试用例未全部完成测试时,获取未完成测试用例中的任一测试用例。
24.根据权利要求21至23中任一项所述的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时还实现以下步骤:
存储所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息;
根据所述操作序列的操作命令信息、所述操作序列的执行结果信息和/或所述异常信息生成执行日志。
CN201710368055.1A 2017-05-23 2017-05-23 自动化测试方法、系统、计算机设备及可读存储介质 Pending CN108932191A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710368055.1A CN108932191A (zh) 2017-05-23 2017-05-23 自动化测试方法、系统、计算机设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710368055.1A CN108932191A (zh) 2017-05-23 2017-05-23 自动化测试方法、系统、计算机设备及可读存储介质

Publications (1)

Publication Number Publication Date
CN108932191A true CN108932191A (zh) 2018-12-04

Family

ID=64450214

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710368055.1A Pending CN108932191A (zh) 2017-05-23 2017-05-23 自动化测试方法、系统、计算机设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN108932191A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110908918A (zh) * 2019-11-29 2020-03-24 北京网聘咨询有限公司 针对多个相互依赖的node.js模块的单元测试方法及装置
CN111008131A (zh) * 2019-11-28 2020-04-14 广州品唯软件有限公司 自动化测试方法、装置、计算机设备和存储介质
CN111628912A (zh) * 2020-05-28 2020-09-04 深圳华锐金融技术股份有限公司 资源相关数据处理方法、装置、计算机设备和存储介质
CN112241372A (zh) * 2020-10-22 2021-01-19 北京字节跳动网络技术有限公司 终端测试方法、装置和电子设备
CN112256554A (zh) * 2019-07-22 2021-01-22 腾讯科技(深圳)有限公司 一种基于场景测试用例进行测试的方法及设备
CN115545677A (zh) * 2022-11-24 2022-12-30 云账户技术(天津)有限公司 基于自动化用例执行情况的上线流程规范检测方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1955945A (zh) * 2005-10-25 2007-05-02 国际商业机器公司 为软件测试过程自动生成测试执行序列的方法和装置
CN101727389A (zh) * 2009-11-23 2010-06-09 中兴通讯股份有限公司 一种分布式综合业务自动化测试系统及方法
CN101882107A (zh) * 2010-06-28 2010-11-10 山东中创软件商用中间件股份有限公司 一种web应用自动化测试的方法及装置
CN102495804A (zh) * 2011-12-27 2012-06-13 创新科存储技术(深圳)有限公司 软件自动化测试方法
CN102831058A (zh) * 2012-08-17 2012-12-19 北京星网锐捷网络技术有限公司 一种测试方法和装置
CN105786693A (zh) * 2014-12-26 2016-07-20 展讯通信(天津)有限公司 一种自测试执行系统及方法以及移动终端
CN105824746A (zh) * 2015-01-05 2016-08-03 中国移动(深圳)有限公司 一种基于用例依赖关系自动生成测试调度的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1955945A (zh) * 2005-10-25 2007-05-02 国际商业机器公司 为软件测试过程自动生成测试执行序列的方法和装置
CN101727389A (zh) * 2009-11-23 2010-06-09 中兴通讯股份有限公司 一种分布式综合业务自动化测试系统及方法
CN101882107A (zh) * 2010-06-28 2010-11-10 山东中创软件商用中间件股份有限公司 一种web应用自动化测试的方法及装置
CN102495804A (zh) * 2011-12-27 2012-06-13 创新科存储技术(深圳)有限公司 软件自动化测试方法
CN102831058A (zh) * 2012-08-17 2012-12-19 北京星网锐捷网络技术有限公司 一种测试方法和装置
CN105786693A (zh) * 2014-12-26 2016-07-20 展讯通信(天津)有限公司 一种自测试执行系统及方法以及移动终端
CN105824746A (zh) * 2015-01-05 2016-08-03 中国移动(深圳)有限公司 一种基于用例依赖关系自动生成测试调度的方法和装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256554A (zh) * 2019-07-22 2021-01-22 腾讯科技(深圳)有限公司 一种基于场景测试用例进行测试的方法及设备
CN112256554B (zh) * 2019-07-22 2023-06-16 腾讯科技(深圳)有限公司 一种基于场景测试用例进行测试的方法及设备
CN111008131A (zh) * 2019-11-28 2020-04-14 广州品唯软件有限公司 自动化测试方法、装置、计算机设备和存储介质
CN111008131B (zh) * 2019-11-28 2023-04-25 广州品唯软件有限公司 自动化测试方法、装置、计算机设备和存储介质
CN110908918A (zh) * 2019-11-29 2020-03-24 北京网聘咨询有限公司 针对多个相互依赖的node.js模块的单元测试方法及装置
CN111628912A (zh) * 2020-05-28 2020-09-04 深圳华锐金融技术股份有限公司 资源相关数据处理方法、装置、计算机设备和存储介质
CN111628912B (zh) * 2020-05-28 2021-08-03 深圳华锐金融技术股份有限公司 资源相关数据处理方法、装置、计算机设备和存储介质
CN112241372A (zh) * 2020-10-22 2021-01-19 北京字节跳动网络技术有限公司 终端测试方法、装置和电子设备
CN115545677A (zh) * 2022-11-24 2022-12-30 云账户技术(天津)有限公司 基于自动化用例执行情况的上线流程规范检测方法和系统

Similar Documents

Publication Publication Date Title
CN108932191A (zh) 自动化测试方法、系统、计算机设备及可读存储介质
US20180300226A1 (en) System and method for equivalence class analysis-based automated requirements-based test case generation
Kellner et al. Software process modeling example problem
Paech et al. Non-functional requirements engineering-quality is essential
US20070094541A1 (en) Method and apparatus for generating test execution sequences automatically for a software testing process
CN104375941B (zh) 可执行程序测试用例集二进制代码覆盖率自动化评估方法
CN108595336A (zh) 一种基于以太网的计算机软件测试系统
CN104021072A (zh) 用于评估失效的软件程序的机器和方法
CN109359053A (zh) 测试报告的生成方法和相关装置、测试系统及存储介质
CN114138670B (zh) 基于接口自动化测试与功能、性能、安全测试融合的方法
CN104156308B (zh) 一种基于用户执行踪迹重放的移动应用测试方法
CN107357721A (zh) 测试系统的方法及装置
Gantait Test case generation and prioritization from UML models
CN109992511A (zh) 获取代码测试覆盖率的装置及方法
CN110399284A (zh) 一种测试用例编写与执行方法及装置
Bures Model for evaluation and cost estimations of the automated testing architecture
Kannangara et al. Impact of refactoring on external code quality improvement: An empirical evaluation
US20230351253A1 (en) System and method for performing test data management
JPS6126112A (ja) システムの異常診断方式
Vanhanen et al. Lightweight elicitation and analysis of software product quality goals: A multiple industrial case study
Lipke Applying statistical forecasting of project duration to earned schedule-longest path
CN114968816A (zh) 基于数据模拟的策略测试方法、装置、设备及存储介质
Huang et al. Predicting software defects based on cognitive error theories
CN110287121A (zh) 一种自动化用例的测试方法及装置
Seifert Conformance Testing based on UML State Machines: Automated Test Case Generation, Execution and Evaluation

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20181204

RJ01 Rejection of invention patent application after publication