#2 楼 @284772894 soga。
中大,你也是广州的?
#7 楼 @seveniruby 原来如此。。。怪不得我今天上 Q 看到恒温说拉我进一个群了,但没找到我进了哪个群。。。
你能再拉我一次不?我刚加你了。
#3 楼 @tobecrazy 哦?从 eclipse 关联 testlink case?能否详说一下是怎么关联?是只有测试结果有关联还是怎样?
#4 楼 @happystone 截图和录视频这个可以看下 stf 的 minicap ,doctorq 之前写过一个帖子:STF 框架之 minicap 工具
对于 xpath 的慢,我目前查看源码后理解的原因是这样的:
至于前面 @among29 提到的 page_source 的坑,不知和我们遇到的是否一样?我们遇到的是用例不稳定,is_display 方法和 click 方法有一定概率失效,结果发现失效原因是 appium 在 find 的时候缓存的对象已经失效(我们项目中是对应的 app 元素已经被 remove+add 过,内存地址都已经改了),但调用这个对象的方法也不会出错(没有任何异常抛出,只是一直 click 会报错,而 is_display 一直返回 False )。标志是获取这个元素的坐标 (el.position) 出来的值很不正常,会有一个带有 e32 的无穷大值。
现在我们通过改造 appium 对应模块的方法解决,主要改了两处:
在内部缓存中不仅存储元素对象,还存储元素查找方法。一旦对象无效(如 name 属性为 null)就执行查找方法再次查找,如果找不到(UIAElementNil),就抛 StaleElementReference 异常。对应代码:https://github.com/appium/appium-uiauto/compare/master...chenhengjie123:element-cache-fix
增加一个 onlyVisible 属性,在 xpath 查找和 byId,byName 查找中跳过不可见元素(ByUIAutomation 暂时还没做,还在构想要怎么做中),一个是提高查找效率(遍历的元素数量少了),另一个是更好地实现 android 和 iOS 脚本复用(iOS 上有些隐藏元素和可见元素有一样的 id 和 name )。对应代码(还在调试中):https://github.com/appium/appium-uiauto/compare/master...chenhengjie123:hide-invisible-elements
由于修改的不是 appium 核心代码,所以只需要用这个修改后的替代原来的 appium-uiauto 就可以了。
抱着女朋友睡觉。。。羡慕死了。。。
最优秀的技能不是你编程能力有多强,而是分析->定位->解决问题的能力
严重同意。没有最后的解决问题能力真的会大打折扣。
话说我桌面也是两台电脑,如果加上 server 就更多了。不过相比断点,我更喜欢在用例里加入 debug log 。
话说你们也是改造 testlink 来编写测试用例?编写效率如何?有机会交流一下。
Good Job!填的好!
#4 楼 @face_south 思寒可是大神级人物啊!
#2 楼 @seveniruby 我晚些估计也要搞接口这些,到时候能问下你不?
第五赞!赞赞赞!
好棒的一天。有孩子就是不一样。
Q 你可以晒全家福啊,比他们俩多一个,哈哈。
赞!说的十分透彻。理念方面的东西要说清楚、说全面相当不容易。
PS:有个小建议:
接口中的所有方法都是 Public 的,但对于抽象类的声明并没有这样的规则,当然不能是 Private 。为什么不能 Private?因为一个抽象方法需要在子类中实现,但 Private 无法访问子类,因此不抽象类不可能存在 Private 属性。
这句翻译读起来怪怪的。去看了原文后发现有些地方翻译不是很合适:
All methods in the interface are public, but there is no such rule for those declared in abstract classes. Those ones can have any visibility except private. Why not private? Because an abstract method needs to be implemented in subclass and private is not accessible from subclass. As you can see, those two ideas are mutually exclusive.
大致意思是抽象类不需要像接口那样都是 Public 的。它们可以是 Private 外的任何可访问权限。为啥不能是 Private ,因为抽象类需要在子类中实现,而 Private 是不能被子类访问的。因此,Private 与抽象类的用法是互斥的。
译文中的 因此不抽象类不可能存在 Private 属性 这里第一个 “不” 字应该是写多了。
没有这些琐碎的过程,永远不能到达精彩的彼岸
说得好!
#2 楼 @cydtest 这个 swipe 无效是模拟器的问题。真机没有这个问题的。 mobile: scroll 就是针对这个问题的 work around。
详看:https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/touch-actions.md#bugs-and-workarounds
不错的一天,很有条理。
Hi,我们建立了一个 wiki 作为近期 MonkeyTalk 文章的合集:
https://testerhome.com/wiki/monkeytalk
能否在更新文章的同时更新一下这个合集,并把这个合集的地址附在文章开头,方便大家查看和浏览?
谢谢!