lifecycle 那段,应该是用于通过 ctrl+c 关闭 stf 服务时,能给当前正在运行的每个模块发送关闭操作来实现友好关闭(比如释放资源)的。基本上每个 stf 的模块都有类似的方法。
lifecycle 相关的代码:
...
function Lifecycle() {
this.observers = []
this.ending = false
process.on('SIGINT', this.graceful.bind(this))
process.on('SIGTERM', this.graceful.bind(this))
}
...
Lifecycle.prototype.graceful = function() {
log.info('Winding down for graceful exit')
this.ending = true
var wait = Promise.all(this.observers.map(function(fn) {
return fn()
}))
return wait.then(function() {
process.exit(0)
})
}
偶的错,当时写那篇 docker selenium 文章的时候更多的是关注 selenium 部分,所以没放在 docker 板块。我看到刚刚管理员已经移到 docker 板块了。
做得很深入呀,赞~
zip -r compressed.zip path/to/dir -x *.git*
# 压缩同时不包含 .git 文件夹
zip -r compressed.zip path/to/dir -x \*.git\*
收集覆盖率这种场景经常需要把本次构建的整个文件夹(包括源码和生成的 class 文件)压缩上传服务端。此时 .git 文件夹一般是不需要一起上传的,通过这个命令就可以排除这个文件夹。
PS:一直在用一个很好用的 linux 命令帮助工具:tldr 。现在遇到命令忘了参数怎么写都直接用这个工具来查。tldr 是 too long don't read 的缩写,也非常好记。
话说,你 sonar 里面 oc 用的什么插件?这几天也在调研这个,今天试着部署了一个,结果导致 oc 相关的 key 冲突,server 无法解析 scanner 上传的数据,只能把插件干掉先恢复。。。
jacoco 配套做得很好,而且网上实践文章也多,坑比 iOS 少很多。
分享计划很好~也同意上面同学的观点,有个擂台或者相互交流的方式,能更快地促进双方的提升,顺带也能结识一些朋友。
现在坚持业余保持每天 1 小时左右的自主学习,但因为分得比较散,有些时候偷懒没有写文章 之类的而分享记录下来,后面也得坚持下来。
这个没找到合适的技术方案,jacoco 本身不具备这样的能力。而且覆盖率数据统计上也不好统计。你们现在有做这个?
如果想换框架,建议你先从 iOS 有什么 UI 自动化框架开始调研起。可以 google 下 "iOS 自动化测试框架选型" ,前条搜索结果都值得一读。
你的 embedded.mobileprovision 对应工程的 bundle id 有和你想重签名的 bundle id 一致不?
mobileprovision 中绑定了开发者证书 id 、应用 id 以及 Entitlement 等信息,主要用来检测这几者是否对的上号。如果对不上号,安装时系统会自动检测到。
好赞呀~尤其是平台的界面效果。相比之下感觉我们自己的平台界面 low 爆了。。。
从项目的实践情况来看,到了这个程度基本可以找个项目试点了。我们现在在试点中,发现了以下几个主要问题:
这部分比较细,估计没有文档记录,直接看 appium 相关源码可能更直接。
当你有超过 10 个用例,需要实现诸如报告生成、失败后自动重启应用、失败后自动截图、失败后重跑用例、断言校验结果甚至并行执行用例等等需求时,你就知道为啥需要用类似 unittest 这样的用例执行管理框架了。
很实用的技巧,赞~
不是这个,是你用脚本获取到的 page source ,不是浏览器界面或者 uiautomaterviewer 获取的。
把你 page_source 的输出贴上来?
木有。。。
建议不要随便用 “大神” 这样的称呼,社区里面对这个称呼欢迎度一般。
另外,你第二个截图里面,是先切换了 webview 再查找原生控件的,顺序错了。切换 webview 后只能找到 webview 里面的网页控件,无法找到原生控件了。
至于为何找不到元素,可以先在你查找元素前增加一个输出页面 xml 布局源码的函数查看布局情况(函数印象中是 driver.page_source
,建议你查下 api 文档),确认下是否布局里面就没有你这个元素。
地铁 40 分钟 + 走路 15 分钟
你现在的问题是 adb devices 可以显示设备,但 Provider 无法使用设备。
adb devices 可以显示设备说明你的机器和设备之间的连接是没问题的,provider 无法使用,意味着 provider 无法和手机上的 stf service 连接,所以无法使用(这个 service 用于传图像信息等)。
当 provider 开着的时候,连接手机会自动安装 stf service 这个 android 应用,你可以往这个方向检查下这个应用是不是没有被成功安装。
建议你另外开贴来问吧。把你的完整脚本、执行命令、错误信息、环境信息等都发出来。
现在是没看懂你的报错是什么。。。另外,你的代码里有个很低级的错误,就是 try 和 except 里面都有个 return 。你一 return 不就退出这个函数了么,后面的 click 还怎么执行。。。
可以看下 http://www.techrepublic.com/article/keyboard-shortcuts-in-bash-and-zsh/
试了下,在 mac 命令行 (zsh 或 bash) 下,alt + 方向左键
可以做到按空格来跳光标,即每次都是跳到一个空格符的后一个字符,ssh 连接了远程机器后这种方法也是生效的。
不过不确定 windows 下是否也同样适用。
从日志里只能看出 Coverage.info
这个文件有问题,没有有效的记录。因为不知道这个文件是怎么来的,内容是啥,也无法追查下去。
建议把你详细的部署步骤、操作步骤(包括你觉得和报错有关的所有细节)和出错日志都发出来?
不需要什么额外配置,和你做普通真机调试差不多。
检查下安装 stf service 这个 apk 的时候是不是没有允许安装?