Appium Desktop

前言:本篇文章并非我的原创,而是翻译自英文原著。这里的每一句话我都仔细揣摩过并且加以实践,着实花了一些时间,在此记录只是想帮助更多的人。以下为正文:

Appium Desktop是一款用于Mac、Windows和Linux的开源应用,它提供了Appium自动化服务器在一个漂亮灵活的UI中的强大功能。它是一些与appium相关的工具的组合:

1、Appium服务器的图形界面。您可以设置选项、启动/停止服务器、查看日志等…您也不需要使用Node / NPM安装Appium,因为节点运行时将与Appium Desktop绑定。

2、您可以使用Inspector来查看应用程序的元素,了解它们的基本信息,并与它们进行基本的交互。这是一种学习Appium的方法,或者是了解你的应用程序的一种方法,这样你就可以为它编写测试用例了。

Download Appium Desktop

你总是可以在GitHub上的发布页面上找到最新版本:https://github.com/appium/appium-desktop/releases

如果你在Windows或macOS上,Appium Desktop将自动为你提供最新版本的应用程序。如果你遇到问题更新,只需删除或卸载应用程序,并从上面的链接重新下载。

注意,Appium Desktop与Appium不一样。Appium Desktop是一个图形界面,使用附加的工具。Appium Desktop是在自己的cadence上发布的,它有自己的版本控制系统。如果你报告的是Appium Desktop的问题,一定要包括Appium Desktop的版本和使用的Appium服务器的版本(见下文)。

如果你在macOS上,你需要安装Appium Desktop,从下载的DMG文件拷贝到你自己的文件系统(最好的地方是“应用程序”文件夹)。在附加的DMG本身上运行Appium不受支持,也不会起作用。


使用说明

这些说明假定您已经熟悉Appium和Appium相关的概念。如果您对Appium所知甚少,请访问appium.io/,阅读介绍性材料

这个App提供了一个方便的方法下载和运行Appium自动化服务器,以及一个检查你的Android或iOS应用程序的工具。它的各种功能在以下小节中描述。

服务器启动窗口

开始一个简单的服务器(Simple)

当您打开Appium Desktop时,您会受到服务器启动窗口的欢迎。基本选项是启动一个带有所有默认值的Appium服务器,以及修改主机和端口的能力。start按钮还将让您知道您正在运行的Appium服务器的哪个版本,当向Appium团队报告问题时,它是有用的。


使用“高级选项”启动服务器(Advance)

通过单击“高级”选项卡,您可以设置Appium中可用的所有服务器标志。这是针对高级用户的,应该在咨询了Appium文档之后进行修改。


服务器预设(Presets)

如果您使用高级服务器选项,您就可以保存配置以备以后使用。只需将preset保存在“Advanced”选项卡上,然后您将能够在“preset”选项卡中回忆并启动服务器。


服务器控制台输出窗口

(如果你通过上面所说的方式)启动服务器后,它将在指定的主机和端口上启动,并打开显示服务器日志输出的新窗口。

这是相当简单的,除了使用按钮来停止服务器之外,没有任何实际的交互。您还可以从这个窗口复制并粘贴日志,这在报告Appium问题时非常有用。

另一个按钮可用:“启动新会话”。单击它将打开新的会话窗口,使您可以在当前运行的服务器上启动一个检查器会话。


新会话窗口(Start New Session )

新的会话窗口允许您构造一组desired capabilities,用于启动Appium会话。您可以针对当前运行的Appium Desktop服务器(默认的)启动一个会话,或者您可以针对各种其他端点启动一个会话。

由于不需要使用Appium Desktop自己的服务器,您可以在不启动Appium Desktop服务器的情况下进入新的会话窗口。只需点击“File”(Windows / Linux)或“Appium”(Mac),然后选择“New Session…”,它将打开新的会话窗口,而不必启动本地服务器。在这种情况下,将禁用附加到本地服务器。


Appium端点(Appium Endpoints)

以下是针对非本地Appium服务器启动会话的选项:

自定义主机/端口配置:如果您想要在您的网络中的另一台机器上运行一个Appium服务器,这是非常有用的。

Sauce实验室:如果你无法访问你的机器上的iOS模拟器,你可以利用你的Sauce实验室帐户在云中启动一个Appium会话。

TestObject:您还可以使用TestObject的真实设备云来进行真正的基于设备的检查。

要设置这些选项,应该很简单。只需在输入字段中输入您的详细信息。


所需的功能(Desired Capabilities)

Desired capabilities是如何配置Appium会话。他们告诉Appium服务器你想要自动化的平台和应用程序。如果您不熟悉Desired capabilities的概念,或者需要具备各种类型的Appium会话Desired capabilities,您应该咨询Appium文档

Appium Desktop不限制您以任何方式创建desired capabilities,也不会为您验证它们。它只是提供了一个很好的UI来输入它们,并保存它们供以后使用。在“desired capabilities”选项卡下,您可以使用表单字段和“+”按钮来输入许多你需要的desired capabilities。您还将看到产生的JSON的表示,这是实际发送给Appium服务器的内容。这对于验证您的capabilities,或者在报告问题时进行复制粘贴非常有用。

一旦您设置了desired capabilities,您可能希望保存它们,以便以后可以运行相同类型的会话。只需单击“Save As...”“给你的capability设定一个名字的按钮。”然后您可以在“Saved Capability Sets”选项卡下访问它,以便以后编辑或会话启动。

设置好服务器type和capabilities后,单击“Start Session”启动Appium Desktop Inspector(Appium Desktop检查器)。


附加到一个现有的会话(Attach to an Existing Session)

如果你点击“Attach to Session...”选项卡,您可以从当前正在运行的会话列表中选择一个当前会话,或者您可以输入一个当前运行会话的会话ID。该会话应该在上述服务器类型部分中指定的服务器细节上运行。附加到现有会话是可能的,因为检查器只是一个Appium客户端。如果您想调试正在运行的测试的中间,这将非常有用。当您退出现有会话的Inspector窗口时,Appium Desktop不会像往常一样退出会话。


The Inspector

 Inspector是应用程序状态的可视化表示,以及通过Appium在应用程序中执行某些交互的能力。

Appium会话可能需要一些时间来加载,尤其是在云服务上,所以请耐心等待。当会话加载时,您的应用程序的屏幕截图将出现在左边。您可以在应用程序中使用鼠标来处理各种UI元素,并看到它们突出显示。

在Inspector窗口的中间是您的应用程序的层次结构,表示为XML。您可以通过单击它,或者通过点击屏幕快照视图中的元素来导航这棵树。然后他们将被强调。

当一个元素被突出显示时,它的信息会出现在检查器右侧的细节视图中。这个细节视图包括对元素的潜在操作,以及元素属性的表。这些属性在决定如何使用特定的Appium定位策略访问元素时是有价值的。选择一个元素,您还可以“Tap”元素,或者“发送键”到元素(如果它是一个文本字段)。

当您使用一个元素执行这样的操作时,检查器将发送命令到Appium,它将执行它。如果操作成功,将生成一个新的屏幕截图,您将看到应用程序的更新状态和XML。如果不成功,您将有机会看到错误消息。


检查器窗口的顶部包含一个小工具栏,上面有代表在检查器中采取某些动作的能力的图标:

(调用driver.back)

刷新(刷新源和屏幕截图)

开始录音(打开录音机,查看下一节,了解更多关于录音机的信息)

退出会话(调用驱动程序)。退出并关闭检查器(Inspector))


记录器(The Recorder)

Appium Desktop有一个非常基本的动作记录器,它监视使用Appium Desktop的操作,并显示特定于语言和框架的代码,这些代码代表这些动作。然后,代码可以复制粘贴到适当的Appium客户机代码中,并用于测试。

NB:记录器的目标不是产生生产就绪的测试代码。它被设计为帮助探索Appium API的工具,并演示特定语言和Appium库中特定的自动化行为如何与方法调用相对应。总之,它是一个学习工具,而不是一个健壮的代码生成特性,应该这样使用。

当您开始记录时,Inspector(检查器)将显示一个额外的窗口:

起初,记录器没有显示任何代码。首先需要采取一些行动,比如在层次结构中找到一个元素,然后点击它,或者向它发送击键。当你这样做的时候,代码会出现在记录窗口中,对应于你所选择的特定语言和框架(可以在录音机的右上角的下拉菜单中调整):

可以使用记录器窗格右上方的适当按钮将此代码复制到剪贴板。注意,默认情况下,所显示的只是与您在记录时所采取的特定操作相对应的代码行——一般情况下,您不能将这些行粘贴到一个空文本文件中并运行代码。要在代码中运行Appium测试脚本,需要安装各种依赖关系(如Appium客户程序库),以及脚本样板文件(如实例化一个驱动程序和初始化会话)。要显示此额外的代码,您可以单击“show Boilerplate”按钮。通过显示的样板代码,可以将代码复制并粘贴到新文件中并运行它。

随着我们向Appium桌面添加更多的语言、框架和操作,记录器的力量将继续增长。


Conclusion

这是你成功使用Appium Desktop所需要知道的所有知识!记住,Appium Desktop并不是理解Appium本身的替代品——它只是一个方便的工具,可以在你的桌面上使用Appium,以及一个检查你应用程序的检查器。


Reporting Issues and Requesting Features

Appium Desktop是开源的,我们使用GitHub来跟踪问题。请简单地在我们的问题跟踪器报告问题。我们将努力确定您所报告的问题是否与Appium Desktop或Appium服务器有关。如果它与Appium Desktop无关,我们将关闭这个问题,并要求您在Appium的主要问题跟踪器中打开一个通用的Appium问题。请注意,在你所经历的问题是否与Appium Desktop有关,或者是一个一般性的Appium问题的时候,可以节省自己和我们的宝贵时间。您可以通过查看这个问题是否与Appium命令行服务器进行重新生成。如果是的话,直接向Appium的问题追踪报告。

有特性请求吗?遵循相同的过程,向适当的跟踪器提交一个问题!(如果这个请求是专门用于Appium Desktop的,或者Appium的主跟踪程序,如果请求是更一般的应用程序,则在这个repo中。)

Advanced Topics and Troubleshooting

Appium can't detect environment variables on Mac

Appium使用像ANDROID_HOME这样的环境变量,并依赖于路径中的各种二进制文件等等。当您在一个环境中从命令行运行时,您已经适当地设置了这些变量,Appium在选择它们时没有任何问题。然而,Appium Desktop不会在shell或命令行环境中运行,因此默认情况下,它无法访问您在shell启动脚本或概要文件中设置的环境变量。为了解决这个问题,我们使用shell - env包来获取shell中定义的环境变量。这个包只在某些常见的init脚本中查找,但是,比如~ /.bashrc,(~ /.bash_profile、~ / . zshrc。如果您以其他方式设置Appium环境变量,则需要创建这些默认的init脚本中的一个,并将环境变量设置在那里,以便Appium Desktop能够成功地将它们提取出来。

关于在只读文件系统上的警告

这可能意味着您试图从下载的磁盘映像中启动Appium Desktop(.dmg文件)。这不是运行Appium Desktop的支持模式。要正确安装Appium Desktop,将应用程序从磁盘映像复制到您的本地文件系统,到类似/应用程序。然后,从新的位置运行应用程序。

文章来自github:github.com/appium/appium-desktop

推荐阅读更多精彩内容