首先安装 Appium 和 WinAppDriver,具体过程参考微软开源项目:
https://github.com/microsoft/WinAppDriver

上述项目中提供了一些Samples,展示如何用微软的UTest测试。
其中PaintTest是经典Windows程序,但很多代码已经过时了,直接抄过来会提示警告,比如下面这段:

DesiredCapabilities appCapabilities = new DesiredCapabilities();
appCapabilities.SetCapability("app", PaintAppId);
appCapabilities.SetCapability("deviceName", "WindowsPC");
session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), appCapabilities);

Appium Ver 1.15需要这样改:

AppiumOptions opt = new AppiumOptions();
opt.AddAdditionalCapability("app", UnityAppID);
opt.AddAdditionalCapability("deviceName", "WindowsPC");
session = new WindowsDriver<WindowsElement>(new Uri(WindowsApplicationDriverUrl), opt);

不过这不是重点,今天的重点是怎么用 Appium连接到WinAppDriver。
首先直接点击 WinAppDriver.exe ,出现这样的画面,就是正常启动了:

默认配置下,启动的服务器地址是 http://127.0.0.1:4723/ 。如果要改IP、端口、路径,需要在管理员模式下带参数运行 WinAppDriver,类似这样:

WinAppDriver.exe 4727
WinAppDriver.exe 10.0.0.10 4725
WinAppDriver.exe 127.0.0.1 4723/wd/hub

其中最后一条:WinAppDriver.exe 127.0.0.1 4723/wd/hub ,需要单独拿出来说,因为这是Appium默认的连接配置。
按这个参数启动,Appium创建Session时不需要额外的配置,否则还要改Appium的配置。

那么接下来讲讲怎么用 Appium 连接WinAppDriver。
在 WinAppDriver 启动的情况下,运行 Appium:

不要尝试点击“启动服务器”的按钮。4723端口已经被WinAppDriver占掉了。

你要做的是开一个新的会话窗口:

然后你会看到这样一个画面:

如果刚才是带参数启动 WinAppDriver 的,那么这里不需要修改设置;
如果没有带参数,而是以默认方式启动 WinAppDriver,那需要把 远程路径 改为“/”

接下来,要配置 所需功能 下面的三个框。这里也就是配置测试目标程序的地方。
要成功建立会话,这三个框很关键。否则你会发现,不管你怎么配,只会得到两种错误提示:

一种是 HTTP 404,"Could not start session",它的意思是找不到需要测试的目标程序。
这个错误的原因是,WinAppDriver监听的路径和Appium中设置的路径不一致。
通常情况是,WinAppDriver在监听"/",而Appium用了默认路径"/wd/hub/":

但即使改掉了这个问题,还是会遇到另一个错误,HTTP 405 Method Not Allowed
"Bad capabilities. Specify either app or appTopLevelWindow to create a session":

这个问题的原因是,Appium的右下方,也就是JSON Reprresentation那里的配置,根本不符合Windows App的要求。

我们需要配置左边的三个框,或者手动修改这个JSON:

JSON代码是:

{
  "app": "d:\\Tools\\TinyTask.exe",
  "deviceName": "WindowsPC",
  "platformName": "Windows"
}

然后再点击“Start Session”,就能启动待测试的Windows程序了:

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐