如何为Android自动化设置Appium环境?

Man*_*ani 17 appium

我在测试中作为SD工作.我是Appium Automation工具的新手,这个工具非常难为我设置环境.

我提到以下链接:: http://unmesh.me/category/appium/

这个链接帮助我通过命令行安装Node.js和appium.但我不确定这是正确的方法.

我从命令行得到以下消息:

mani-kandans-MacBook-Pro:platform-tools manikandan $ info:欢迎来到Appium v​​0.8.2(REV e9cc66197ad6a3496322bd77a8699509fc761b69)info:Appium REST http接口监听器在0.0.0.0:4723信息上启动 - socket.io已启动

在此之后我不知道.如何编写测试用例并通过Appium运行?

如果您有兴趣分享您对Appium工具的了解.请指导我.

  1. 如何安装Appium?
  2. 如何通过Appium工具运行testcase?

小智 15

第一部分:-.您似乎已使用节点server.js启动了appium服务器 - 您可以通过转到localhost:4723/wd/hub/status浏览器来检查服务器,这将返回服务器的一些详细信息.你已经这样做了.

命令输出将如下所示,确认服务器已启动:

info: Welcome to Appium v0.8.1 (REV ***********************************)
info: Appium REST http interface listener started on 0.0.0.0:4723
       info  - socket.io started
Run Code Online (Sandbox Code Playgroud)

第二部分:-.接下来,您将使用selenium RC for Python,Java或c#或您的语言选择.我使用了c#并且可以提供示例,这应该与您的测试类似.

要将selenium添加到ac#类:using OpenQA.Selenium.Remote; 您将所有数据传递给selenium所需的功能对象.存在一些自定义所需功能,例如:

  • 'app-package'这是应用包名称,例如com.myapp.main,
  • 'app-activity'是要调用的应用程序主要活动,它也将启动应用程序.这通常是一个泼水活动或主要活动,
  • 'wait-activity'是Appium一旦启动就会检查的活动,这将是应用程序活动,但对我来说,如果对于某些测试启动了一个新活动而不是被调用,它是不同的,
  • '版本'采取Android版本,
  • "设备ID"将您连接的设备或AVD带到命令和应用程序,该命令和应用程序将具有您要安装的apk的本地路径.如果已经存在已撤销的应用程序,则会在启动时对其进行签名和安装,它将为您跳过此选项.

        DesiredCapabilities caps = new DesiredCapabilities();
        caps.SetCapability("app-package", "com.myapp.test");
        caps.SetCapability("browserName", "");
        caps.SetCapability("device", "Android");
        caps.SetCapability("app-activity", "com.myapp.SplashActivity");
        caps.SetCapability("takesScreenshot", true);
        caps.SetCapability("version", "4.1.2");
        caps.SetCapability("device ID", "uniquedeviceid");
        caps.SetCapability("app", @"C:\path to\app\on\pc\app.apk");
    
    Run Code Online (Sandbox Code Playgroud)

在您创建的功能之后,创建一个远程Web驱动程序对象,传递您已使用的中心URL http://localhost:4723/wd/hub以及您创建的所需功能.

RemoteWebDriver driver = new RemoteWebDriver(new Uri("http://localhost:4723/wd/hub/"), caps);
Run Code Online (Sandbox Code Playgroud)

此行使用Appium服务器的ip或主机开始侦听请求.对我来说,这个步骤标志安装并启动附加设备上的应用程序,希望这对你也一样.这是您编写的selenium测试连接到Appium服务器的地方.

现在使用创建的driver对象,您可以访问selenium rc命令,其中Appium已经为Android测试实现了许多替代方案.在每个期间,您的Appium服务器控制台窗口应显示是否存在任何问题.

输出将采用颜色编码,以帮助识别此窗口中的故障,但您可以按照自己的方式处理,并在需要时输出到文件.

多个设备的更新 我不确定使用多个设备,我会考虑selenium grid我以前尝试将2个设备添加到一台机器上并且测试有混淆,adb无法区分,无论设备ID是否配置和命令.Appium团队一直在改进为服务器添加网格功能,我建议你看看Appium Grid(链接更新)

我为缺乏网格经验而道歉,以便进一步帮助您.

问候,Brian