一种基于事件模拟的用户界面测试方法及装置制造方法及图纸

技术编号:6000050 阅读:245 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于事件模拟的用户界面测试方法,包括:接收测试用例,所述测试用例包含需要测试的事件的类型说明以及事件发生的控件的类型说明;根据测试用例发出当前事件模拟请求;判断当前事件的合理性及完整性,并根据合理性及完整性对当前事件进行处理;通过调用上层工作环境接口创建当前事件;记录当前事件的运行日志。依据本发明专利技术,在用户界面测试中可以很好地应对用户界面布局改变的情况,并且由于考虑了事件之间的联动性,在每次事件模拟请求中,都会考虑控件、事件之间的逻辑关系,自动产生符合请求模拟的事件的逻辑关系的测试行为,可以很好地避免漏测的情况出现。

【技术实现步骤摘要】
一种基于事件模拟的用户界面测试方法及装置
本专利技术涉及用户界面测试领域,特别是涉及一种基于事件模拟的用户界面测试方 法及装置。
技术介绍
随着互联网的广泛应用,网站上的网页的内容、布局、样式常常需要变动,这导致 在项目的升级过程中,由前端用户界面的变动而引入的新缺陷(BUG)数量越来越多,在其 他的软件产品中也同样存在这样的问题,即用户界面的修改会导致项目的新BUG,因此需要 有一种比较好的测试方法可以对用户界面进行有效测试。目前已有的测试工具,主要有两种类型第一种类型是简单模拟鼠标轨迹,即测试 脚本为鼠标经过的坐标轨迹和在轨迹上的点击。在这种方式下,当用户界面布局有所改变 的时候,鼠标点击的轨迹也需要随之变化,所以测试脚本就得完全重做。第二种类型是基于 事件模拟对用户界面进行测试,即模拟在用户界面的控件上发生的各种事件。通过判断用 户界面的控件对模拟的事件是否能够正常响应,就能够发现用户界面是否存在错误。由于 这种方式针对的测试对象是控件,而控件是可以随着布局改变的,这种方式可以有效避免 用户界面的布局发生改变后,测试脚本必须完全重做的情况发生,但在现有技术的这种方 式下,基于事件的模拟仅是简单模拟,即只是在某个需要测试的控件上模拟一个简单的浏 览器事件,却不考虑事件与事件之间、事件与控件之间、控件与控件之间的关联性,例如在 按钮A上模拟一个单击(click)事件,再在按钮B上模拟一个单击事件,这两次模拟是割 裂开的,而实际上,鼠标不可能凭空从按钮A飞到按钮B,在这两次单击事件之间,一定还发 生了鼠标移动事件,由于不考虑事件与事件之间、事件与控件之间、控件与控件之间的关联 性,很可能会出现测试的事件没有发生错误,而与测试事件相关的其他事件却发生错误但 正好没有被测试到的情况。以上例来说,有可能对按钮A的单击与对按钮B的单击都没有 出错,但是从按钮A移动到按钮B时,用户界面却出现了错误的响应,由于没有测试这种情 况,所以也就无法发现这个错误。仅靠人工去考虑所有需要测试的控件与事件是非常困难 的,很容易发生遗漏,也就是说,现有技术的基于事件模拟对用户界面测试的方法很容易出 现漏测的情况。请参考图1,图1为现有技术中基于事件模拟进行用户界面测试的方法的流程图。 首先步骤11接收测试用例,测试用例中描述了需要测试的事件以及事件发生的控件。步骤 12根据测试用例发出无逻辑关系的简单事件模拟请求,所谓的无逻辑关系是指每个测试的 事件之间是割裂的。步骤13直接根据步骤12中的请求调用上层工作环境接口创建事件。 步骤14记录在事件发生过程中的运行日志。在这种方法下,测试方法本身对测试逻辑是否 合理不做判断,在什么控件上模拟什么事件,完全由测试人员自行决定,这增加了测试人员 的工作量,也很容易出现漏测的现象。
技术实现思路
为了解决现有技术中基于事件模拟进行用户界面测试中很容易漏测的问题,本发 明提供了一种基于事件模拟的用户界面测试方法,具体技术方案包括以下步骤步骤1 接收测试用例,所述测试用例包含需要测试的事件的类型说明以及事件 发生的控件的类型说明;步骤2 根据测试用例发出当前事件模拟请求;步骤3 判断当前事件的合理性及完整性,并根据合理性及完整性对当前事件进 行处理;步骤4 通过调用上层工作环境接口创建当前事件;步骤5 记录当前事件的运行日志。根据本专利技术的一优选实施例,所述步骤3包括判断控件的可操作性。根据本专利技术的一优选实施例,控件不可操作的情况包括控件被隐藏、控件被覆盖 或控件被剪裁。根据本专利技术的一优选实施例,所述方法在控件不可操作的情况下返回false值并 结束当前事件模拟请求。根据本专利技术的一优选实施例,在控件可操作的情况下所述步骤3还包括判断当前 事件是否可分解及判断当前事件与上一个创建的事件之间是否存在需要补充的事件。根据本专利技术的一优选实施例,在当前事件可分解的情况下,所述方法还包括对当 前事件分解后得到的一系列事件逐一发出当前事件模拟请求。根据本专利技术的一优选实施例,在当前事件与上一个创建的事件之间存在需要补充 的事件时,所述方法还包括对需要补充的事件发出当前事件模拟请求。根据本专利技术的一优选实施例,在当前事件不可分解且与上一个创建的事件之间不 存在需要补充的事件时,所述步骤3还包括将当前事件保存为上一个创建的事件。本专利技术还提供了一种基于事件模拟的用户界面测试装置,包括接收单元,用于接收测试用例,所述测试用例包含需要测试的事件的类型说明以 及事件发生的控件的类型说明;请求单元,用于根据测试用例发出当前事件模拟请求;判断单元,用于判断当前事件的合理性及完整性,并根据合理性及完整性对当前 事件进行处理;创建单元,用于通过调用上层工作环境接口创建当前事件;记录单元,用于记录当前事件的运行日志。根据本专利技术的一优选实施例,判断单元进一步包括控件状态判断单元,用于判断 控件的可操作性。根据本专利技术的一优选实施例,控件不可操作的情况包括控件被隐藏、控件被覆盖 或控件被剪裁。根据本专利技术的一优选实施例,所述装置在控件不可操作的情况下返回false值并 结束当前事件模拟请求。根据本专利技术的一优选实施例,在控件可操作的情况下判断单元进一步包括事件分 解判断单元,用于判断当前事件是否可分解,及事件补充判断单元,用于判断当前事件与上一个创建的事件之间是否存在需要补充的事件。根据本专利技术的一优选实施例,在当前事件可分解的情况下,事件分解判断单元还 用于对当前事件分解后得到的一系列事件逐一调用请求单元。根据本专利技术的一优选实施例,在当前事件与上一个创建的事件之间存在需要补充 的事件时,事件补充判断单元还用于对需要补充的事件调用请求单元。根据本专利技术的一优选实施例,在当前事件不可分解且与上一个创建的事件之间不 存在需要补充的事件时,判断单元还包括事件保存单元,用于将当前事件保存为上一个创 建的事件。由以上技术方案可以看出,应用本专利技术的基于事件模拟的用户界面测试方法和装 置,在用户界面测试中可以很好地应对用户界面布局改变的情况,并且由于考虑了事件之 间的联动性,在每次事件模拟请求中,都会考虑控件、事件之间的逻辑关系,自动产生符合 请求模拟的事件的逻辑关系的测试行为,可以很好地避免漏测的情况出现。附图说明图1为现有技术中基于事件模拟的用户界面测试方法流程示意图;图2为本专利技术中基于事件模拟的用户界面测试方法总流程示意图;图3为本专利技术中基于事件模拟的用户界面测试方法实施例流程示意图;图4为本专利技术中基于事件模拟的用户界面测试装置总体结构示意框图;图5为本专利技术中基于事件模拟的用户界面测试装置实施例结构示意框图。具体实施方式为了使本专利技术的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对 本专利技术进行详细描述。请参考图2,图2是本专利技术实施例中基于事件模拟的用户界面测试方法总流程示 意图。该方法主要包括以下步骤步骤101 接收测试用例,测试用例包含有事件类型说明和事件发生的控件类型 说明,即说明在什么控件上请求模拟什么事件,如果该事件需要传递参数,则请求中还包含 该事件的参数说明。测试用例是由测试人员编写好的,其目的是为了通过这些测试用例的运行观察系 统的响应,从而发现用户界面是否有错误发生。步骤102 根据测试用例发出当前事件模拟请求。测试用例描述本文档来自技高网
...

【技术保护点】
一种基于事件模拟的用户界面测试方法,其特征在于,所述方法包括步骤:a.接收测试用例,所述测试用例包含需要测试的事件的类型说明以及所述事件发生的控件的类型说明;b.根据测试用例发出当前事件模拟请求;c.判断所述当前事件的合理性及完整性,并根据所述合理性及完整性对所述当前事件进行处理;d.通过调用上层工作环境接口创建所述当前事件;e.记录所述当前事件的运行日志。

【技术特征摘要】

【专利技术属性】
技术研发人员:欧阳先伟
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:11

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

1