# NoSmoke 2.0 Cookbook
NoSmoke 是一款基于source-XML-tree/OCR 为基础的多端UI自动化测试框架,服务于持续集成环境中的冒烟测试 并尊从Webdriver 标准. 本文档介绍NoSmoke 2.0 的使用方式.
# 1. NoSmoke 的优势:
NoSmoke 提供一下能力:
✅ 以最轻便的配置能力以及最简化的脚本执行自动化UI测试.
✅ 基于深度遍历算法精确定位测试UI元素, 提供高于猴子测试的测试精度.
✅ 支持多端运行: iOS, Android!! :]
✅ 测试结果可视化 Macaca-Reporter.
# 2. 工作原理介绍
# 自 NoSmoke 1.0
从 NoSmoke 1.0 起, 爬虫程序通过客户端本地SDK驱动,获取UI source tree 信息,并识别操作点.
# 自 NoSmoke 2.0
从 NoSmoke 2.0 起, 爬虫程序通过OCR 扫描客户端App 窗口图片对可操作点进行分析,规避了大量的xml 计算成本,从而提升效率.
# 版本差异一览:
指标 | 版本 1.0 | 版本 2.0 |
---|---|---|
支持平台 | Android iOS Web | Android iOS |
可配置项 | 14 配置 | 4 项简化配置 |
拦截钩子 | 5 个 | 1 个并简化 |
钩子实现 | 无API,需要用户实现restful 指令 | 封装API 提供点击/输入/拖拽能力 |
迭代长度 | 12 秒/轮 | 5 秒/轮 |
稳定评分 | 0.6 | 0.95 |
模块依赖 | Macaca Drivers | Macaca/Appium Drivers (基础层可选) |
# 3. 功能表
# a. 多端
NoSmoke 支持多端UI测试: iOS, Android, 爬行记录通过macaca-reporter 进行展示.
# b. 可配置
参考以下配置文件. 可选择对应的iOS/android OS 类型,安装包/packageId/bundleId 以及该次执行时的其他配置信息.
desiredCapabilities:
platformName: 'iOS/Android'
deviceName: '${name-of-the-device}' // for android run `adb devices`, for iOS simulator run `xcrun simctl list`
app: '${downloadable address of .ipa/.apk file}'
And the corresponding configuration for crawling the app:
crawlingConfig:
strategy: 'ocr'
platform: '${platform: android/ios}'
triggers:
- '${prioritised trigger point}'
exclude:
- '${exclude text patten}'
# c. 钩子
NoSmoke 2.0 减少了钩子的数量,从而进一步降低了接入以及理解成本. 在每一次动作执行后,以下钩子接口会触发,用户可检查当前执行的动作信息,并决定是否进行干预.
/**
* Method to perform action for the current platform, invoked when the action is going to perform
* @Params: action the action which belongs to current active node, user can determine the priority of action execution
* @Params: crawler the crawler instance which contains the context information as well as crawler config
* */
Hooks.prototype.onActionPerformed = async function(action, crawler) {
// password input
if (action.name == "Enter your MPIN") {
// here hook provides API for click/type/drag.
await this.click({'method':'xpath', 'xpath':'${xpath of element}'});
await this.type({'method':'xpath', 'xpath':'${xpath of element}', 'value': '2580'});
}
};
阅读后续篇章以便了解 如何快速开始 以及各个平台的配置方法 并且懂得如何进一步通过勾子进行定制.
# 案例展示
NoSmoke OCR 执行案例
App | 平台 | 设备类型 | 报告 | 配置链接 |
---|---|---|---|---|
Macaca Demo | iOS | Simulator | 链接 | 配置 指令 |
Macaca Demo | Android | Simulator | 链接 | 配置 指令 |
Dash-iOS | iOS | Simulator | 链接 | 配置 指令 |
YouDao-Dict | Android | Device | 链接 | 配置 指令 |
# License
The MIT License (MIT)