#2 楼 @yaming116 我看了下目前 testerhome android app 的源码,里面貌似没有这个问题。
它的 node 类是这么设计的:https://github.com/testerhome/A-Native-TesterHome/blob/47e6a8c5e881b4e71d815ad29df78f0db519e467/app/src/main/java/com/testerhome/nativeandroid/models/GetNodesResponse.java ,node 这个节点通过转换会变成类里面一个名为 node 的实例变量,node 本身是 ArrayList ,这样就不需要多写一个类了。
没懂为什么去掉 nodes 这个节点后 javabean 设计起来就能降低重复。能举个具体例子不?
另外,这个不是 OAuth 接口的内容把,OAuch 只有登录时用到,拿到 access token 后就没它啥事了。
你本地执行过吗?你提供信息只能看出是执行到
//Click hamburger menu
wd.findElement(By.xpath("//android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.FrameLayout[1]/android.support.v4.widget.DrawerLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.view.View[1]/android.widget.ImageButton[1]")).click();
的时候找不到对应元素,但具体什么原因需要获取到出错截图、出错时界面的元素控件树情况才能定位。
另外,不推荐直接用录制的脚本来做自动化测试,这种录制出来的 xpath 定位要求太高,可读性也很差,以后维护起来会很累。
外部浏览器是指第三方的浏览器或者系统自带的浏览器?如果是,那么这些浏览器不是可以直接看到 url 吗?
如果你想问的是如何在 UI 自动化用例中获取到网页的 url ,可以尝试截取系统的 intent 进行分析,或者直接在程序中添加相关的日志信息。
这种话题最好是用抛砖引玉的形式开展,这块砖感觉分量不是很够,能否补充一下你目前对于测试用例相关的一些具体的感想或者想法,或者一些好的成功案例?
idevicesyslog
看能否捕获到你的系统日志?markdown 的标题 # 号和文字之间有一个空格。没有空格的就不会识别为标题。详细的语法麻烦参考我们的 排版说明
学会如何合理提问,请阅读:https://testerhome.com/topics/587
这个问题描述太简洁了,请像提 bug 那样专业地提问。
内容不错,很实用。只是标题的 markdown 挂了。麻烦修复下吧。
把详细的错误信息(错误 stack trace 信息)贴上来。现在的错误信息太少了,没看出哪里出错。
另外,你是怎么用 maven 做得打包也说下吧,如果整个项目可以公开的话建议直接放到 github 上,并说明下你是用什么命令运行项目的,这样方便重现你说的问题。
PS:不要把录制的脚本看得太重,录制的脚本大多不能直接就作为你日常使用的测试用例,需要后续做一些优化的。
#5 楼 @Testersiwang webview 实际用的是 selenium。selenium 对于 isDisplayed 的定义和原生界面的不一样,貌似只要通过滑动能出现的元素 isDisplayed 都不会是 false ,只有隐藏元素(比如设置了 display: none 样式)的才会返回 false 。不过我也不是很确定,建议你去查一下。
不错,这是个很实用的工具。感谢分享~
PS:部分 markdown 格式有问题,麻烦更正下吧。
可惜手上没有 8.3 设备。。。
info: [debug] executing cmd: E:\android\android-sdk-windows\platform-tools\adb.exe -s 051605559b261e02 shell "am start -S -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -f 0x10200000 -n com.smartcity/com.smartcity.activity.NewVersionMainActivity"
error: Permission to start activity denied.
应该是你的这个 activity 没有添加外部启动的权限。解决方法确实是修改 AndroidManifest.xml 文件。
不知道 AndroidManifest.xml 文件是什么,怎么修改的话建议自行百度或者 google 一下吧。这是安卓应用测试工程师的应该了解的知识。
PS:记得先确认下你的这个 activity 是不是真的是启动时使用的 activity 哦。正常来说一个启动时使用的 activity 不应该会无法被外部启动的。
#2 楼 @Testersiwang 额,这次就改吧,不要等以后。
看了下官方 release note ,自己也试了一下,确实 Xcode 8 开始就没有 UIAutomation 可用了,所以只剩下 WDA 一条路了。
关键日志:
info: [debug] [BOOTSTRAP] [error] Error processing data to/from socket (java.net.SocketException: recvfrom failed: ECONNRESET (Connection reset by peer))
UIAutomator 的脚本无法接收从 appium server 发出的命令。
#87 楼 @moxiaozhou 你可以看下这个参数:
-n run_count How many times monkeys run(default: 1)
这样无论 monkey 是由于 crash 退出还是别的原因,都可以重复执行直到达到你指定的次数。
#4 楼 @sixleaves 问题在于苹果已经不打算再维护 UIAutomation 了,所以相比之下 XCUITest 相对靠谱一些。而且既然有 facebook 在做维护,苹果新版本跟进速度应该不会太慢。