Welcome

首页 / 软件开发 / 数据结构与算法 / 测试运行: 使用Windows PowerShell实现Web UI自动化

测试运行: 使用Windows PowerShell实现Web UI自动化2012-01-09 MSDN Dr. James McCaffreyWindows PowerShellTM 是一种新型 Microsoft 命令外壳和脚本语言,可用作多种轻型测试自动化的平台。在本月的“测试运行”专栏中,我将向您展示如何使用 Windows PowerShell 通过自动化 Internet Explorer® 为所有类型的 Web 应用程序创建快捷简便的 UI 测试自动化。本专栏主要针对初学者,但是经验丰富的工程师也能在此找到一些感兴趣的信息。

开始前,请确保已将要测试的站点添加到 Internet Explorer 中的“受信任的站点”列表中 — 否则脚本可能不起作用。通过发出以下 Windows PowerShell 命令开始自动化演示:

PS C:> $ie = new-object -com "InternetExplorer.Application"
它会针对 SHDocVw.dll 库中典型的 InternetExplorer COM 自动化对象创建一个实例。new-object 关键字是一个 Windows PowerShell cmdlet(发音为 command-let)。共有约 130 个 cmdlet,它们构成了 Windows PowerShell 功能的核心。可通过运行 get-command 获取 cmdlet 列表,并始终可通过运行 get-help 命令获取有关 cmdlet 的帮助。我向 new-object 提供了一个 -com 开关(实际上是 –comObject 的快捷方式)。它指定使用对象的 ProgID 来实例化典型的 COM 对象,而不是实例化托管对象。

将生成的对象存储到 $ie 变量中(所有 Windows PowerShell 变量前面都有一个 $ 字符,使其易于与其他令牌类型区分开来)。接下来,使用 Navigate 方法将待测试的虚拟 MiniCalc Web 应用程序加载到浏览器自动化对象中:

PS C:> $ie.navigate("http://localhost/MiniCalc/Default.aspx")PS C:> $ie.visible = $true
Windows PowerShell 的其中一个强大功能是可帮助您查找对象的功能。使用旧的脚本技术时,如果不知道 InternetExplorer 对象具有一个 Navigate 方法,就必须使用某些类型的外部引用来查找该信息。但是,如果使用 Windows PowerShell,就有多种快速方法来查看对象的可用方法和属性。例如,键入“$ie.”然后按 Tab 键即可使用 tab 键完成功能。每按一个键,就会显示一个可用属性或方法。也可使用 get-member cmdlet 来获取所有可用属性和方法及其签名的列表:

PS C:> $ie | get-member | more
另一 Windows PowerShell 发现功能是命令完成。例如,如果键入“$ie.vi”然后按 Tab 键,Windows PowerShell 将为我键入 ie.visible 语句。Windows PowerShell 中的这些发现功能可节省大量时间。

接下来,获得对待测试的应用程序上的所有输入控件的引用:

PS C:> $doc = $ie.documentPS C:> $tb1 = $doc.getElementByID("TextBox1")PS C:> $tb2 = $doc.getElementByID("TextBox2")PS C:> $add = $doc.getElementByID("RadioButton1")PS C:> $btn = $doc.getElementByID("Button1")