一种基于web的自动化测试用例开发系统及方法转让专利

申请号 : CN201610914969.9

文献号 : CN106547689B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱焕亮朱彬俞恒飞

申请人 : 金航数码科技有限责任公司

摘要 :

本发明涉及一种基于web的自动化测试用例开发系统及方法,它封装集成了自主研发的web自动化测试用例开发工具、自动化测试用例执行工具、自动化测试管理端及其它第三方工具,使测试人员无需学习掌握较深的开发编程等专业知识,也能轻松快捷的开发出web自动化测试用例及执行自动化测试,并且该工具适合应用于任何类型的web应用系统进行自动化测试。

权利要求 :

1.一种基于web的自动化测试用例开发系统,其特征在于包括:超文本标记语言解析器Jsoup html、Web应用程序驱动Selenium WebDriver、测试框架TestNG、测试用例开发工具、测试用例执行工具、屏幕抓取工具Screencapture、报告生成工具ReportNG、数据库以及自动化测试管理端,其中:超文本标记语言解析器Jsoup html,是一款Java的HTML解析器,直接解析某个URL地址、HTML文本内容;Jsoup解析HTML得到一个Document对象,通过操作Document的属性来获取HTML页面内容,通过DOM,CSS以及类似于jQuery的操作方法来取出数据,并将HTML页面内容和数据提供给测试用例开发工具;

Web应用程序驱动Selenium WebDriver,是提供一套面向对象的API,在本地或远程计算机上使用多种脚本语言来驱动浏览器,模拟人工操作浏览器的一些功能,包括鼠标单击、双击、拖拽、文件上传、文件下载,键盘的回车、回退、空格、ctrl、alt和shift;通过所述功能操作转换为计算机可读的操作代码提供给测试用例开发工具;

TestNG,为Testing Next Generation下一代测试技术,是根据JUnit和NUnit思想而构建的利用注释来强化测试功能的测试框架,用来做单元测试或用来做集成测试;根据注释决定代码的执行顺序,通过testng.xml文件来控制要执行的测试用例的粒度,即测试包、测试类和测试方法,为测试用例开发工具提供框架服务;

测试用例开发工具,通过自主开发的元素定位工具定位元素在页面的位置,调用Jsoup html获得页面元素的内容,调用Selenium WebDriver驱动浏览器并获取操作浏览器的动作,通过脚本生成器生成单个自动化测试用例的代码并存入本地工程,调试完成后上传至数据库中;

测试用例执行工具,能够自动编译存放在类中的测试脚本,通过JDK将测试用例集中的测试脚本编译成可执行的class文件,使用自定义类加载器将class文件加载到虚拟机JVM,实例化执行对象并注入环境变量,建立与被测脚本的连接session,通过建立的session与被测脚本产生关联,测试用例执行工具通过创建session调试和执行测试脚本;整个测试是在TestNG框架下执行的,通过注释控制测试代码中具体方法的执行顺序和执行方式,或通过配置TestNG的test.xml配置文件来控制测试用例的执行顺序,测试用例集执行完成后,调用测试报告生成工具ReportNG输出自定义格式的测试报告并存放在测试报告服务器上,如果有执行失败的测试用例,还会将失败信息打印在测试报告中,同时调用屏幕抓取工具Screencapture在执行失败的页面截屏并打印在测试报告中,方便分析定位问题原因;

屏幕抓取工具Screencapture,提供屏幕抓取即截屏的操作,当测试用例执行工具执行测试用例集出现失败或异常时,测试用例执行工具会调用其进行截屏以便将出现失败或异常的页面打印在测试报告中;

测试报告生成工具ReportNG,生成自动化测试报告,根据测试用例执行工具提供的测试结果以及截图信息,生成自定义格式的测试报告;

数据库,存储和管理web自动化测试用例开发系统生成的数据,包括测试用例开发工具上传的页面元素、测试数据和测试脚本,自动化测试管理端在管理页面元素、测试数据和测试脚本时的更新,自动化测试管理端创建的测试用例集、测试执行服务器的相关信息,测试用例执行工具执行测试用例集的执行结果;

自动化测试管理端,是自动化测试各环节的全称可视化管理工具,能够在无人值守的情况下,完成测试环境准备、测试用例分发部署、测试结果收集并展示测试报告;自动化测试管理端集成了页面元素的编辑和查看,测试数据的添加、编辑、删除和查看,测试脚本的查看,测试用例的编辑和查看,测试用例集的添加、编辑、删除和查看,测试执行的查询、删除和刷新,测试服务器的新增、编辑、删除和查看,共七个功能页面,实现了集页面元素管理、测试数据管理、测试脚本管理、测试用例管理、测试用例集管理、测试执行管理和测试报告管理一体的可视化管理,自动化测试管理端从数据库中读取测试用例,将多个测试用例组合成一个测试用例集向测试用例执行工具下发测试任务,同时选择执行测试用例集的远程测试服务器。

2.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:所述页面元素的查看和编辑实现为:按照页面的划分展示了各个页面的元素、元素定位代码、定位方式、定位表达式和页面标签,并提供了编辑修改功能。

3.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:所述测试数据的添加、编辑、删除和查看实现为:按照测试数据集的划分展示了测试数据集、测试数据ID、测试数据名称、测试数据key和测试数据VALUE,并提供了增删改查功能。

4.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:测试脚本的查看实现为:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试脚本,方便前台查看测试脚本。

5.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:所述测试用例的编辑和查看:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试用例,对测试用例名称、测试脚本名称、测试用例集名称和测试脚本路径进行修改,当选中一条测试用例后,子页面会展示该测试用例的测试数据,并提供了增删改查功能。

6.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:所述测试用例集的添加、编辑、删除和查看实现为:按照多条测试用例合并形成一个测试用例集的设计理念,首先创建测试用例集,测试用例集由编号、名称和描述组成,选中新建的测试用例集,向测试用例集添加测试用例,并提供了对添加的测试用例的增删改查,然后将测试用例集添加到远程测试服务器由测试用例执行工具执行测试,查看执行进度,执行完后查看执行结果和测试报告;测试执行的查询、删除和刷新。

7.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:功能页面向用户实时展示了测试用例集的执行进度和结果、测试用例的执行结果以及能远程查看测试报告。

8.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:测试服务器的新增、编辑、删除和查看:功能页面用来管理远程测试服务器,通过查看测试服务器的服务状态选择执行测试的服务器。

9.根据权利要求1所述的一种基于web的自动化测试用例开发系统,其特征在于:所述测试用例执行工具具体实现为:通过JDK编译成class文件,使用自定义类加载器加载到虚拟机JVM,实例化执行对象并注入环境变量,建立与被测脚本的连接session,通过建立的session与被测脚本产生关联,这个session在记录被测脚本鼠标和键盘事件外,还通过回放部分已生成的测试脚本来进行调试;调试时,只需通过手动调整被测脚本,再通过session来执行测试;整个测试是在TestNG框架下执行的,通过注释控制测试代码中具体方法的执行顺序和执行方式,或通过配置TestNG的test.xml配置文件来控制测试用例的执行顺序,测试用例集执行完成后,调用测试报告生成工具ReportNG输出自定义格式的测试报告并存放在测试报告服务器上,如果有执行失败的测试用例,还会将失败信息打印在测试报告中,同时调用屏幕抓取工具Screencapture在执行失败的页面截屏并打印在测试报告中,方便分析定位问题原因。

10.一种采用权利要求1-9任意之一所述的系统进行基于web的自动化测试用例开发方法,其特征在于实现步骤如下:

(1)当打开测试用例开发工具时,默认打开元素抓取CATCH页,首先对被测页面的URL进行初始化INIT_LIB,通过调用WebDriver打开被测页面,按住键盘上的ctrl键,同时移动鼠标到页面元素所在位置,这时页面元素会被红色方框包围,当点击鼠标左键时,测试用例开发工具会调用Jsoup获取页面元素的属性和属性值,并弹出提示框显示该页面元素的属性和属性值,点击确定按钮,测试用例开发工具自动生成脚本并弹出提示框显示页面元素的定位方式和页面元素所在的标签,点击同时添加到代码按钮,将测试脚本保存在本地java工程的测试类中,将页面元素保存到本地的Elements.xlsx文件中;

(2)打开测试用例开发工具的测试数据TEST_DATA页,通过点击ADD_NEW手动添加测试数据,然后将测试数据对应的ID填入到步骤(1)生成的测试脚本的VALUE中,点击保存按钮将测试数据集保存到本地的TestData.xlsx文件中;

(3)打开测试用例开发工具的设置SETTINGS页,对页面元素、测试数据和测试脚本进行上传和下载操作,点击全部上传,将本地Elements.xlsx文件中的页面元素、TestData.xlsx文件中的测试数据和本地工程的测试脚本上传到数据库中;

(4)数据库分别将页面元素、测试数据和测试脚本记录在不同的表中;按照测试数据+测试脚本形成测试用例的设计理念,在步骤(3)完成本地上传后,测试用例已经自动生成了,并单独记录在测试用例表中,该测试用例表通过记录测试数据集名称、测试脚本名称和测试用例名称,将测试数据和测试脚本关联起来形成测试用例。

说明书 :

一种基于web的自动化测试用例开发系统及方法

技术领域

[0001] 本发明涉及一种web自动化测试开发系统及方法,能够自动生成自动化测试代码,以测试用例集的形式跨平台执行测试并自动生成测试报告。

背景技术

[0002] 通过对中外专利和非专利文献的检索结果来看,目前市场上的web自动化测试主要是基于第三方工具或商用工具:第三方工具是采用录制回放的方式开发调试测试脚本,这样的测试脚本稳定性极差,需要有编程功底的人员调试修改脚本才能达到稳定运行的目的,维护难度大,成本高;商用工具的扩展性较差,跨平台能力有限,脚本开发方式同样是采用录制的方式,脚本稳定性差,而且难以搭建web自动化测试框架、形成系统的web自动化测试。

发明内容

[0003] 本发明技术解决问题:为了克服第三方自动化测试工具的稳定性差、不易维护、效率低等缺陷,提供一种web自动化测试用例开发系统,能够自动生成自动化测试用例,自动执行测试用例,而且能够通过操作自动化测试管理端实现全程可视化管理,能够在无人值守的情况下,完成测试环境准备、测试用例分发部署、测试结果收集并展示测试报告。测试脚本易于维护,提高web自动化测试执行效率的同时,降低了项目风险和企业成本。
[0004] 本发明的技术方案是:一种基于web的自动化测试用例开发系统,包括:超文本标记语言解析器Jsoup html、Web应用程序驱动Selenium WebDriver、测试框架TestNG、测试用例开发工具、测试用例执行工具、屏幕抓取工具Screencapture、报告生成工具ReportNG、数据库以及自动化测试管理端,其中:
[0005] 超文本标记语言解析器Jsoup html,是一款Java的HTML解析器,直接解析某个URL地址、HTML文本内容;Jsoup解析HTML得到一个Document对象,通过操作Document的属性来获取HTML页面内容,通过DOM,CSS以及类似于jQuery的操作方法来取出数据,并将HTML页面内容和数据提供给测试用例开发工具;
[0006] Web应用程序驱动Selenium WebDriver,是提供一套面向对象的API,在本地或远程计算机上使用多种脚本语言来驱动浏览器,模拟人工操作浏览器的一些功能,包括鼠标单击、双击、拖拽、文件上传、文件下载,键盘的回车、回退、空格、ctrl、alt和shift;通过所述功能操作转换为计算机可读的操作代码提供给测试用例开发工具;
[0007] TestNG,为Testing Next Generation下一代测试技术,是根据JUnit和NUnit思想而构建的利用注释来强化测试功能的测试框架,既可以用来做单元测试,也可以用来做集成测试;根据注释决定代码的执行顺序,通过testng.xml文件来控制要执行的测试用例的粒度,即测试包、测试类和测试方法,为测试用例开发工具提供框架服务;
[0008] 测试用例开发工具,通过自主开发的元素定位工具定位元素在页面的位置,调用Jsoup html获得页面元素的内容,调用Selenium WebDriver驱动浏览器并获取操作浏览器的动作,通过脚本生成器生成单个自动化测试用例的代码并存入本地工程,调试完成后上传至数据库中;
[0009] 测试用例执行工具,通过JDK将测试用例集中的测试脚本编译成可执行的class文件,使用自定义类加载器将class文件加载到虚拟机JVM,实例化执行对象并注入环境变量,建立与被测脚本的连接session,通过建立的session与被测脚本产生关联,测试用例执行工具通过创建session调试和执行测试脚本;整个测试是在TestNG框架下执行的,既可以通过注释控制测试代码中具体方法的执行顺序和执行方式,也可以通过配置TestNG的test.xml配置文件来控制测试用例的执行顺序,测试用例集执行完成后,调用测试报告生成工具ReportNG输出自定义格式的测试报告并存放在测试报告服务器上,如果有执行失败的测试用例,还会将失败信息打印在测试报告中,同时调用屏幕抓取工具Screencapture在执行失败的页面截屏并打印在测试报告中,方便分析定位问题原因;
[0010] 屏幕抓取工具Screencapture,提供屏幕抓取即截屏的操作,当测试用例执行工具执行测试用例集出现失败或异常时,测试用例执行工具会调用其进行截屏以便将出现失败或异常的页面打印在测试报告中;
[0011] 测试报告生成工具ReportNG,生成自动化测试报告,根据测试用例执行工具提供的测试结果以及截图信息,生成自定义格式的测试报告;
[0012] 数据库,存储和管理web自动化测试用例开发系统生成的数据,包括测试用例开发工具上传的页面元素、测试数据和测试脚本,自动化测试管理端在管理页面元素、测试数据和测试脚本时的更新,自动化测试管理端创建的测试用例集、测试执行服务器的相关信息,测试用例执行工具执行测试用例集的执行结果;
[0013] 自动化测试管理端,集成了页面元素的编辑和查看,测试数据的添加、编辑、删除和查看,测试脚本的查看,测试用例的编辑和查看,测试用例集的添加、编辑、删除和查看,测试执行的查询、删除和刷新,测试服务器的新增、编辑、删除和查看,共七个功能页面,实现了集页面元素管理、测试数据管理、测试脚本管理、测试用例管理、测试用例集管理、测试执行管理和测试报告管理一体的可视化管理。自动化测试管理端从数据库中读取测试用例,将多个测试用例组合成一个测试用例集向测试用例执行工具下发测试任务,同时选择执行测试用例集的远程测试服务器;
[0014] 一种采用权利要求1所述的系统进行基于web的自动化测试用例开发方法,实现步骤如下:
[0015] (1)当打开测试用例开发工具时,默认打开元素抓取CATCH页,首先对被测页面的URL进行初始化INIT_LIB,通过调用WebDriver打开被测页面,按住键盘上的ctrl键,同时移动鼠标到页面元素所在位置,这时页面元素会被红色方框包围,当点击鼠标左键时,测试用例开发工具会调用Jsoup获取页面元素的属性和属性值,并弹出提示框显示该页面元素的属性和属性值,点击确定按钮,测试用例开发工具自动生成脚本并弹出提示框显示页面元素的定位方式和页面元素所在的标签,点击同时添加到代码按钮,将测试脚本保存在本地java工程的测试类中,将页面元素保存到本地的Elements.xlsx文件中;
[0016] (2)打开测试用例开发工具的测试数据TEST_DATA页,通过点击ADD_NEW手动添加测试数据,然后将测试数据对应的ID填入到步骤(1)生成的测试脚本的VALUE中,点击保存按钮将测试数据集保存到本地的TestData.xlsx文件中;
[0017] (3)打开测试用例开发工具的设置SETTINGS页,这里可以对页面元素、测试数据和测试脚本进行上传和下载操作,点击全部上传,将本地Elements.xlsx文件中的页面元素、TestData.xlsx文件中的测试数据和本地工程的测试脚本上传到数据库中;
[0018] (4)数据库分别将页面元素、测试数据和测试脚本记录在不同的表中;按照测试数据+测试脚本形成测试用例的设计理念,在步骤(3)完成本地上传后,测试用例已经自动生成了,并单独记录在测试用例表中,该测试用例表通过记录测试数据集名称、测试脚本名称和测试用例名称,将测试数据和测试脚本关联起来形成测试用例;
[0019] (5)自动化测试管理端是自动化测试各环节的全称可视化管理工具,能够在无人值守的情况下,完成测试环境准备、测试用例分发部署、测试结果收集并展示测试报告,包括页面元素的查看和编辑:按照页面的划分展示了各个页面的元素、元素定位代码、定位方式、定位表达式和页面标签,并提供了编辑修改功能;测试数据的添加、编辑、删除和查看:按照测试数据集的划分展示了测试数据集、测试数据ID、测试数据名称、测试数据key和测试数据VALUE,并提供了增删改查功能;测试脚本的查看:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试脚本,方便前台查看测试脚本;测试用例的编辑和查看:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试用例,对测试用例名称、测试脚本名称、测试用例集名称和测试脚本路径进行修改,当选中一条测试用例后,子页面会展示该测试用例的测试数据,并提供了增删改查功能;测试用例集的添加、编辑、删除和查看:按照多条测试用例合并形成一个测试用例集的设计理念,首先创建测试用例集,测试用例集由编号、名称和描述组成,选中新建的测试用例集,可以向测试用例集添加测试用例,并提供了对添加的测试用例的增删改查,然后将测试用例集添加到远程测试服务器由测试用例执行工具执行测试,可以查看执行进度,执行完后查看执行结果和测试报告;测试执行的查询、删除和刷新:功能页面向用户实时展示了测试用例集的执行进度和结果、测试用例的执行结果以及能远程查看测试报告;测试服务器的新增、编辑、删除和查看:功能页面用来管理远程测试服务器,通过查看测试服务器的服务状态选择执行测试的服务器;
[0020] (6)测试用例执行工具能够自动编译存放在类中的测试脚本,通过JDK编译成class文件,使用自定义类加载器加载到虚拟机JVM,实例化执行对象并注入环境变量,建立与被测脚本的连接session,通过建立的session与被测脚本产生关联,这个session在记录被测脚本鼠标和键盘事件外,还可以通过回放部分已生成的测试脚本来进行调试;调试时,只需通过手动调整被测脚本,再通过session来执行测试;整个测试是在TestNG框架下执行的,既可以通过注释控制测试代码中具体方法的执行顺序和执行方式,也可以通过配置TestNG的test.xml配置文件来控制测试用例的执行顺序,测试用例集执行完成后,调用测试报告生成工具ReportNG输出自定义格式的测试报告并存放在测试报告服务器上,如果有执行失败的测试用例,还会将失败信息打印在测试报告中,同时调用屏幕抓取工具Screencapture在执行失败的页面截屏并打印在测试报告中,方便分析定位问题原因。
[0021] 本发明的有益效果是:本发明对没有编程功底的测试人员也能轻松的开发web自动化测试用例并进行web页面的自动化测试,可全程可视化操作执行,操作简单、易上手,大大提高了自动化测试用例的开发执行效率。
[0022] (1)由于该发明使用工具自动生成了测试用例的代码,不需要掌握较深的开发编程等专业知识,因此操作简单、易上手,大大提高了自动化测试用例的开发执行效率。
[0023] (2)由于该发明使用了测试用例开发工具,可以对生成的测试脚本进行分步调试,极大地提高了自动化测试脚本的稳定性。
[0024] (3)由于该发明使用了自动化测试管理端,对web自动化测试实现了全程可视化管理,向测试执行服务器自动部署测试执行环境,进一步提高了自动化测试效率。
[0025] (4)由于该发明使用了测试用例执行工具,通过建立与被测脚本的连接session的方式执行测试用例,使测试用例执行更高效。
[0026] (5)本发明具备自动化程度相对较高、可重用性强、可扩展性优良等优点,可适合应用于任何类型的web应用系统进行自动化测试。

附图说明

[0027] 图1是本发明系统的组成框架图;
[0028] 图2是本发明的自动化测试用例开发工具实现过程图;
[0029] 图3是本发明的自动化测试管理端实现过程图;
[0030] 图4是本发明的测试用例执行工具实现过程图。

具体实施方式

[0031] 下面结合附图和实施例对本发明进一步说明。
[0032] 如图1中所示,本发明涉及一种web自动化测试用例开发系统由第三方工具、测试用例开发工具、自动化测试管理端和测试用例执行工具构成。其中第三方工具包括超文本标记语言解析器Jsoup html、Web应用程序驱动Selenium WebDriver、自动化测试框架TestNG、测试报告生成工具ReportNG和屏幕抓取工具Screencapture。
[0033] 整个实现过程如下:
[0034] (1)当自动化测试工程师打开测试用例开发工具时,默认打开元素抓取CATCH页,首先对被测页面的URL进行初始化INIT_LIB,通过调用WebDriver打开被测页面,按住键盘上的ctrl键调用自主开发的元素定位工具,同时移动鼠标到页面元素所在位置,这时页面元素会被红框包围,点击鼠标左键的同时自动化测试用例开发工具会调用Jsoup获取页面元素的属性和属性值,并弹出提示框显示该页面元素的属性和属性值,点击确定按钮,自动化测试用例开发工具的脚本生成器自动生成脚本并弹出提示框显示页面元素的定位方式和页面元素所在的标签,点击同时添加到代码按钮,将测试脚本保存在本地java工程的测试类中,将页面元素保存到本地的Elements.xlsx文件中。
[0035] (2)自动化测试工程师打开测试用例开发工具的测试数据TEST_DATA页,通过点击ADD_NEW手动添加测试数据,然后将测试数据对应的ID填入到步骤(1)生成的测试脚本的VALUE中,点击保存按钮将测试数据集保存到本地的TestData.xlsx文件中。
[0036] (3)自动化测试工程师打开测试用例开发工具的设置SETTINGS页,这里可以对页面元素、测试数据和测试脚本进行上传和下载操作,点击全部上传,将本地Elements.xlsx文件中的页面元素、TestData.xlsx文件中的测试数据和本地工程的测试脚本上传到数据库中。
[0037] (4)数据库分别将页面元素、测试数据和测试脚本记录在不同的表中;按照测试数据+测试脚本形成测试用例的设计理念,在步骤(3)完成本地上传后,测试用例已经自动生成了,并单独记录在测试用例表中,该表通过记录测试数据集名称、测试脚本名称和测试用例名称,将测试数据和测试脚本关联起来形成测试用例。
[0038] (5)自动化测试管理端是自动化测试各环节的全称可视化管理工具,能够在无人值守的情况下,完成测试环境准备、测试用例分发部署、测试结果收集并展示测试报告。包括页面元素的查看和编辑:按照被测页面的划分展示了各个页面的元素、元素定位代码、定位方式、定位表达式和页面标签,并提供了编辑修改功能;测试数据的添加、编辑、删除和查看:按照测试数据集的划分展示了测试数据集、测试数据ID、测试数据名称、测试数据key和测试数据VALUE,并提供了增删改查功能;测试脚本的查看:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试脚本,方便前台查看测试脚本;测试用例的编辑和查看:按照被测试页面不同菜单的功能点划分,以树形结构的方式展示了测试用例,可对测试用例名称、测试脚本名称、测试用例集名称和测试脚本路径进行修改,当选中一条测试用例后,子页面会展示该测试用例的测试数据,并提供了增删改查功能;测试用例集的添加、编辑、删除和查看:按照多条测试用例合并形成一个测试用例集的设计理念,首先创建测试用例集,测试用例集由编号、名称和描述组成,选中新建的测试用例集,可以向测试用例集添加测试用例,并提供了对添加的测试用例的增删改查,然后将测试用例集添加到远程测试服务器执行,可以查看执行进度,执行完后可以查看执行结果和测试报告;测试执行的查询、删除和刷新:该功能页面向用户实时展示了测试用例集的执行进度和结果、测试用例的执行结果以及能远程查看测试报告;测试服务器的新增、编辑、删除和查看:该功能页面用来管理远程测试服务器,能够通过查看测试服务器的服务状态选择执行测试的服务器。
[0039] (6)测试用例执行工具能够自动编译存放在类中的测试脚本,通过JDK编译成class文件,使用自定义类加载器加载到虚拟机JVM,实例化执行对象并注入环境变量,建立与被测脚本的连接session,通过建立的session与被测脚本产生关联。这个session在记录被测脚本鼠标和键盘事件外,还可以通过回放部分已生成的测试脚本来进行调试。调试时,只需通过手动调整被测脚本,再通过session来执行测试。整个测试是在TestNG框架下执行的,既可以通过注释控制测试代码中具体方法的执行顺序和执行方式,也可以通过配置TestNG的test.xml配置文件来控制测试用例的执行顺序。测试用例集执行完成后,调用测试报告生成工具ReportNG输出自定义格式的测试报告并存放在测试报告服务器上,如果有执行失败的测试用例,还会将失败信息打印在测试报告中,同时调用屏幕抓取工具Screencapture在执行失败的页面截屏并打印在测试报告中,方便分析定位问题原因。
[0040] 如图2中所示,测试用例开发工具实现过程如下:
[0041] (1)通过自主开发的页面元素定位工具定位到元素在页面的位置,元素的定位信息具有唯一性,在监听到事件并由框架自动生成出元素的定位信息后,如果框架自动检查的结果是多个界面元素,通过添加自身属性或其父类元素属性,然后再次进行验证,重复这一过程,直至获得一个最简洁的且是唯一的界面元素。
[0042] (2)调用超文本标记语言解析器Jsoup html抓取页面元素,调用WebDriver采用关键字驱动测试模型记录操作页面的动作,采用自动化测试框架TestNG的注释结构生成测试脚本。
[0043] (3)手动添加测试数据,将测试数据ID填入到测试脚本的value中,生成测试用例。
[0044] (4)分别将页面元素、测试数据、测试脚本和测试用例存储到数据库中。
[0045] (5)自动化测试用例开发完成,结束。
[0046] 上述自动化测试用例开发过程中,页面元素、测试数据、测试脚本和测试用例存储的属性信息见下表。
[0047]
[0048] 如图3中所示,自动化测试管理端实现过程如下:
[0049] (1)首先创建测试用例集,然后自动化测试管理端从数据库中读取测试脚本、测试数据和测试用例添加到测试用例集中。
[0050] (2)选择测试执行服务器,如果选择的测试执行服务器的测试服务没有启动,则提示所选测试执行服务器的测试服务没有启动;如果选择的测试执行服务器的服务已经启动,则开始部署测试执行环境,包括更新测试执行服务器上的页面元素文件Elements.xlsx、测试数据文件TestData.xlsx、测试用例集文件TestSuite.xlsx和测试系统配置文件SysConfig.xml。
[0051] (3)将测试用例集作为测试任务下发给测试用例执行工具执行。
[0052] 上述测试用例集创建过程中,测试用例集及测试用例集中的测试用例执行结果表的属性信息见下表。
[0053]
[0054] 如图4中所示,测试用例执行工具实现过程如下:
[0055] (1)将测试用例集通过JDK编译成可执行的class文件。
[0056] (2)使用自定义类加载器将class文件加载到Java虚拟机,并实例化执行对象和注入环境变量,创建与被测脚本的连接session。
[0057] (3)通过session执行测试用例集,首先生成测试用例执行结果,如果测试用例全部直行通过,则输出测试用例集的执行结果过为通过;如果有部分测试用例执行失败或异常,则输出测试用例集的执行结果为失败。
[0058] (4)如果测试用例集的执行结果为失败,则首先调用屏幕抓取工具Screencapture在执行失败的页面截屏,然后调用测试报告生成工具ReportNG生成测试报告,将执行失败的页面截图打印在测试报告中。如果测试用例集的执行结果为成功,则直接调用测试报告生成工具ReportNG生成测试报告。
[0059] (5)将测试报告通过FTP上传到测试报告服务器中。
[0060] 上述测试用例集和测试用例的执行结果,会分别更新到测试用例集表的attribute_01字段和测试用例集中的测试用例执行结果表的TS1_STATUS字段。
[0061] 总之,该发明实现了对web应用程序功能的自动化测试,包括自动化测试用例代码的生成,测试用例的归档管理、测试用例的自动化执行、测试报告的自动生成等功能,可以快速、有效的进行web应用程序的功能自动化测试。另外,由于该发明是无需人工编写测试代码,不需要掌握较深的开发编程等专业知识,因此,操作简单、易上手,大大提高了自动化测试的执行效率。本发明还具备自动化程度相对较高、可复用性强、可扩展性优良等优点,可适合应用于任何类型的web应用系统进行自动化测试。
[0062] 本发明未详细阐述部分属于本领域公知技术。
[0063] 通过足够详细的描述这些实施示例,使得本领域技术人员能够理解和实践本发明。在不脱离本发明的主旨和范围的情况下,可以对实施做出逻辑的、实现的和其他的改变。因此,以下详细说明不应该被理解为限制意义,本发明的范围仅仅由权利要求来限定。