Appium 自动化测试验证步骤

Appium 自动化测试验证步骤

Memary Guage increase

目的:

​ 为了自动化测试APP,想要高效验证内容

已知:

​ 可用有,PrefDog ,Appium, 且PrefDog 已经有完善的相关自动化脚本

存在问题:

​ 自动化在于教师端,需要操作教师端,客户端用于性能验证,单一的监听

​ 我们要求肯定不能满足于这样,我需要客户端自动操作,用于验证内容。

结论

​ Appium 对于iOS 自动化测试很好用,但是对于我们的Hybrid类型App 似乎不是特别好用。

折腾步骤

  1. 新电脑,安装环境啥的,因为网上有太多的安装教程,这里不想多说。Appium Mac 安装教程

  2. 给设备安装 WebDriverAgent 推荐去Appium 的安装包下面去运行, 具体的方法参考

1
2
cd /Applications/Appium.app/Contents/Resources/app/node_modules/appium/node_modules/appium-WebDriverAgent
# 里面是xcode 工程 打开,先编译库,在编译iOS 工程, 注意签名 最后安装设备 command + u
  1. 打开Appium 客户端,配置如下
1
2
3
4
5
6
7
8
9
10
{
"platformName": "ios",
"platformVersion": "13.6",
"udid": "eac242486bcffe0d9fcc233bce4b5f52ec4df738",
"deviceName": "iPad",
"automationName": "XCUITest",
"bundleId": "com.xxxxxx.xxx",
"xcodeOrgId": "4xxxxZ3",
"xcodeSigningId": "iPhone Developer"
}
Memary Guage increase
  1. 点击 Start Session 前提 Xcode 在运行当前 WebDriverAgent ,然后 Appium 会自动拉起设备上指定的bundleId App

    Memary Guage increase

问题来了,发现App Source 里面没有我们想要的button 之类的,因为没有特殊id 就没办法进行相应自动化。我们的项目是给予Laya Native 的App , 显示区域是JavaScript 调用GLKView进行绘制,所以,抓不到iOS UI 控件应该是正常的。

有没有其他方式

在准备宣布说无法调试Laya JavaScript 的时候,我看到了这个 appium 使用ios_webkit_debug_proxy

感觉我又有了希望,安装步骤依然忽略,安装以后配置appium

1
2
3
4
5
6
7
8
9
10
11
{
"platformName": "ios",
"platformVersion": "13.6",
"udid": "eac242486bcffe0d9fcc233bce4b5f52ec4df738",
"deviceName": "iPad",
"automationName": "XCUITest",
"xcodeOrgId": "4XXXXXX3",
"xcodeSigningId": "iPhone Developer",
"startIWDP": true,
"browserName": "Safari"
}

能够完美拉起 Safari , 也能看到Safari 里面的标签内容,但是不是我们想要的App 内容

Memary Guage increase

相关配置放到Appium 里面是可以直接拉起Safari 的,但是不能拉起我们指定的App

瞅了一下Appium 关于 hybrid App的测试例子,大多数是使用了Webview 技术来profile 相关HTML Context 内容。这个跟我们现有项目不符,验证到此可以结束了。

结论

Appium 确实是一个很优秀的自动化测试框架,可以通过大家熟知的语言进行相关自动化测试,能够非常方便的提高测试的效率,增加测试结果的可靠性。这一切都需要针对正常的iOS或者Android App , 对于 hybrid App 也有非常不错的测试方式,相关测试代码也是非常的简洁。对于正常类型App 测试,强烈推荐。