#17 楼 @weamylady 好 我也想了解下他的技术细节 看看是不是有改造的空间
什么原理?
这个代码不太符合规范. 函数就像你要你测试的功能一样, 没有输入都硬编码岂不是很伤.
如何找, 找什么, 需要体现在函数和参数中.
#15 楼 @weamylady 国外最近几年流行 in-app 技术 功能 性能 安全 监控 运营都以 sdk 的方式来做 这也是未来主流 结合运行时插桩技术 也可以做到非常的易用 appium 的确有点重 有点慢 不过使用 selendroid 模式 应该会好些 两套工具感觉都不错 录制器 appium 也有 不过不够好 我有时间也好好研究下 monkeytalk 看
#12 楼 @weamylady 目前国内的云平台都只是简单的支持上传测试 apk 所以还是首推 robotium 如果你需要自己维护较多的设备做兼容性测试 那 appium selendroid 可以考虑 selendroid 资料更少 appium 封装了 selendriod 所以可以看看 appium appium+robotium 基本可以满足所有需求
总体来说, 我看好插桩的框架. monkeytalk 算是做的很好的自动化框架之一. 是个成熟的商业化产品 .国外的云平台也有支持 monkeytalk 脚本的.
基于插码的框架不一定都需要开发者配合, 有一些技术手段是可以绕过的. 所以也可以做到无植入.好像 monkeytalk 在专业版中也已经提供了这个功能.
插码的好处是很多的. 比如可以获得更多的数据和更高 level 的行为录制. 将来插码的框架会大行其道的.
基于外层黑盒的测试框架, 比如 uiautomator 之类的, 使用的场景是非常受限的.
目前 appium 的 github star 数是一千多, selendroid 是一百多, monkeytalk 代码藏的很深,得不到详细的数据. 不过他的生态倒是很丰富. 这家公司做的应该也会比 robotium 更深入. 我目前对他们了解的还不多.
appium 的缺点也很多, 第一个是 nodejs 开发的, 而且扩展机制没做起来.导致扩展起来需要较多的工作量. 第二个是他的测试用例, 已经不再跨平台. 不像老版本那样提供抽象封装了. 当然我们自己可以在上层再封装.
我更看好 selendroid 框架. 遵循标准协议, 开源, 而且有固定的公司维护. 只是他们的维护力量赶不上 saucelabs 和 cloudmonkey. 生态太弱.
MonkeyTalk 对比 Appium
1,MonkeyTalk 支持录制功能 (Appium 目前在 Android 上没有录制工具),而且录制更能更加强大而简单。
目前还没一个好用的录制工具. 是真的, 我挺看重录制器的, 不过没有一个做好的.
一个好的工具是不应该把代码,编译等环节暴露出来的.
2,MonkeyTalk 的执行速度比 Appium 快 5 倍以上 (亲测执行速度快的飞起!)。
这个的确是的, 它的速度应该是介于 robotium 和 appium 之间. appium 的定位方法较慢. 尤其是是 uiautomator 模式.
3,MonkeyTalk 编码简单,代码更加简单易懂(更类似与 Robotium 的风格)。
这个肯定没有 selenium 的 webdriver 标准 api 更清晰. 已经成为行业标准了
4,MonkeyTalk 不需要另外搭建 Server,脚本直接与 Device 上的 Agent 通信。
其实 appium, selendroid 都是可以和 agent 通讯的. 他们选择了做一个 server 是基于架构考虑.
尤其是当在很多设备上并行执行测试的时候. 屏蔽具体的设备, 提供集群管理还是很有用的.
绕过 appium 的 server, 直接跟 agent 通讯也是可以的
设备上运行的逻辑不宜太重. 不然会影响设备性能.
理想的架构是一个 server 管理所有设备, 这样每个设备上的一些通用逻辑就不需要在不同的平台上重复实现了.
5,MonkeyTalk 自带有日志输出功能,可自动生成 xml 报告,Appium 没有此功能。
appium 使用 xunit 框架, 也照样有日志输出功能. 不知道 monkeytalk 的内容有哪些. 这方面没经验.
appium 自身的 xunit 可以基本使用. appium+robotframework 提供的报告也很强大.
至于关键词驱动, 报表之类的,其实都是外层封装, 这个实用但是只要遵循标准的框架协议, 基本都可以做到不错效果的. 比如 appium+RobotFramework 的报表. 或者其他的基于 xunit 的一些 jenkins 图表扩展.
monkeytalk 是个商业产品,这方面应该也做了不少的定制.
总体建议是, 如果是个商业性的不差钱大公司, 自身的技术力量薄弱, 可以适当考虑 monkeytalk 这种商业级别的产品.
有品位的公司
赞。 多贡献这些小而美的文章把
你把代码格式化下。 适用 markdown 语法
#15 楼 @daisydaiyan 我之前取消分享了。因为太旧。囧
#42 楼 @fantasy5074 我们鼓励分享和交流。有收获可以多 show 下。希望每个人可以迅速的成长起来。 因为我最近工作忙, 所以每个问问题的人, 我都要让他们发帖到论坛。 一个是为了活跃论坛, 再一个也希望帖子的讨论可以为将来别人提供很好的参考。
#40 楼 @fantasy5074 你可以搜索以前的帖子。 地址我也忘记了。因为当时讲的那个 appium 版本太老了,很多地方不太适用了, 所以我基本不提了。帖子也埋没了。
#37 楼 @fantasy5074 @xiang2743 看我以前写的 ppt 吧, 里面有具体的例子代码。
不错, 论坛上一直缺少输入中文的一个梳理。 大赞。
不用删除文件也可以重签名吧?
搞成自动换行也可以把。 加宽是不是不太美观。
不错, 已经开始用 maven 了, maven 和 gradle 都集成了一些测试约定流程。 目前貌似没多少人熟悉。
直接发 adb 命令不就可以启动其他的 app?
#3 楼 @lihuazhang 我挺看好 selendroid, 这玩意毕竟是 appium 的底层, 将来很多机制需要依赖它改进. 而且他是纯 java ,将来可以做到把整个服务端都嵌入到 app 内部. 而且纯 java 写的, 容易吸引更多人去维护. nodejs 目前维护的人不太多. 代码比较凌乱. 没好的 IDE.