2 分•作者: alhasaniq•3 个月前
返回首页
最新
1 分•作者: dewey-decibel•3 个月前
1 分•作者: klauspost•3 个月前
1 分•作者: Looky1173•3 个月前
4 分•作者: ch-bas•3 个月前
1 分•作者: L3dge•3 个月前
1 分•作者: 8by3•3 个月前
1 分•作者: tai2•3 个月前
您好,我创建了一个名为 `aco` 的命令行工具,旨在帮助快速启动 Appium 会话。
我是一名程序员,多年来一直从事端到端测试的移动应用自动化工作。Appium 是该领域的行业标准。它本质上是一个 WebDriver 协议服务器,专门用于 iOS/Android 等非浏览器应用。Appium 的优点在于其客户端/服务器架构能够清晰地分离职责。因此,用户在使用时可以选择自己喜欢的任何语言绑定。这意味着您通常需要同时关注服务器和客户端,而这正是痛点所在。
作为一名移动自动化工程师,我经常需要进行小型实验,以确保 AUT(被测应用)或 Appium 本身的行为:从复杂屏幕获取页面源代码需要多长时间,ScrollView 需要滚动多少才能达到特定的滑动量,当发送的文本丢失一些字符时屏幕后面发生了什么,等等。当需要进行这些实验时,我通常会编写一个小脚本来向服务器发送命令,启动一个 Appium 服务器,运行脚本,然后观察结果。这并不难,但有点麻烦,因为我需要回忆需要提供给服务器的参数,并进行配置才能看到实际的交互。
`aco` 使这一切变得非常简洁。您只需从命令行指定您的应用文件和平台。就是这样。核心思想是将服务器启动和会话初始化打包到一个命令中。另一点是 `aco` 被设计为有状态的。会话存储在磁盘上并被隐式拾取,因此您在使用时无需担心它。
```bash
$ aco session start --platform ios --app ./your_aut.app.zip --detach
{"sessionId":"0134d269-eb58-4569-97d0-446c5e808fd4","serverUrl":"http://127.0.0.1:4723","platform":"ios","pid":21762}
session detached -- pid 21740, stop with `aco session stop`
$ aco elements
#0 XCUIElementTypeApplication "Some label"
selector: accessibility id:Some label
rect: 0,0 402x874
......
#58 XCUIElementTypeStaticText "Other label"
selector: accessibility id:Other label
rect: 172,630 57x19
$ aco tap --selector 'accessibility id:Other label'
ok
```
我试图将所有 Appium 功能(包括 iOS/Android 特定扩展)映射到命令行界面。此外,我还添加了一些实用功能,例如 `aco element`,它可以列出所有可访问的元素,并提供现成的选择器。我将非常感谢您的 bug 报告或反馈。谢谢!
1 分•作者: bifftastic•3 个月前
1 分•作者: t-3•3 个月前
2 分•作者: fishbone•3 个月前
1 分•作者: loughnane•3 个月前
1 分•作者: jabernal•3 个月前
1 分•作者: zaikunzhang•3 个月前
1 分•作者: richartruddie•3 个月前
20 分•作者: surprisetalk•3 个月前
15 分•作者: momentmaker•3 个月前
1 分•作者: inigoerana•3 个月前
1 分•作者: agnosticmantis•3 个月前
1 分•作者: pwheslop•3 个月前