根据预置规则自动生成测试用例的测试模板及测试方法

文档序号:9750717阅读:1279来源:国知局
根据预置规则自动生成测试用例的测试模板及测试方法
【技术领域】
[0001] 本发明涉及数据库领域,具体是根据预置规则自动生成测试用例的测试模板及测 试方法。
【背景技术】
[0002] 在测试实施过程中,手工编写测试用例需要占用大量的人力成本,而且同一功能 的测试用例,在执行步骤、测试前提、预期检查上会有不同程度的相似的地方,这些重复性 的工作是必须的但是又非常占用测试时间,而且每一个测试人员编写的测试用例格式和风 格都不尽相同,所以如果能够统一风格并且能够通过简单的组织自动生成文本测试用例, 则可以大大减轻测试工作量,并且还能使文档内容统一详细完整。
[0003] 在所有测试过程中,异常测试是不可避免的,但是异常测试的触发点、测试因素很 多,很难人工穷举所有可能出现的情况,所以需要一种可预置规则自动生成用例的工具,以 加速测试过程并提高测试覆盖率。

【发明内容】

[0004] 本发明的目的在于提供根据预置规则自动生成测试用例的测试模板及测试方法, 它通过可执行的、自描述的、可选参数的过程,自动组合形成测试用例,可以大大缩短测试 时间,减少测试人力需求。
[0005] 本发明为实现上述目的,通过以下技术方案实现:
[0006] 根据预置规则自动生成测试用例的测试模板,包括参数定义区和执行步骤定义 区,所述参数定义区的参数能够任意定义,所述执行步骤定义区指定步骤里调用的测试脚 本,所述测试脚本包括descript ion函数、detail函数和process函数,所述descript ion函 数里实现输出该步骤的概要信息,所述detail函数实现该步骤执行的具体测试步骤,所述 process函数实现该步骤需要执行的测试过程。
[0007] 所述测试模板使用yaml格式,所述参数定义区的参数以"参数名:参数值"的形式 指定参数,所述参数值为一个或多个,多个参数值之间使用逗号分隔,所述参数包括必定参 数和可选参数,所述必定参数为按规则书写的参数,所述可选参数为自由设定的参数。所述 执行步骤定义区以"步骤名称:对应脚本"的形式指定调用的测试脚本,所述步骤名称包括: on_global_setup、on_setup、on_process、on_detect、on_exception、on_check、on_fail、 on_success和on_teardown〇
[0008] 使用根据预置规则自动生成测试用例的测试模板的测试方法,包括以下步骤:
[0009] 1)设置参数,指定自动生成文本测试用例;
[0010] 2)读取参数,自动生成可执行测试用例集;
[0011] 3)解析生成的可执行测试用例集,自动执行测试用例;
[0012] 4)指定具体的测试用例,自动匹配正则表达式,执行测试用例;
[0013] 5)执行测试用例过程中,如果异常中断执行,下一次执行时继续执行上一次未执 行完成的用例;
[0014] 6)执行完成测试用例后,自动生成测试报告。
[0015] 本发明中,description、detail和process分别用于概要描述、操作流程描述、以 及执行实际的操作。这三个函数的实现都可以自定义,通过传入不同的参数改变接口的行 为。比如:
[0016] description:执行' %参数1 % '操作后,启动' %参数2% '程序 [0017] detai 1:第一步:执行' %参数1 % '操作
[0018] 第二步:启动' %参数2 %'程序
[0019] 实例化时,若传入以下参数:-参数1 ="释放操作系统缓存"--参数2 ="排序", 则:
[0020] description:执行'释放操作系统缓存'操作后,启动'排序'程序
[0021] detail:第一步:执行'释放操作系统缓存'操作 [0022]第二步:启动'排序'程序
[0023] 那么规则,一个规则对应一组用例集合,由参数和过程组成。规则枚举了这组用例 所有可能的参数,以及用例工作流所有可能的过程组合。表现为:
[0024] 参数:
[0025] 参数 1:ΓΑ'"Β"]
[0026] 参数2:["Χ","Υ","Ζ"]
[0027] 过程:
[0028] 步骤1:[〃过程1〃,〃过程5〃]
[0029] 步骤2:[〃过程2"]
[0030] 步骤2并发步骤:[〃异常过程Γ,〃异常过程2〃,〃异常过程3〃]
[0031 ]如上,参数组合即为所有参数矩阵的乘积,即
[0032] ["A","Β"]["X","Υ","Ζ"]=
[0033] | -参数 1 = 〃Α"-参数 2 = "X",一参数 1 = 〃Β"-参数 2 = "X"
[0034] 卜-参数! = 〃Α"-参数 2 = "Υ",一参数 1 = 〃Β"-参数 2 = "Υ"
[0035] | -参数 1 = 〃A"-参数 2 = ,一参数 1 = 〃Β"-参数 2 = "Ζ"
[0036]组合即为所有步骤矩阵的乘积,即:
[0037][〃过程1〃,〃过程5〃][〃过程2〃][〃异常过程1〃,〃异常过程2〃,〃异常过程3〃]=
[0038] |先"过程Γ再在"过程2"同时执行"异常过程1",先"过程5"再在"过程2"同时执 行"异常过程Γ
[0039] |先"过程Γ再在"过程2"同时执行"异常过程2",先"过程5"再在"过程2"同时执 行"异常过程2"
[0040] |先"过程Γ再在"过程2"同时执行"异常过程3",先"过程5"再在"过程2"同时执 行"异常过程3"
[0041] 执行时,遍历过程组合的结果(即一个工作流),顺序执行不同过程的"process 〃接 口(并发过程采用后台启动并发任务方式实现);执行不同工作流时,遍历所有参数组合,即 每组参数都要执行一遍。因而,上述规则即生成6X6 = 36个用例。
[0042] 生成文字用例时,用与上述方法相同的规则遍历调用description接口,得到用例 概述;遍历detai 1接口,得到用例执行步骤。
[0043] 对比现有技术,本发明的有益效果在于:
[0044] 解决了手工编写测试用例的重复性工作,根据提供的参数可以正交出所有可能的 用例组合,以及根据提供的测试维度自动正交生成可执行用例并统一调度运行,提高了测 试覆盖率,减少了人工执行测试用例的时间。从而进一步简化测试复杂度,提高测试覆盖度 和测试工作效率减少人力缩短测试过程。
【附图说明】
[0045] 附图1为实施例1的用例生成的流程图;
[0046] 附图2为实施例1的用例执行的流程图;
[0047] 附图3为实施例1的测试报告的样例图。
【具体实施方式】
[0048]下面结合具体实施例,进一步阐述本发明。应理解,这些实施例仅用于说明本发明 而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人 员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定 的范围。
[0049] 实施例1:本发明所述是根据预置规则自动生成测试用例的测试模板及测试方法, 其中,所述根据预置规则自动生成测试用例的测试模板的格式是yaml格式,如下所示:
[0050]
[0051]
[0052] 所述测试模板分为两部分,参数定义区和测试用例执行步骤定义区。1、参数定义 区的参数以"参数名:参数值"的形式指定,参数名和参数值的数量和内容是随意指定的。这 些参数又分为必须指定的参数和可选参数,其中必须指定的参数在每个测试模板中必须按 规则书写,而可选参数是可以自由设定的。同时参数值可以是多个或一个,多个的参数值中 间用逗号分隔。2、执行步骤定义区以"步骤名称:对应脚本"形式指定,对应脚本可以指定多 个,脚本可以是一个个shell脚本或者python脚本。每个步骤里调用的脚本都必须包含有3 部分内容:description函数、detail函数、process函数。description函数里实现输出该步 骤的概要信息;detail函数实现了该步骤执行的具体测试步骤;process函数实现了该步骤 需要执行的测试过程。而步骤名称则是固定的,分别是以下9个步骤:
[0053] on_global_setup:表示"全局预置"步骤,即在整个TestSuite执行前后进行环境 初始化以及清理。执行器会在执行此TestSuite包含的用例前,以"一setup"为参数调用给 定脚本,在此TestSuite所有用例全部结束后,以" 一teardown"为参数调用给定脚本,以完 成清理动作。
[0054] on_Setup:表示的是测试用例的准备阶段,执行器会在其他步骤之前调用这个步 骤中指定的脚本,为其他测试步骤创建测试环境。
[0055]
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1