本主题介绍如何在 SOAtest 和 Virtualize 中自定义 web 场景的等待条件。

章节目录:

了解等待条件

您可以自定义 SOAtest 和/或 Virtualize 在执行用户操作之后等待多长时间,以便进入当前场景步骤的验证/提取阶段,然后进入场景中的下一个步骤。

当用户与 web 页面交互时,web 页面将响应用户正在做的任何事情。例如,当用户点击链接时,页面将重新加载新内容。当用户选择菜单项时,页面的其他部分可能会刷新自己。用户本能地等待页面完成更新,然后继续使用页面。实际上,在大多数情况下,用户必须等待更新,以便获得页面元素。

在实现测试自动化时,必须配置此决策。测试工具必须等待足够长的时间,这样它就不会在页面准备好之前继续执行场景执行过程,但同时它还必须快速运行,以实现自动化速度的好处之一。

SOAtest 和 Virtualize 在记录时自动配置等待条件。对于每个 web 场景步骤,它们都会自动添加一个延迟,以等待下一个场景步骤中使用的元素。之所以这样做,是因为您不能让下一个 web 场景步骤点击链接,除非该链接首先出现在页面上。

如果一个操作导致在记录期间加载一个新页面,那么 SOAtest 和/或 Virtualize 将添加“等待页面加载”延迟。

如果在录制过程中检测到不会导致页面加载的网络通讯报文(如 AJAX 请求),则会添加“等待没有 HTTP 通讯报文的时间间隔”等待条件,以便在回放过程中为 web 应用程序提供足够的时间来发出合适的请求。

但是,您可能希望手动调整或修改等待条件,以便让场景按预期执行。在许多情况下,单个场景步骤将使用多个等待条件。

指定等待条件

在场景记录期间捕获的等待条件可以在场景步骤中等待条件选项卡中查看和修改。可用的等待条件包括:

  • 等待页面加载:此等待条件将等待至少一个页面加载完成。但是,它会等到所有的页面加载都在一秒钟内完成。一旦一秒钟过去了,没有任何新的页面加载开始,等待就完成了。页面加载既可以表示整个页面正在重新加载,也可以表示单个帧正在重新加载。如果 SOAtest/Virtualize 检测到页面加载发生在导致记录场景步骤的特定用户操作之后,以及在记录下一个步骤的用户操作之前,则在记录期间添加页面加载等待条件。          

  • 等待元素:此等待条件将一直等到指定的页元素满足特定条件为止。
    • 页面元素:页面元素可以通过两种方式指定:
      • 下一个用户操作的元素:该选项通过查看场景中的下一步并使用在该步骤的用户动作选项卡中配置的元素,自动确定要等待哪个元素。如果当前步骤是某个场景中的最后一步,则此等待条件将不执行等待。
      • 指定的元素:此选项允许您手动选择要等待的元素。可以使用元素属性XPath脚本来选择元素。
    • 条件:您可以设置以下元素条件进行等待:
      • 出现:这个条件一直等到元素出现在页面上。元素可能对用户可见,也可能不可见。如果元素直到用户鼠标移到其他元素上才变得可见,那么这比下一个条件 Visible 更可取。这是用于记录时自动添加的元素等待的默认条件。
      • 可见:此条件将一直等到元素在页面上可见为止。
      • 不可见:此条件将一直等到元素不出现在页面上,或者出现在页面上但不可见为止。
      • 可编辑:此条件将等待输入元素可编辑。如果在非输入的元素上使用此条件,它最终将超时,因为非输入的元素根据定义是不可编辑的。
      • 有值:此条件将等到元素具有指定值的属性时才执行。属性可以是元素支持的任何属性,也可以是元素的文本内容的“text”。

    在记录过程中添加一个元素等待条件(等待元素出现),作为所有测试或操作的除了那些添加了脚本对话框等待条件的测试或操作的最后一个等待条件。元素等待条件在以下情况下是不活动的(意味着它们不等待任何东西):

    • 在当前场景步骤之后,该场景中没有任何步骤。
    • 在当前场景步骤之后的场景中没有启用浏览器回放工具。
    • 下一个浏览器回放工具在其用户操作中不使用页面元素。
    • 下一个浏览器回放工具被配置为使用测试或操作套件逻辑。如果下一个步骤使用测试或操作套件逻辑,则不使用元素等待条件,因为该逻辑可能导致下一个步骤无法运行。

  • 等待脚本对话:此等待条件一直等到检测到以下脚本对话框之一:警告框、确认框或提示框。在录制过程中添加脚本对话框等待条件,作为导致脚本对话框出现的所有测试或操作的最后等待条件。

  • 等待指定的时间:此等待条件只是等待指定的毫秒数。此等待条件不会在录制期间自动添加。
  • 没有 HTTP 通讯报文情况下等待 1,000 毫秒:此等待条件将等待指定的秒数,直到浏览器和服务器之间没有任何通讯报文。例如,如果指定的时间是 1,那么一旦浏览器和服务器之间在一秒钟内没有任何通讯报文,等待就会结束。只有在检测到异步请求导致其他非异步请求发生时,才会在录制过程中添加此等待条件。 

除了手动从该选项卡添加新的等待条件外,还可以从浏览器内容查看器工具自动添加这些条件。

从浏览器内容查看器中添加等待条件

浏览器内容查看器允许您从呈现的 Web 页面的视图以图形方式指定等待条件。

若要从浏览器内容查看器中添加等待条件工具:

  1. 右键点击要为其指定等待条件的元素,然后选择添加等待元素
  2. 在添加等待条件对话框,指定新等待条件的详细信息,然后点击 OK

添加的等待条件将自动配置为等待,直到出现已关闭的元素。

标识与等待条件关联的元素

作为等待条件源的元素将在浏览器内容查看器中以纯绿色边框突出显示。

配置等待条件的顺序

等待条件按执行顺序出现在等待执行选项卡中。您可以通过点击等待条件选项卡中合适的按钮对条件顺序进行添加、删除和修改。

等待条件的顺序非常重要!

无论其他任何等待条件成功或失败,等待条件都将按照它们出现的顺序执行。如果等待条件在超时前未满足,则会生成错误信息。 

除了等待指定的时间条件外,每个等待条件都有超时。如果在超时内没有满足等待条件,则会报告一条错误消息,以便您知道如何调整等待条件。然而,即使等待条件失败,场景步骤也将继续。可以将超时设置为使用首选项中设置的默认超时,也可以为单个等待条件定制超时。

  • No labels