一种基于事件处理函数间定义‑引用的web自动化测试方法技术

技术编号:15982557 阅读:35 留言:0更新日期:2017-08-12 05:36
本发明专利技术公开一种基于事件处理函数间定义‑引用的web自动化测试方法,包括:1)在web自动测试工具中设置被测web应用程序的路径;2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;5)自动测试工具根据被测web应用程序的网址,自动生成测试用例并自动执行。

【技术实现步骤摘要】
一种基于事件处理函数间定义-引用的web自动化测试方法
本专利技术属于软件自动化领域以及用户界面领域,尤其涉及一种基于事件处理函数间定义-引用的web自动化测试方法。
技术介绍
HTML和Javascript是当前开发web应用程序的主要脚本技术语言,HTML主要用于表示web应用程序的显示逻辑,Javascript主要用于表示web应用程序的执行逻辑,随着Javascript标准的发展以及Node.js技术的推广,Javascript也逐步被应用到服务器端开发。在此背景下,基于录制/回放技术的自动化测试工具被广泛应用于web测试,这类工具主要针对web页面元素如超链接、表单等HTML元素表现层的一致性进行测试。web应用程序的内部执行逻辑是完成web应用程序功能的核心。目前,业界提供的自动化测试工具包括Selenium、Watij等,这类工具需要测试人员首先撰写测试用例脚本,然后再批量执行,其优势在于批量执行和自动化执行;然而,这类工具的主要问题是:当web应用的版本更新,特别是当界面存在变化时,版本更新之前的大量测试用例无法在新版本上运行测试,需要测试人员重新撰写。当版本更新较为频繁时,导致两个问题:1)测试成本快速增加;2)当版本发布时间比较紧迫,需要快速发布时,难以对web应用快速实施测试。针对这两个问题,本专利技术根据HTML和javascript技术的特点,针对web功能测试,提出了一种基于事件处理函数间定义-引用的web应用自动化方法,此方法在无需测试人员撰写测试用例的前提下,快速对web应用进行测试,降低web应用的测试成本,提高应用发布效率。
技术实现思路
根据web应用程序中HTML和Javascript脚本的特征,本专利技术提供了一种基于事件处理函数间定义-引用的web自动化测试方法,此方法从用户操作web应用程序以及web应用程序内部执行逻辑的角度,自动模拟用户操作,监控web应用程序内部执行逻辑,对web应用程序进行自动化测试。为了完成上述专利技术,本专利技术采用如下技术方案:一种基于事件处理函数间定义-引用的web自动化测试方法,包括如下步骤:1)在测试机器上安装web自动测试工具,在web自动测试工具中设置被测web应用程序的路径;2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;5)自动测试工具根据步骤2)中获取的数据以及步骤4)中设置的被测web应用程序的网址,自动生成测试用例并自动执行。作为优选,所述步骤2)中待分析的web应用程序源码包括HTML脚本和Javascript脚本。作为优选,所述步骤2)中的事件处理函数通过静态分析HTML脚本和Javascript脚本自动获取;所述静态分析通过两种方式自动识别事件处理函数,一种是根据HTML脚本中的web元素定义方法识别,如<buttononclick=”copyText()”>copytest</button>,copyText函数即为事件处理函数;另一种方式则是通过对Javascript脚本静态分析识别。作为优选,所述步骤2)中,对事件处理函数静态分析,根据事件处理函数直接或间接调用其它函数的关系自动构建事件处理函数的过程间控制流程图,自动遍历事件处理函数的过程间控制流图中的完整最短路径,记录每条完整最短路径中的定义和引用,计算事件处理函数间的定义-引用关系。作为优选,所述步骤2)中保存的完整最短路径定义以及事件处理函数间的定义-引用关系定义如下:事件处理函数的过程间控制流图的起始节点和结束节点分别为start、end,事件处理函数的过程间控制流图的完整最短路径起始与start,结束于end,且不会覆盖过程间控制流图的同一条边两次;如两个事件处理函数存在完整最短路径分别为p1、p2以及变量var,若在p1中定义var而在p2中引用var,则p1和p2关于变量var存在事件处理函数间的定义-引用关系。作为优选,所述步骤2)中注入监控代码的方法为:在构建事件处理函数的过程间控制流图时,每遇见一个分支,在分支中注入一个表征当前分支执行的监控语句。作为优选,所述步骤2)中自动分析获取的数据包括web元素、web元素上的操作和对应的事件处理函数三者之间的关系、每个事件处理函数对应的过程间控制流图、每个事件处理函数对应的过程间控制流图上的完整最短路径以及每条完整最短路径上的变量定义和引用、事件处理函数间的定义-引用关系、以及注入监控代码后的web应用程序。作为优选,所述步骤3)中,服务器端以IP地址或域名网址的形式对外提供被测web应用程序访问地址。作为优选,所述步骤5)中,测试机器上的web自动测试工具采用基于反馈的方式自动遍历被测web应用程序,包括如下步骤:5.1)自动访问被测web应用程序首页并获取首页HTML脚本源码,根据被测web应用程序执行时的监控语句执行信息获取事件处理函数执行路径以及执行时覆盖的事件处理函数间的定义-引用信息,并记录当前已覆盖的事件处理函数间的定义-引用信息,当前页面为web应用程序首页;5.2)对当前页面的可以执行的事件处理函数进行分析。若当前所有的事件处理函数间的定义-应用关系均已覆盖,则测试完毕;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径不存在事件处理函数之间的定义-引用关系,则随机选择一个可以操作的web元素;若前述执行的事件处理函数的完整最短路径与当前页面web元素对应的事件处理函数的完整最短路径存在事件处理函数之间的定义-引用关系且未覆盖,则执行对应元素上的操作,触发事件处理函数执行,并记录覆盖执行过程中覆盖的事件处理函数间的定义-引用信息,置当前页面为事件处理函数执行后的新的web应用程序页面,重复执行步骤5.2)。作为优选,所述步骤1)中web应用程序由HTML文件、Javascript文件以及其它声音、视频文件组成。附图说明图1为本专利技术方法执行的流程图;具体实施方式为了更清楚地理解本专利技术,特此将本专利技术的具体实施过程结合附图描述如下:本专利技术实施例描述了一次web应用程序自动化测试的流程,其流程中涉及测试机器和web服务器,其中测试机器对web应用程序进行自动化分析获取事件处理函数及其相关信息,并注入监控信息;在web服务器配置已注入监控信息的web应用程序,并对外以IP地址或域名地址的形式对外提供;在测试执行过程中,测试机器与web服务器通过http协议进行通信。下面描述整个测试流程的具体实施过程,如图1所示。(1)将自动化测试工具安装在测试机器上,将被测web应用程序拷贝至测试机器,在自动化测试工具上设置被测web应用程序文件夹的路径。(2)利用自动化测试工具对被测web应用程序进行自动分析,记录分析过程中获取的数据。具体包括:a)事件处理函数本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/55/201710177955.html" title="一种基于事件处理函数间定义‑引用的web自动化测试方法原文来自X技术">基于事件处理函数间定义‑引用的web自动化测试方法</a>

【技术保护点】
一种基于事件处理函数间定义‑引用的web自动化测试方法,其特征在于,包括如下步骤:1)在测试机器上安装web自动测试工具,在web自动测试工具中设置被测web应用程序的路径;2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;5)自动测试工具根据步骤2)中获取的数据以及步骤4)中设置的被测web应用程序的网址,自动生成测试用例并自动执行。

【技术特征摘要】
1.一种基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,包括如下步骤:1)在测试机器上安装web自动测试工具,在web自动测试工具中设置被测web应用程序的路径;2)web自动测试工具自动分析被测web应用程序源码;自动识别web应用程序的事件处理函数、事件处理函数中的过程间程序控制流程图,并自动向事件处理函数中注入监控代码;保存自动分析过程获取的数据;3)将步骤2)中注入监控代码的web应用程序拷贝至提供web服务的服务器端,并在服务器端设置web应用程序对外提供web服务的网址;4)在测试机器上的web自动测试工具中设置被测web应用程序的网址,即步骤3)中设置的web服务网址;5)自动测试工具根据步骤2)中获取的数据以及步骤4)中设置的被测web应用程序的网址,自动生成测试用例并自动执行。2.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中待分析的web应用程序源码包括HTML脚本和Javascript脚本。3.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中的事件处理函数通过静态分析HTML脚本和Javascript脚本自动获取。4.如权利要求1所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中,对事件处理函数静态分析,根据事件处理函数直接或间接调用其它函数的关系自动构建事件处理函数的过程间控制流程图,自动遍历事件处理函数的过程间控制流图中的完整最短路径,记录每条完整最短路径中的定义和引用,计算事件处理函数间的定义-引用关系。5.如权利要求4所述的基于事件处理函数间定义-引用的web自动化测试方法,其特征在于,所述步骤2)中保存的完整最短路径定义以及事件处理函数间的定义-引用关系定义如下:事件处理函数的过程间控制流图的起始节点和结束节点分别为start、end,事件处理函数的过程间控制流图的完整最短路径起始与start,结束于end,且不会覆盖过程间控制流图的同一条边两次;如两个事件处理函数存在完整最短路径分别为p1、p2以及变量var,若在p1中定义var而在p2中引用var,则p1和p2关于变量var存在事件处理函数间的定义-引用关系。6.如权利要求1所述的基于事件处理函数间定义-...

【专利技术属性】
技术研发人员:陈军成丁治明段立娟贾熹滨郭黎敏才智
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1