如何使用UIAutomation进行iOS 自动化测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用UIAutomation进行iOS 自动化测试相关的知识,希望对你有一定的参考价值。

参考技术A   1.使用mac进行开发经验那么直接xcode的软件,导入已开发的源码,然后打开软件中菜单的product。

  2.在弹出一个下拉的菜单中进行选择profile,可进入下一个选项。

  3.在弹出中进行ios虚拟模拟器中进行ALL,这样才会显示全部的选项。

  4.在然后进行选择Automation,由于每个版本位置不一致,可以在选项框进行查找Automation后,进行点击next。

  5.那么Automation的ios自动化项目创建成功了,那么下一步是进行编写脚本。

  6.进行创建ios脚本编写,进行点击Add,然后弹出的进行选择create的选项。

  7.即可在编辑框中进行写入自动化的脚本,如果不熟悉脚本编写,可以进行录制方法,来进行录制脚本,然后进行回放脚本。

如何检查 iOS gui 自动化中的元素属性?

【中文标题】如何检查 iOS gui 自动化中的元素属性?【英文标题】:How to check element properties in iOS gui automation? 【发布时间】:2011-06-28 09:28:19 【问题描述】:

我见过的所有 UI 自动化 examples 都使用标准组件,其状态可以通过 JavaScript API 使用 value() 方法进行检查。这有点限制。假设您要检查颜色或 alpha 值等等。

如何检查视图的属性?

一个例子:点击某个元素应该使其“被选中”。我想点击它,然后验证 isSelected 是否为 TRUE。

更新:

我发现withPredicate() 方法理论上应该这样做,但它似乎只在name 属性上触发:

element.withPredicate("isSelected == YES")          // always fails
element.withPredicate("name matches 'my element'")  // works

【问题讨论】:

【参考方案1】:

我最终采用了适合我的目的的方法:

让 UIView.accessibilityValue 返回一个带有相关属性的 JSON 字符串:

- (NSString *)accessibilityValue

    return [NSString stringWithFormat:
            @"'alpha':%f, 'isSelected':%@", 
            self.alpha, self.isSelected ? @"true" : @"false"];

然后在测试代码中使用 eval() 并检查这些属性。 value() 是调用accessibilityValue 的简写:

var props = eval("(" + element.value() + ")");

if (props.isSelected) 
    UIALogger.logFail("Should not be selected");


UIATarget.localTarget().tap("x":471, "y":337);

var props = eval("(" + element.value() + ")");

if (!props.isSelected) 
    UIALogger.logFail("Should be selected");

【讨论】:

以上是关于如何使用UIAutomation进行iOS 自动化测试的主要内容,如果未能解决你的问题,请参考以下文章

如何使用UIAutomation进行iOS 自动化测试

如何在 iPhone 模拟器中工作的 UIAutomation 中获取 captureScreenWithName?

iOS 的 Javascript UIAutomation 如何用于导航原生应用的 oAuth 流程?

IOS中的UIAutomation错误

即使在应用退出后,如何使用 UIAutomation 工具继续测试 iOS 应用?

使用 UIAutomation javascript 进行地图视图测试