内容


使用 IBM Website Monitoring 测试网站可用性,第 1 部分

使用 Selenium 编写脚本

Comments

系列内容:

此内容是该系列 4 部分中的第 # 部分: 使用 IBM Website Monitoring 测试网站可用性,第 1 部分

敬请期待该系列的后续内容。

此内容是该系列的一部分:使用 IBM Website Monitoring 测试网站可用性,第 1 部分

敬请期待该系列的后续内容。

IBM® Website Monitoring 是用于网站探查和报警的全面解决方案。该软件即服务 (SaaS) 产品包括:

  • 一个第三方 Mozilla Firefox 附加工具 Selenium,用于编写脚本
  • Application Performance Management,用于存储和运行探测器
  • IBM Alert Notification (SaaS),作为一个报警系统使用

本系列将详细地介绍如何使用 IBM Website Monitoring 执行整个流程,包括编写脚本,设置警报,以及一些配置技巧和窍门。在这一部分中,您将学习如何使用 Selenium 创建一个脚本来探究您自己的网站。Selenium 工具有助于为了测试目的而实现 Web 应用程序的自动化。

创建一个基本的 Selenium 脚本

Selenium 集成开发环境 (IDE) 有一个记录/回放工具,允许您在不了解任何测试脚本编写语言的情况下编写测试。这些说明适用于基本的 Selenium 脚本编写,可以满足大约 90% 的探查需求。在本教程中,要创建一个脚本,请执行以下操作:

  • 打开 Google
  • 在 Google 上搜索 Selenium IDE
  • 单击搜索结果页面上的 Selenium 主页链接

记录脚本

  1. Selenium IDE 部分,单击最新版本的 Firefox 插件链接(在本教程发布时的最新版本为 v2.9.0),然后安装附加组件。Firefox 插件
    Firefox 插件
  2. 单击 Install now 安装列出的所有五个必要插件。
  3. 从 Firefox 启动 Selenium IDE。确保只打开一个选项卡;关闭 Firefox 中其他所有选项卡。
  4. 单击红色的记录图标,开始记录。红色圆形图标就是记录按钮
    红色圆形图标就是记录按钮
  5. 在 Firefox 的 Base URL 字段中,输入 www.google.com 转到 Google 网站。
  6. 在 Search 字段中,输入 Selenium scripting,并按下回车键。此时结果可能会自动出现,但在本教程中,请按下回车键。有些命令已记录在 Selenium IDE 中。
  7. 在 Google 搜索结果页面上,确认已列出 Selenium 主页:
    1. 在 Firefox 中,突出显示 Selenium - Web Browser Automation 链接并单击右键。
    2. 选中 verify Text link=Selenium - Web Browser Automation Selenium浏览器中的 verifyText 上下文菜单
      浏览器中的 verifyText 上下文菜单

      verifyText 命令会自动插入到脚本中,以确保该链接在结果页面上。在每一页上都使用此 Selenium 命令(或 assertText 命令),以确保该场景仍然与预期一致,而且探测器会继续正常运行。

  8. 要完成探查场景,请单击 Selenium - Web Browser Automation 链接。请记住,Selenium 应该仍然在记录。
  9. 验证 What is Selenium? 文本在 Selenium 主页上。使用在 第 7 步 中描述的相同方法。另一个 verifyText 上下文菜单
    另一个 verifyText 上下文菜单

现在,您已经记录了探查场景。

组织脚本

重新整理脚本,让每个测试用例代表一个页面。这种组织是必需的,因为,如果每个测试用例代表一个页面,那么 Selenium 脚本与 IBM Website Monitoring 会配合得更好。使用您在上一节中创建的脚本完成这些步骤。

  1. 停止记录。下图显示了记录的脚本。所有命令都在一个名为 Untitled 的测试用例中。Recorded open、type、click、verifyText、clickAndWait 和 verifyText 命令
    Recorded open、type、click、verifyText、clickAndWait 和 verifyText 命令
  2. 当前测试用例名为 Untitled ,我们可以重命名为 demo_google_page
  3. 创建另外两个测试用例,这三个页面代表组成该探查的三个页面。选择 File > Create new test cases按每个页面拆分测试用例
    按每个页面拆分测试用例
  4. 通过执行剪切和粘贴操作,将命令重新分发到它们各自所属的地方。完成此操作后,您应该有三个测试用例包含这些命令。下图显示了 demo-google-page 测试用例。open command demo-google-page
    open command demo-google-page

    下图显示了结果页面测试用例。

    click 和 verifyText 命令
    click 和 verifyText 命令

    下图显示了 Selenium 主页测试用例。

    verifyText 命令
    verifyText 命令
  5. 使用与它自己的 HTML 文件相同的名称保存每个测试用例(页面)。将测试用例保存为 html 页面
    将测试用例保存为 html 页面
  6. 将此探查方案保存为一个测试套件。使用 .testsuite 扩展名,让 Application Performance Management 仪表板工具明白这是一个合成的脚本。
将测试用例保存为 probe_demo1.testsuite
将测试用例保存为 probe_demo1.testsuite

测试记录的脚本

重新排列测试用例页面并保存。现在运行该脚本来测试它:

  1. 单击 Run Test Suite 按钮。Run test suite 按钮
    Run test suite 按钮
  2. Log 选项卡上,验证结果。您可能会看到 Web Browser Automation not found 错误信息,如下图所示。selenium 中的 Logs 选项卡
    selenium 中的 Logs 选项卡

    显示该错误消息是因为,当您单击 Search 按钮时,在 Google 中没有打开一个新的页面。Selenium click 命令不承认这个按钮。要解决这个问题,可在 verifyText 命令前面添加一个pause的 命令。请确保在 target 字段中添加了所需的暂停时间。在该场景中,暂停时间为 5000(5 秒)。

    添加一个 pause 命令作为解决办法
    添加一个 pause 命令作为解决办法
  3. 保存并重新运行测试套件,这一次应该会通过测试。

压缩文件为 IBM Website Monitoring 做准备

测试脚本之后,将其压缩成 IBM Website Monitoring 支持的形式。若使用 IBM Website Monitoring (V8.1.1),.zip 文件必须包含以下文件:

  • 一个 .testsuite 文件
  • 代表 .testsuite 文件中的测试用例 .html 文件
压缩所有 selenium 文件
压缩所有 selenium 文件

保存 .zip 文件,稍后需要将该文件导入至 IBM Website Monitoring 环境。

在脚本中添加流程控制

您可能想对脚本的流程进行更多的控制,例如,当某个购物探测器登录站点并开始购物。记录的探测器可能猜想购物车是空的,这样脚本才能正常工作。因此,需要将逻辑构建到脚本中,您可以使用 Selenium IDE 来完成此操作:Firefox 提供了 Flow Control 附加组件:

if cart is empty
		go to continue
	else 
		empty the cart
           continue

Flow Control Firefox 附加组件

在 Firefox 中导航到 Selenium IDE:Flow Control,单击 Add to Firefox。按照提示安装附加应用程序。

此安装添加了下面命令:

  • gotoIf
  • gotolabel
  • while, label

这三个命令让您对 Selenium 脚本编写有更多的控制。

在脚本中构建流程控制逻辑

您可以在一个脚本中实现控制,就像检查空购物车一样简单。gotoIf 命令验证购物车中的变量 ${total} 是否 0。如果购物车是空的,那么该脚本会跳过命令,并转到 nothingincart 行。

流程控制示例
流程控制示例

Selenium 脚本中的变量

除了流程控制之外,另一项强大资产是使用 Selenium IDE 中提供的变量。下面提供了两个示例,for 循环返回变量

for 循环

利用一个作为计数器的变量和 gotoIf 命令,您可以创建一个 for 循环。

使用 store 命令,创建一个名称为 counter 的变量。

命令是 store, target 0, value counter

当您使用 counter 变量与来自 Flow Control 附加组件的 gotoIflabel 命令时,您就有了一个 for 循环,如下图所示。

gotoIf to label 流程控制示例
gotoIf to label 流程控制示例

这个循环开始于 gotolabel > again,一直循环到 counter 变量达到 10。此时,循环将会停止,并转到 very_end 标签。

返回变量

有些命令返回 truefalse 结果。您可以在一个变量中存储布尔值,供以后使用。

下图显示了 Selenium 变量的例子。在测试 “Target” 字段中的条件后,storeElementPresent 返回 true 或 false,并且结果存储在 isDone 变量中。然后,gotoIf 命令用于检查 isDone 变量,然后转到脚本的另一部分,例如标记为 Done 的部分。

Selenium 变量示例
Selenium 变量示例

结束语

按照第 1 部分中的步骤,您现在可以创建一个自定义 Selenium 脚本来探究您自己的网站。在第 2 部分中,您将学习如何将这个脚本上传到 Application Performance Management,并开始监视您的网站。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, DevOps
ArticleID=1056091
ArticleTitle=使用 IBM Website Monitoring 测试网站可用性,第 1 部分: 使用 Selenium 编写脚本
publish-date=12262017