测试运行: 使用Windows PowerShell实现UI自动化

尽管问世时间相对较短,但 Windows PowerShellTM 已经成为我最喜爱的工具之一。我最近发现,Windows PowerShell 拥有创建小型库所需的全部功能,您可以使用这些功能编写超轻型的 UI 自动化代码。

在本月的专栏中,我将介绍如何创建一个小型的自定义 Windows PowerShell cmdlet 集合,以执行 Windows UI 自动化任务。其中包括获得应用程序和控件的句柄、操作控件以及检查应用程序状态。在本次讨论中,我将假设您对 Windows PowerShell 以及对使用 C# 语言的 Microsoft .NET Framework P/Invoke 机制调用 Win32 API 函数都有基本的了解。不过,即使您刚开始接触这些,稍微花点精力也能理解本专栏。

使用 Windows Powershell

对我而言,讲解如何使用 Windows PowerShell 完成超轻型 UI 自动化的要点的最简便方法是使用屏幕快照,如图 1 所示。外壳程序中的前几行输出只是表示我使用的是 Windows PowerShell。接下来的几行则表示正在注册我的自定义 cmdlet;这是由一个自定义启动脚本完成的,每当启动 Windows PowerShell 外壳的新实例时,就会运行此脚本。(我的启动脚本还会将当前的工作目录设置为 C:\UIautomationWithPowerShell。)在本例中,我编写并注册了八个自定义 cmdlet 来实现超轻型 UI 自动化:get-window、get-control、get-controlByIndex、send-chars、send-click、get-listBox、send-menu 和 get-textBox。

图 1 使用 Windows PowerShell 实现 UI 自动化

然后,我发出以下命令来显示当前目录中以字母“t”开头的所有项目的名称:

复制代码

PS C:\UIautomationWithPowerShell> get-childitem t* | select-object Name | format-table -auto

在图 1 中,输出内容告诉我,我有一个名为 TheAppToTest 的目录和一个名为 testScenario.ps1 的文件。这个文件是我的 Windows PowerShell 测试脚本。

get-childitem 命令是大约 130 个内置 Windows PowerShell cmdlet 中的一个。其中的很多 cmdlet 也都有别名。例如,get-childitem cmdlet 就有几个别名 — 它可以是“dir”(对于非常熟悉旧的 cmd.exe 命令外壳和 .bat 文件的人)、“ls”(对于习惯 UNIX 环境的工程师)及“gci”(命令行中一种简单方便的缩写)。

我的命令将 get-childitem 的输出用管道传送到 select-object cmdlet,我使用后者将结果筛选为最终只有文件和目录名属性。然后,我使用 -auto 开关将该结果用管道传送到 format-table cmdlet,以产生一个紧缩的显示。当然,我本可以只键入“get-childitem”(或它的别名之一),而不进行任何管道传送以接受命令的所有默认参数。

我可以在命令行输入命令 .\testScenario.ps1 来调用我的测试脚本。请注意,与大多数脚本语言不同,在 Windows PowerShell 中,即使脚本位于当前的工作目录中,仍需要使用一个相对路径(像我做的那样)或完整路径来指定脚本的路径。这是为了安全起见。另外,默认情况下,Windows PowerShell 不允许执行脚本,所以,如果想要运行脚本,必须显式启动执行。您可以通过输入命令“get-executionpolicy”来检查当前的脚本执行策略,并通过输入带有参数“remoteSigned”或“unrestricted”的“set-executionpolicy”来修改该策略。

设置好后,特定系统上的执行策略对 Windows PowerShell 外壳和用户会话的所有新实例仍然有效。当我启动一个新外壳时,我的启动脚本(只是一个普通的 Windows PowerShell 脚本)实际上能够执行这一事实表明,我当前的执行策略允许执行脚本。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索windows
, 脚本
, 命令
, powershell
, windows脚本
, windows 脚本
, 一个
, Powershell脚本
, 调用PowerShell
, PowerShell管道
, Get-ChildItem命令
, Get-ChildItem
cmdlets
windows ui自动化测试、powershell 自动化、windows powershell、windows10 powershell、windowspowershell2.0,以便于您获取更多的相关知识。

时间: 2024-10-31 07:46:50

测试运行: 使用Windows PowerShell实现UI自动化的相关文章

测试运行: 使用Windows PowerShell实现Web UI自动化

Windows PowerShellTM 是一种新型 Microsoft 命令外壳和脚本语言,可用作多种轻型测试自动化的平台.在本月的"测试运行"专栏中,我将向您展示如何使用 Windows PowerShell 通过自动化 Internet Explorer 为所有类型的 Web 应用程序创建快捷简便的 UI 测试自动化.本专栏主要针对初学者,但是经验丰富的工程师也能在此找到一些感兴趣的信息. 开始前,请确保已将要测试的站点添加到 Internet Explorer 中的"

测试运行: 使用Windows PowerShell进行请求/响应测试

最基本的 Web 测试格式是 HTTP 请求/响应测试.包括通过编程方式向 Web 应用程序发送 HTTP 请求.提取 HTTP 响应以及检查响应是否为预期值. 如果需要针对 ASP.NET 应用程序执行请求/响应测试,有许多可供选择的方法.您可编写 C# 或 Visual Basic 控制台应用程序.也可编写 JavaScript 或 Perl 脚本.如果您的起点很高,可以编写 C/C++ 程序.现在,Windows PowerShell 也能用于这一领域. 我使用过许多这样的技术,而 Win

测试运行: 使用Windows PowerShell进行小型测试

您可以将 Windows PowerShell 看成是对旧的 cmd.exe 命令外壳程序以及相关 .bat 文件的一个重大升级.虽然 Windows PowerShell 是为系统管理任务设计的,但它的某些功能也使之完全适用于轻量级测试任务.本月,我将以 Windows PowerShell 命令行和轻量级 Windows PowerShell 脚本两种方式对基于 Microsoft .NET Framework 的代码模块进行测试. 请看图 1 和图 2 中所示的屏幕截图.图 1 显示了对名

测试运行: Microsoft UI自动化库

可以使用多种技术测试 Windows 应用程序的用户界面.例如,可以使用 System.Reflection 类来测试 Microsoft .NET Framework 应用程序,也可以使用非托管 C++.C# 或者 Visual Basic 通过 P/Invoke 机制调用 Win32 API 函数(例如 FindWindow)来测试 .NET 和本机应用程序. 在本月的专栏中,我将为您介绍如何使用新的 Microsoft UI 自动化库(包含在 .NET Framework 3.0 中,是

Windows Powershell 自动化变量_PowerShell

Powershell 自动化变量 是那些一旦打开Powershell就会自动加载的变量. 这些变量一般存放的内容包括 用户信息:例如用户的根目录$home 配置信息:例如powershell控制台的大小,颜色,背景等. 运行时信息:例如一个函数由谁调用,一个脚本运行的目录等. PS> $HOME C:\Users\test PS> $currentProcessID=$pid PS> $currentProcessID 5356 PS> Get-Process -Id $pid H

Windows Powershell 介绍和安装_PowerShell

Powershell 是运行在windows机器上实现系统和应用程序管理自动化的命令行脚本环境.你可以把它看成是命令行提示符cmd.exe的扩充,不对,应当是颠覆. powershell需要.NET环境的支持,同时支持.NET对象.微软之所以将Powershell 定位为Power,并不是夸大其词,因为它完全支持对象.其可读性,易用性,可以位居当前所有shell之首. 当前powershell有四版本,分别为1.0,2.0,3.0 ,4.0 如果您的系统是window7或者Windows Ser

Windows PowerShell是什么,有什么功能或作用,如何使用

Windows 10时代带来了一个强大的工具Windows PowerShell.他必将成为CMD的继任者,成为下一代命令行工具.这是一种命令行界面和脚本语言,专门为系统管理而设计.Windows PowerShell使得IT管理员更容易地控制系统管理和加速自动化.Windows PowerShell 中的简单命令工具(称为 cmdlet)允许通过命令行管理企业中的计算机.通过 Windows PowerShell 提供程序,可以像访问文件系统那样方便地访问数据存储,如注册表和证书存储. 此外,

几个非常实用的Windows PowerShell应用实例

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   系统维护.管理中大家常在命令提示符(cmd.exe)下进行操作,对Windows PowerShell鲜有接触或者使用.其实在微软的计划中,Windows PowerShell将成为CDM的继任者,是下一代命令行工具.Windows PowerShell目前最高版本为2.0,并且已经集成到Windows Server 2008及Windows 7中.Window

分享非常实用的Windows PowerShell应用实例

系统维护.管理中大家常在命令提示符(cmd.exe)下进行操作,对Windows PowerShell鲜有接触或者使用. 其实在微软的计划中,Windows PowerShell将成为CDM的继任者,是下一代命令行工具.Windows PowerShell目前最高版本为2.0,并且已经集成到Windows Server 2008及Windows 7中.Windows PowerShell使得IT管理员更容易地控制系统管理和加速自动化,作为http://www.aliyun.com/zixun/a