不错!图文并茂,学到了不少。
看来 React Native 的调试更接近于传统的前端调试啊,原生控件基本都已经被隐藏了。
#9 楼 @shu 明白了,我的 scrollTo 是 server 封装的,client 只负责发命令,好处是不仅能支持 Android(不过有点问题),还能支持 iOS 。
你的 scrollTo 是 Java-client 自己基于 UIAutomator API 封装的 scrollTo ,是这个 client 特有的方法。
Java 使用 server 封装的 scrollTo 的方法如下:
// java
WebElement element = driver.findElement(By.name("Element Name"));
HashMap<String, String> arguments = new HashMap<String, String>();
arguments.put("element", element.getId());
(JavascriptExecutor)driver.executeScript("mobile: scrollTo", arguments);
不错,写得很详细。
不过真的很容易看晕。。。代码数量比较多,而且大多是代码片段,得结合导入了代码的 IDE 来看效果才好。
wife 是什么网络?
无法联网这个要看下到底是手机连不到服务器还是服务器返回这样的错误信息吧?
写得很详细!赞!
不过源码包导入后不是应该跳到 Solo.java 文件吗?为什么是 Solo.class ?这个不是很明白。
PS:Markdown 的超链接写法是这样的:
[超链接](url)
你文中用错了。
#2 楼 @adfghzhang 不客气。
麻烦添加一下头像吧。
#2 楼 @shu 同问,印象中 scrollTo 传的是 element.id ,不是 text 啊。不过不知道你的 scrollTo 和我们理解的是不是同一个?
我说的是这个:
http://appium.io/slate/en/master/?python#scroll-to
另外,通过 id 查找这个其实局限性更大,因为一般情况下 scrollView 中的元素使用的 resource-id 是一样的。
实际实践中应该是支持多种定位方式(id, text, xpath 等)。
没猜错的话你是拿对应真机的 ipa/app 放到模拟器上跑了。
iOS 模拟器都是 x86,真机都是 arm ,两者编译时使用的参数是不一样的,所以真机能跑的放到模拟器就会无限闪退。
至于 XCode 里面直接点 run 的话它会自动根据你选择的设备使用不同的编译参数现场编译,所以会有用的是同样程序的错觉。
PS:遇到 app 自己闪退方面的问题不要光看 appium server log,此时设备自身的包含应用内部日志的 log 才是能够有效定位问题的。
相当清晰了!赞!
这里的 “全栈测试工程师” 其实就是项目的保姆啊。。。啥都要干还必须是背锅侠。。。
不过开发还根据他的技术栈来安排工作,测试基本是哪里需要测试就去哪里,从服务器后台到接口,再到前端。有些时候全栈就是这样被逼出来的。。。
补充一下添加打赏二维码的步骤:
准备好二维码图片:
上传二维码:
还等什么,赶紧发帖争取精华啊!
Good Job!UIAutomatorViewer 本身的架构确实很方便扩展。
录制那块有个疑问:看你写的是 Appium 的 python 脚本,但没看到具体是哪些代码把每个操作步骤 write 到文件中的。是不是把 writeFile 分别放在了各个点击事件中了?
答案是:
3. els[0].find_element_by_class_name与driver.find_element_by_class_name,实际是一样的效果
两年多,和我差不多啊,我的阅历果然太少了。
好期待!
找到这个:
https://github.com/appium/appium/issues/5107
看起来是 app 自身问题。
你打开 iOS log 看看系统 Log 里面有没有什么特别的 log ?如果有,那估计确实是 app 的问题了,恭喜你找到一个 crash issue 。
#56 楼 @chenhengjie123 Sorry,发了才看到你的回复。此贴就此打住吧。
#24 楼 @anonymous 我客观点回答你的几个问题吧:
为什么测试行业没有一本书或者一系列书去更详细的讲解测试,有的是泛泛而谈,有的是博客里自己的零散的心得。
讲解测试的书是有的,经典书籍也是有的,例如《软件测试》(ISBN: 9787111185260)《软件测试的艺术》(ISBN: 9787111376606)。至于其他公司是怎么做测试的,有《Google 测试之道》(ISBN: 9787115330246),《微软的测试之道》(ISBN: 9787111277538)。只是像你例子里的很具体的工具书籍基本没有。
测试行业是发展好多年了,但移动测试发展也没几年啊(iPhone 2007 年出来,到现在也不过 10 年)。你例子里举的 adb ,monkeyRunner 出来也没多少年,而且他们深度上和应用上与其他工具(如 Java 的 Spring)之间差别太大了,一个是常用的基本工具,看完官方文档基本会用。一个是设计良好的大型框架,会用和用精完全两码事。拿 adb 这些工具和 Java 这门语言,或者 一些经典工具比较不是太恰当。
PS:你想要系统了解同时也造福行业的话,可以自己通过阅读这些零散的心得,然后把它们组织起来,在 gitbook 或者什么地方把它们写成书,造福大家。
3.你怎么知道我不愿意学习?我买书是为了什么?就拿 Appium,我有去看官方文档,有看 API,有在 testerhome 上学习基础,然后就在想有没有一本书可以具体的讲解用在项目里。到网上去找书,买了上面说的三本,然后发现讲 Appium 的就那么点。我并不是没有自理能力,只是想更深入学习。
这类书我想短期内不会有,以后也不一定会很深入地讲。一方面具体用在项目中的东西大多通用性不会十分强,写成书后菜鸟还是没办法按照书中的说明把它用起来的,毕竟不同项目间差异还是不小的;另一方面 Appium 在国内流行也是这 1~2 年的事情,估计还没有什么企业/人敢说自己在项目中的实践强大到可以出书了吧。之前倒是听说淘测试有在用,而且还对 appium 进行了一些改造以符合自己的需要,但具体如何我就不大清楚了。
我有看 Android 官方文档啊,我只是在想学习的方式不一定是只看官方的,我是一个习惯去买书学习的人。请问学习的方式一定要 先源码吗?这么说我又要开始学 Python 了?我一个 java 都只是基础的人又 tmd 开始学 python 了?
我在 IT 技术方面的学习路线一般是:
PS:我也喜欢看纸质书,不过现状是任何纸质书出版时里面的内容至少是半年前的了,在移动测试这个领域半年时间意味着可能只剩下 80% 左右的内容还是可以用起来的了,所以里面还是会有坑的。而且那些 “实战”、“实例” 的书籍本来就不是给初学者看的,初学者看了很容易在流沙上面筑高楼,觉得自己懂得里面的例子就学会这个东西了,结果一上项目傻眼了,这些情况和书里说的不一样啊!
2.其次你一上来就让我看源代码,请问源代码很容易吗?是 1+1=2 吗?你现在是 NBA 职业球员,就以为一个小学生就可以直接去打 NBA 了?Appium 的源码很容易懂吗,Node.js 是一个 java 还在基础阶段的人轻易能学会的?我看你们的商业培训也在从基础讲起,并没有从源码讲起?
源代码确实不那么容易,但 Monkey 的源码没有你想象中那么难,而且 Monkey 源码分析网上是有系列文章的,你可以去看看,辅助理解。至于 Appium 是比较难(编程语言上有 Java,Javascript,并且需要熟知 UIAutomator API,UIAutomation API,Xcode command line tool),但对于只想了解基础的初学者来说 Appium 的文档、sample-code、各个 client 自己的文档以及 webdriver api 的文档加起来足够入门,甚至熟练使用了。精通的话源码是不二之选。
据我所知,学编程的人也是差不多的路线:刚开始通过各种入门书只知道怎么用官方的 library ,然后通过多用和看官方文档熟练掌握,最后学习源码。
最后我想说的时,你说到的一些问题确实是问题,然而单纯把这些问题在一个公众平台上抛出来,并且带有比较强烈的指责态度,你指望能得到怎样的回复呢?换位思考一下,你见到这样的帖子,你会回复什么?另外,这些问题如果不仅仅是抛出来,而是提出后组织大家把这些书籍资料整理出来,造福未来的新人,收到的效果是否会截然不同?
测试行业是需要改变,但是单纯提问题,叹可悲是改变不了行业的。