selenium编写脚本
IBM®网站监控是用于网站探测和警报的综合解决方案。 此软件即服务(SaaS)产品包括:
- 第三方Mozilla Firefox附加组件:用于脚本编写的Selenium
- 应用程序性能管理以存储和运行探针
- IBM Alert Notification(SaaS)用作警报系统
本系列从头到尾说明了如何使用IBM网站监控,包括脚本,设置警报以及配置技巧。 在这一部分中,您将学习如何使用Selenium创建脚本来探究您自己的网站。 Selenium工具有助于自动化Web应用程序以进行测试。
创建一个基本的Selenium脚本
Selenium集成开发环境(IDE)具有记录/回放工具,因此您可以编写测试而无需了解测试脚本语言。 这些说明适用于基本的Selenium脚本,该脚本约占探针的90%。 在本教程中,您将创建一个脚本,该脚本:
- 开启Google
- 在Google中搜索Selenium IDE
- 单击搜索结果页面中的Selenium主页链接
记录脚本
- 在Selenium IDE部分中,单击Firefox插件链接的当前版本(在发布本教程时为v2.9.0)以安装插件。
- 单击立即安装以安装列出的所有五个必需的插件。
- 从Firefox启动Selenium IDE。 确保仅打开一个选项卡; 关闭Firefox中的所有其他标签。
- 单击红色的录制图标以开始录制。
- 在Firefox的“基本URL”字段中,键入
www.google.com
以转到Google网站。 - 在搜索字段中,输入
Selenium scripting
,然后按Enter。 结果可能会自动显示,但是对于本教程,请按Enter。 一些命令已经记录在Selenium IDE中。 - 在Google结果页上,验证是否列出了Selenium主页:
- 在Firefox中,突出显示Selenium-Web浏览器自动化链接,然后单击鼠标右键。
- 选择verify text link = Selenium-Web浏览器自动化Selenium 。
verifyText
命令自动插入到脚本中,以确保链接位于结果页面上。 在每个页面上都使用此Selenium命令(或assertText
命令),以确保方案仍在进行中,并且探针继续正常运行。
- 要完成探测方案,请单击Selenium-Web Browser Automation链接。 记住,Selenium应该仍在录音。
- 验证
What is Selenium?
文本在Selenium主页上。 使用步骤7中说明的相同方法。
现在,您已经记录了探测场景。
整理脚本
重新排列脚本,以便每个测试用例代表一页。 该组织是必需的,因为如果每个测试用例代表一页,那么Selenium脚本与IBM Website Monitoring一起使用会更好。 对于这些步骤,请使用在上一节中创建的脚本。
- 停止录音。 下图显示了录制的脚本。 所有命令都在一个名为Untitled的测试用例下。
- 将当前测试用例从
Untitled
重命名为demo_google_page
。 - 创建两个额外的测试用例,以代表构成该探针的三个页面。 选择文件>创建新的测试用例 。
-
下图显示了结果页面测试用例。
下图显示了Selenium主页测试案例。
通过使用剪切和粘贴,将命令重新分配到它们各自所属的位置。 完成后,您应该有三个包含这些命令的测试用例。 下图显示了demo-google-page测试用例。
- 使用与自己的html文件相同的名称保存每个测试用例(页面)。
- 将此探测方案另存为一个测试套件。 使用
.testsuite
扩展名可使Application Performance Management仪表板工具了解这是一个合成脚本。
测试录制的脚本
重新排列并保存了测试用例页面。 现在运行脚本进行测试:
- 单击运行测试套件按钮。
- 在日志选项卡上,验证结果。 您可能会发现
Web Browser Automation not found
错误消息,如下图所示。显示错误消息的原因是,当您单击“ 搜索”按钮时,没有在Google中打开新页面。 Selenium
click
命令无法识别此按钮。 要解决此问题,请在verifyText
命令之前添加一个pause
命令。 确保在目标字段中添加暂停所需的时间。 在这种情况下,暂停时间为5000
(5秒)。 - 保存并重新运行测试套件,这应该通过此时间。
压缩文件以准备进行IBM Website Monitoring
测试脚本后,将其压缩为IBM Website Monitoring接受的形式。 要使用IBM网站监视(V8.1.1),. .zip
文件必须包含以下文件:
- 一个
.testsuite
文件 - 在
.html
代表在测试用例文件.testsuite
文件
保存.zip
文件,以备以后在需要将文件导入到IBM Website Monitoring环境中时使用。
将流控制添加到脚本
您可能希望对脚本流程进行更多控制,例如购物探针何时登录网站并开始购物。 记录的探测可能期望购物车为空,脚本才能正常工作。 因此,您需要在脚本中构建逻辑,可以使用Firefox提供的Selenium IDE:Flow Control插件来完成:
if cart is empty
go to continue
else
empty the cart
continue
流控制Firefox附加组件
导航到Firefox中的Selenium IDE:流控制 ,然后单击添加到Firefox 。 按照提示安装附加应用程序。
此安装中添加了以下命令:
-
gotoIf
-
gotolabel
-
while, label
这三个命令为您提供了对Selenium脚本的更多控制。
在脚本中构建流控制逻辑
您可以在脚本中实现控制,就像检查空的购物车一样简单。 gotoIf
命令验证购物车中的变量$ {total}是否为0。 如果购物车是空的,脚本将跳过命令并转到nothingincart
行。
Selenium脚本中的变量
除了流控制外,另一个强大的资产是使用Selenium IDE中可用的变量。 两个示例是for循环和return变量 。
for循环
使用充当计数器的变量和gotoIf
命令,可以创建一个for循环。
通过使用store
命令创建一个名为counter
的变量。
当您将gotoIf
的counter
变量与gotoIf
和label
命令一起使用时,将具有for循环,如下图所示。
此循环again
从gotolabel
>开始,并循环直到counter
变量达到10。这时,循环停止并转到very_end
标签。
返回变量
某些命令返回正确或错误的结果。 您可以将布尔值存储在变量中以供以后使用。
下图显示了Selenium变量示例。 在“目标”字段中测试条件并将其存储在isDone
变量中之后, storeElementPresent
返回true或false。 然后,在转到脚本的另一部分(例如标记为Done
的脚本)之前,使用gotoIf
命令检查isDone
变量。
结论
通过执行本部分中的步骤,您现在可以创建一个自定义的Selenium脚本来探测您自己的站点。 在第2部分中 ,您将学习如何将此脚本上传到Application Performance Management并开始监视您的站点。
翻译自: https://www.ibm.com/developerworks/library/mw-1604-chan1-trs/1604-chan.html
selenium编写脚本