好快! 必须赞!
受教了。能坚持 8 年不容易。
我们 testerhome 的微信公众号后面想增加心路历程这类文章,分享一下各位测试人的一些历程和感受。你有兴趣后面继续分享你的历程,然后我们分享到微信公众号中让更多人参考吗?
这和 appium 有什么关系……这是 python 的 unittest 模块的事。。。
找到一个解决方法:http://stackoverflow.com/questions/5387299/python-unittest-testcase-execution-order
最好还是自己写个方法来设置执行顺序。因为 unittest 设计的时候是假设你的用例顺序无关的,上面的解决方法相当于找窍门(毕竟它不是乱序的)。单元测试大部分都是顺序无关的。
#8 楼 @wangcityboy Oh,软件冲突这个确实比较麻烦。
有可能是 ifuse 的依赖库和 fruitstrap 有什么冲突。。。
#6 楼 @wangcityboy 这就奇怪了,我目前没遇见过。
你指定device_id
能装上吗(fruitstrap -b <app> [device_id]
)
实在不行用ios-deploy来装吧。
#4 楼 @wangcityboy 你的 udid 是什么?你用xcodebuild -showsdks
看看输出结果里有没有你插上的设备?
#8 楼 @test20150331 show me your code.
google 了一下,找到如下可能的解决方案:
http://stackoverflow.com/questions/15492406/getting-protocol-failure-error-while-installing-apk-using-adb-command-in-android
http://stackoverflow.com/questions/16554627/adb-protocol-failure-using-install-and-push
你都试试吧。
下次发询问帖麻烦说一下自己曾经找过什么解决方案,尝试后结果如何,以及自己的一些分析。
否则我只能根据 log 搬运 google 结果。。。因为我除了你给的 log 什么都不知道。。。
#4 楼 @test20150331 一个脚本运行在两个设备?就是第一步操作 A 设备,然后第二步操作 B 设备吗?
你开两个 appium:
> appium -p 4723 -bp 2251
> appium -p 4724 -bp 2252
然后在脚本里建立两个 session,appium 的服务器地址分别是localhost:4723
和localhost:4724
,并在 caps 里分别指定两个设备的 udid(否则默认都会用第一个设备)。然后你就可以通过两个 session 分别控制两个设备了。
appium 内部通过某个特殊命令来启动 bootstrap 的(一般在不使用 selendroid 且 session 建立完成的时候启动 bootstrap),里面会有特殊参数告诉 bootstrap 使用哪个端口,你直接用runtest
没有把这个设定端口的参数传给 bootstrap,所以还是用默认端口
#6 楼 @cpfeng0124 好,我也学到新东西了。
麻烦改一下帖子标题和内容,让后面的人能快速知道解决方法。
麻烦附上服务器 log。
你转换 context 后再试试?
你后面是用 runtest 运行的……
-bp 2251
是从 appium server 传到 bootstrap 的啊,你不用 appium server,单独启动 bootstrap 当然用默认端口啦
#2 楼 @lihuazhang 好郁闷为啥 shell 的 dump 能含有 webview 元素,bootstrap 的 dump 却没有…………看来后面要探究一下两者到底有什么不同了。
#48 楼 @james88233 最近没在做。
logcat 如果程序没出错基本不需要看,但出错了你就必须看了。你可以改一下 logcat 的 level,让它不要所有 log 都输出来就好了。
fetch failed == 获取失败。检查网络或者换个 npmrc
#7 楼 @shootingstar Activity 里面有空格!?好吧,刚刚再看了一下 log,发现确实有空格:
"appActivity":".home.CtripSplashActivity ",
看样子我还不够仔细。。。学习了。
麻烦把解决方案放到帖子内容中,并把帖子标题改为已解决,方便后面其他遇到相同错误的人。
检查一下 ANDROID_HOME 这个环境变量。新手常见错误,多加了分号(分号是不同路径间间隔用的,你只有一个路径不需要用分号间隔)
#2 楼 @seveniruby 好办法!
log 等级和 log 记录到哪个文件都是可以配置的。命令行关于 log 的参数配置:
-g LOG, --log LOG Also send log output to this file
--log-level {info,info:debug,info:info,info:warn,info:error,warn,warn:debug,warn:info,warn:warn,warn:error,error,error:debug,error:info,error:warn,error:error,debug,debug:debug,debug:info,debug:warn,debug:error}
log level; default (console[:file]): debug[:debug]
--log-timestamp Show timestamps in console output
--log-no-colors Don't use colors in console output
--show-sim-log (IOS-only) if set, the iOS simulator log will be
written to the console
--show-ios-log (IOS-only) if set, the iOS system log will be written
to the console
--debug-log-spacing Add exaggerated spacing in logs to help with visual
inspection
用图形化界面的看看各个设置页面,里面有的。
#17 楼 @mildshark 不客气,其实我没帮到多少……
mark 下解决方案了,下次如果我要用就试试把 wait 设成 500。
#5 楼 @careysucci 那我就不大清楚了。根据你的 log 只能帮到这里了,不知道其他具体情况也很难准确定位。
建议你去 google/stackoverflow 看一下吧。百度在这些方面搜不出什么有价值的东西。
#4 楼 @cissysnail crash 和 anr 产生原因都来自于应用代码本身。crash 有可能是出现了某个非未处理的异常,anr 是某个部分占用 ui 线程太久了或性能有问题。
别只看 monkey 的 log,logcat 的 log 才能帮你定位到具体代码。必要时甚至需要 trace。