这种话题最好是用抛砖引玉的形式开展,这块砖感觉分量不是很够,能否补充一下你目前对于测试用例相关的一些具体的感想或者想法,或者一些好的成功案例?
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 在做维护,苹果新版本跟进速度应该不会太慢。
#2 楼 @sixleaves 对。严格的说是 XCUITest 相关的 API 。因为这个 API 可以控制任意界面(包括非这个项目的界面),所以就可以控制你的被测应用界面咯
第一,我觉得你需要转变一下思维方式,自动化测试中要求每个用例都是独立的,和手工测试的各个用例之间还能有耦合度不一样。这是前提。
第二,怎么把原来手工测试中具有耦合度的用例在自动化测试中解耦执行,其实不难。你转换一下,把原来手工的一个用例看成是自动化中的一个类。自动化用例就是这些类里面的操作的组合。
第三,至于怎么做 teardown ,我举个简单例子吧。例如 1s = 1 的 setup 中执行的内容,1t = 1 的 teardown 中执行的内容,那么执行 b(包含 12)这个用例时,实际执行顺序可以调整成 bs(即 1s)->1->2->bt(即 1t->2t) 。至于 1t 或者 2t 写什么,你就看你具体需要咯。
#1 楼 @dengwei729 目前可以在标题加个【提问】前缀表明是提问。
你能说下你在被测试设备上看到的执行情况是怎样不?
PS:代码块的 Markdown 写错了,那个不是单引号,是键盘上 tab 和 1 夹着的那个键。