一种Web应用程序自动化测试工具及方法与流程

文档序号:12464248阅读:来源:国知局

技术特征:

1.一种Web应用程序自动化测试工具,其特征在于包括:基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块,其中:

基本的浏览器及网页操作实现模块:采用Java语言编写,基于Selenium编写大量的网页操作函数,实现基本的浏览器操作及基本的网页操作,为用户提供使用的内建函数接口;用户在编写测试程序时,通过调用内建函数来实现;

自定义代码编译模块:用于将自定义语言代码进行编译,生成Java代码;该模块包含T语言编译器及预处理器,T语言编译器以T语言测试代码为输入,通过预处理器将其改写为C语言风格代码,再通过词法分析,语法分析,生成语法树,在遍历语法树过程中,生成Java代码;T语言是Java语言和C语言的简化版,只需了解网页测试场景和简单的编程基础知识,就能轻松使用;预处理器用python语言编写;

启动测试程序模块:用于运行自定义代码编译模块生成的Java代码,进行Web应用程序的测试;

系统整合模块:用于将基本的浏览器及网页操作实现模块、自定义代码编译模块、启动测试程序模块整合到一起,使用python脚本将以上过程联合,形成完整测试流程,在测试场景及测试用例设计完成后,实现全自动化运行。

2.根据权利要求1所述的一种Web应用程序自动化测试工具,其特征在于:所述基本的浏览器及网页操作实现模块包括:

(1)基本浏览器操作包括:浏览器自动启动、最大化、输入网址、关闭;

(2)基本网页操作包括:

a.通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH特征定位网页元素,对网页元素进行操作,包括点击链接,点击按钮,选择下拉菜单,在文本框输入文字;

b.检查某网页元素是否存在,通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH特征,找到相应的网页元素;

c.检查网页中表格单元的值,此类函数将网页元素的某个值与函数输入值相比较,通过ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH定位表格,然后在表格中通过键值、偏移量定位单元格,再比较单元格中内容相应值,相应值包括比较单个和多个单元格的值;

d.检查网页中某表格某列是否都是或都包含某字符串,定位表中的列之后,对此列每个单元格进行检查;

e.检查表格某一行或结构树中某一结点是否被勾选,此类操作需要定位表格行或复选框元素,进行检查;

f.得到某网页元素的某种值,包括得到某表格中某个单元格的文本;

g.向网页发送一个按键;

h.在网页上登录或退出;

i.上传文件;

j.初始化表头;

k.其他网页操作,包括改换frame,清空文本框,检查某文本框或下拉菜单是否可用,关闭弹出的对话框;

(3)操作过程:

a.通过Selenium提供的接口,实现按ID,TAG_NAME,NAME,CLASS_NAME,CSS_SELECTOR,LINK_TEXT,PARTIAL_LINK_TEXT,XPATH来定位一个网页元素;

在找到网页元素之后,通过Selenium接口,向该控件发送动作请求,包括点击,输入某键,选取下拉菜单,获取其各种值;在动作前后等待一个预定的时间,以确保网页元素可用,以及动作得以完成;使用一个单独的线程来完成等待和执行;

b.找不到某控件时抛出异常;

c.对选择下拉菜单的操作,创建一个Select类的实例,根据传入参数来调用此类的不同选择函数;

d.检查网页元素是否存在或是否符合某值的函数,在找不到此元素或值不符合要求时抛异常;

e.对表中单元格的检查和操作,先定位表,再根据表头信息和行/列信息定位单元格;

f.对上传文件这样的操作,取得文件路径,作为参数传给网页元素,以实现选择文件并上传。

3.根据权利要求1所述的一种Web应用程序自动化测试工具,其特征在于:所述自定义代码编译模块实现过程:

(1)自定义测试语言(T语言)

数据类型:字符串,整型,null,列表;

基本语句:变量定义,函数定义,内建函数调用,自定义函数调用,for循环语句,if条件分支语句等;

语言基本特征及要求:

a.每个语句末尾加分号;

b.支持中文字符串;

c.支持null;

d.自定义函数返回类型均为void;

e.变量定义时无需指定数据类型;

f.使用test关键字作为程序入口函数;

g.for循环语句格式为“for(iter in list){…;op(iter);…;},其中iter为循环变量,即list中的一个元素,in为关键字,list为待遍历数组,op()为在循环变量上进行的操作;

(2)代码预处理:使用python脚本对输入的T语言代码进行预处理,包括对for…in…循环进行改写,并对未声明变量进行声明,使之适合C风格代码;

(3)编译及代码生成:通过改造一个LALR(0)的C语言编译器,使用三次遍历完成代码生成输入到编译器中的步骤二改写过的T语言代码,第一次遍历,词法分析和语法分析,为T语言代码生成相应的语法树;第二次遍历,语法检查;第三次遍历,遍历语法树的同时,为每个结点生成相应Java代码,最后,生成Java import语句,类定义语句、声明函数库所在类的实例,形成完整Java文件,并放入Maven的测试文件夹。

4.根据权利要求1所述的一种Web应用程序自动化测试工具,其特征在于:所述启动测试程序模块实现过程:

(1)安装Java SDK,并修改系统环境变量,添加用户变量JAVA_HOME=Java安装路径;

(2)安装MAVEN,并修改系统环境变量,添加用户变量MVN_HOME=MAVEN安装路径;

(3)在环境变量Path中添加”;%JAVA_HOME%\jre\bin;%MAVEN_HOME%\bin”;

(4)安装chrome Driver;

(5)打开“开始”->“命令提示符”,目录切换到项目home目录,运行命令”mvntest–Dtest=xxx”,其中”xxx”为待测Web应用程序功能模块测试Java代码的相对路径,一旦启动,便开始了自动测试,整个过程无须人工干预。

5.一种Web应用程序自动化测试方法,其特征在于:实现步骤如下:

(1)基于Selenium编写大量的网页操作函数,实现基本的浏览器操作及基本的网页操作,为用户提供使用的内建函数接口;对每个网页操作,在找到网页元素之后,通过Selenium接口,向该控件发送动作请求,包括点击,输入某键,选取下拉菜单,获取其各种值;在动作前后等待一个预定的时间,以确保网页元素可用,以及动作得以完成;使用一个单独的线程来完成等待和执行;用户在编写测试程序时,通过调用内建函数来实现;

(2)将自定义语言代码进行编译,生成Java代码,包含T语言编译器及预处理器,参考C语言语法,利用bison和flex工具,设计和编写T语言编译器及预处理器,编译器用C语言编写,预处理器用python语言编写;T语言编译器以T语言测试代码为输入,通过预处理器将其改写为C语言风格代码,再通过词法分析,语法分析,生成语法树;然后,在遍历语法树过程中,生成Java代码;T语言是Java语言和C语言的简化版,只需了解网页测试场景和简单的编程基础知识,就能轻松使用;根据Web应用程序的需求和特点,利用selenium接口编写基本函数库,用Java语言编写;根据写好的函数库,在编译器中加上内建函数列表;

(3)使用python语言编写脚本,将以上过程联合,形成完整测试流程,在测试场景及测试用例设计完成后,实现自动化运行。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1