用于编写web工程测试用例的方法

文档序号:9597180阅读:152来源:国知局
用于编写web工程测试用例的方法
【技术领域】
[0001] 本发明属于WEB工程和WEB自动化测试领域,特别是涉及到一种用于编写web工 程测试用例的方法。
【背景技术】
[0002] 为了保证Web工程的正确性和可靠性,需要测试人员设计测试用例对Web工程进 行测试,常用的测试方法是使用能够在浏览器中自动化功能测试的工具,编写测试用例,与 浏览器进行交互,测试Web应用程序,例如Selenium 2便是常用的测试工具。
[0003] 这些常用的测试工具通常都支持多种编程语言,但是无论使用哪一种编程语言, 都存在比较复杂、不容易读懂的问题,用其来编写测试用例并不是很方便。

【发明内容】

[0004] 有鉴于此,本发明提出一种用于编写Web工程测试用例的方法,使得Web工程的测 试用例的编写简单、抽象、容易读懂。
[0005] 为达到上述目的,本发明的技术方案是这样实现的:一种用于编写Web工程测试 用例的方法,包括步骤如下:
[0006] 步骤一 :Web工程测试用例按照特定的语言编写,所述特定语言包括宏指令、测试 指令、过程;
[0007] 所述宏指令用于编写者自定义运行测试时的设定;
[0008] 所述测试指令用于测试Web工程特性是否工作正常;
[0009] 所述过程是一系列测试指令的集合;
[0010] 步骤二:通过分析器解析步骤一所述特定语言的语法,并将步骤一的测试用例转 换为抽象语法树;
[0011] 步骤三:通过解析器,基于步骤二中分析器生成的抽象语法树来运行测试用例。
[0012] 进一步的,步骤一所述特定语言的过程包括主过程和子过程,主过程为所有测试 指令的入口,子过程为主过程进入的分支过程。
[0013] 更进一步的,步骤一所述特定语言还包括控制语句,所述控制语句用于按照判定 条件执行指令。
[0014] 更进一步的,步骤一所述特定语言还包括变量,所述变量用于在其定义的作用域 里面重复使用。
[0015] 进一步的,步骤二所述分析器基于递归下降分析的模式来分析特定语言的语法。
[0016] 更进一步的,所述分析器基于JavaScript语言编写。
[0017] 进一步的,步骤三所述解析器基于状态机的模型来依次执行语法树中的指令。
[0018] 更进一步的,所述解析器基于JavaScript语言编写。
[0019] -种编程语言,应用了上述任一项编写Web工程测试用例的方法。
[0020] 相对于现有技术,本发明所述的用于编写Web工程测试用例的方法,让编写web工 程的测试用例更简单,更抽象和容易读懂,该方法专门为编写测试用例而设计,所以比用其 它语言编写测试用例更方便。
【具体实施方式】
[0021] 需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相 互组合。
[0022] 下面将结合实施例来详细说明本发明。
[0023] 依据本发明的方法设计Lemoncase语言。
[0024] Lemoncase语言是为了让编写web工程的测试用例更简单,更抽象和容易读懂。这 就类似Unreal为了让编写游戏脚本更简单和更容易读懂而发明了 Unreal引擎能运行的专 用游戏脚本。
[0025] 该语言有3大组成部分:
[0026] 1.宏指令:编写者可以自定义运行测试时的一些设定。
[0027] 2.测试指令:测试指令是用来测试网站/web应用的某个特性是否工作正常的条 件语句。
[0028] 3.过程:过程是一系列测试指令的集合。过程分为主过程和子过程。主过程就是 所有测试指令的入口。子过程就是主过程可能进入的一些分支过程。
[0029] ?语法
[0030] 最基本的Hello World程序如下:
[0032] 其中,Process main代表主过程。大括号中的语句是测试指令,而Log "Hello World ! ";指令的结果是在测试报告中记录一句话。
[0033] 1.宏指令
[0034] #set MAX_L00P 50
[0035] 这个宏指令会设定主过程会重复运行多少次。
[0036] 2.测试指令
[0037] wait 3000 ;
[0038] click "· btn" ;
[0039] assert "#login" in 10000 as keyl ;
[0040] 上面3个指令大概的意思是,等待3000毫秒,点击一个class为btn的按钮,断言 在10000秒内会出现一个id为login的html元素,并把相关数据记录在keyl这个关键字 下。
[0041 ] 关于assert指令:这类似node, js中的assert和jasmine中的expect,断言某 一个html元素是否符合特定的条件。assert后面的参数是断言条件,默认是一个css选择 器,解析器会试图判断页面上是否有符合该css选择器的html元素。除此之外,还可以断 言符合css选择器的元素的集合是否存在?符合css选择器的元素在页面上是否可见?等 等。在断言条件之后有个可选参数,以in(数字)的形式出现,它是断言的时间,如果没有 这个参数,程序会立刻对条件做出判断。在有参数的情况下,程序会等待一定时间,直到符 合判定条件或超时失败。这个参数在页面有ajax请求或页面跳转时非常有用。在断言时 间后面还有另一个参数,这个参数是一个字符串,效果是在该关键字下面记录这次断言成 功所需的时间或超时错误的详细信息。
[0042] 3.子过程
[0044] 子过程名称加上一对括号即代表在程序的该处调用子过程。
[0045] 4.控制语句
[0046] if (n>2) click "· btnG" ;
[0047] else return ;
[0048] If后面接判定条件,then后面是判定条件为true时执行的指令,而else则是条 件为false时执行的指令。
[0049] loop 100
[0050] do click "#refresh" ;
[0051] while ( "div>. close"){
[0052] click "div>. close" ;
[0053] }
[0054] loop后面的数字代表循环次数,do后面是循环中需要执行的指令。
[0055] while后面是判定条件,只要判定条件为true,就会执行do后面的指令。
[0056] 5.变量
[0057] $selector = "input#login" ;
[0058] input selector by "admin" ;
[0059] $符号代表定义一个变量,和大多数编程语言一样,变量可以在其定义的作用域里 面重复使用。
[0060] 鲁分析器
[0061] Lemoncase语言目前有JavaScript语言编写的语法分析器。分析器是基于经典的 递归下降分析(Recursive descent parser)的模式来分析Lemoncase的语法,并将用户编 写的程序转换为JavaScript可用的抽象语法树(AST)。
[0062] 鲁解析器
[0063] Lemoncase的解析器也是基于JavaScript的。解析器是基于分析器生成的抽象语 法树来运行测试用例的。该解析器是基于状态机的模型来依次执行语法树中的指令。
[0064] 本发明专门为编写测试用例而设计,所以比用其它语言编写测试用例更方便。
[0065] 假设使用Selenium2的webdriverJS的接口编写测试用例:
[0068] 如果用Lemoncase来编写,贝lj会是这样的:
[0070] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种用于编写Web工程测试用例的方法,其特征在于:包括步骤如下: 步骤一 :Web工程测试用例按照特定的语言编写,所述特定语言包括宏指令、测试指 令、过程; 所述宏指令用于编写者自定义运行测试时的设定; 所述测试指令用于测试Web工程特性是否工作正常; 所述过程是一系列测试指令的集合; 步骤二:通过分析器解析步骤一所述特定语言的语法,并将步骤一的测试用例转换为 抽象语法树; 步骤三:通过解析器,基于步骤二中分析器生成的抽象语法树来运行测试用例。2. 根据权利要求1所述的一种用于编写Web工程测试用例的方法,其特征在于:步骤 一所述特定语言的过程包括主过程和子过程,主过程为所有测试指令的入口,子过程为主 过程进入的分支过程。3. 根据权利要求2所述的一种用于编写Web工程测试用例的方法,其特征在于:步骤 一所述特定语言还包括控制语句,所述控制语句用于按照判定条件执行指令。4. 根据权利要求3所述的一种用于编写Web工程测试用例的方法,其特征在于:步骤 一所述特定语言还包括变量,所述变量用于在其定义的作用域里面重复使用。5. 根据权利要求1所述的一种用于编写Web工程测试用例的方法,其特征在于:步骤 二所述分析器基于递归下降分析的模式来分析特定语言的语法。6. 根据权利要求5所述的一种用于编写Web工程测试用例的方法,其特征在于:所述 分析器基于JavaScript语言编写。7. 根据权利要求1所述的一种用于编写Web工程测试用例的方法,其特征在于:步骤 三所述解析器基于状态机的模型来依次执行语法树中的指令。8. 根据权利要求7所述的一种用于编写Web工程测试用例的方法,其特征在于:所述 解析器基于JavaScript语言编写。9. 一种编程语言,其特征在于:应用了上述任一项编写Web工程测试用例的方法。
【专利摘要】本发明提出了一种用于编写Web工程测试用例的方法,包括步骤如下:步骤一:Web工程测试用例按照特定的语言编写;步骤二:通过分析器解析步骤一所述特定语言的语法,并将步骤一的测试用例转换为抽象语法树;步骤三:通过解析器,基于步骤二中分析器生成的抽象语法树来运行测试用例。本发明所述的用于编写Web工程测试用例的方法,让编写web工程的测试用例更简单,更抽象和容易读懂,该方法专门为编写测试用例而设计,所以比用其它语言编写测试用例更方便。
【IPC分类】G06F9/44
【公开号】CN105354035
【申请号】CN201510791831
【发明人】李超, 石威林
【申请人】天津橙子科技有限公司
【公开日】2016年2月24日
【申请日】2015年11月17日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1