我刚好是最典型的测试屌丝。。。
很实用的工具!
我支持你宣传自己写的工具,但我觉得这个工具离 “强大” 这个词还有一段距离吧。。。
# python
import os
def PATH(app_path):
# 这里是把 lambda 改写成普通函数的写法,lambda 与冒号之间的变量名是参数名,冒号后是函数体,同时也是返回值
# return os.path.abspath(os.path.join(os.path.dirname(__file__), app_path))
# 下面是为了方便了解各个步骤到底在干嘛而写的。
# 获取脚本所在文件夹相对于 working directory 的路径。__file__是脚本相对于 working directory 的路径,所有 python 文件运行时都会有这个属性。
script_folder_path = os.path.dirname(__file__)
print "script_folder_path: {}".format(script_folder_path)
# 把传入的参数和当前脚本相对于 working directory 的路径组合起来,即获取 apk 相对于 working directory 的路径。之所以用 os.path.join 而不是直接插入 “/” 是因为 os.path.join 这种组合方法能根据平台不同自动插入不同的分隔符,即为了跨平台
relative_path_of_app = os.path.join(script_folder_path, app_path)
print "relative_path_of_app: {}".format(relative_path_of_app)
# 把相对路径转化为绝对路径。注意此处传入的相对路径都会被认为是相对于 working directory 的路径!
absolute_path_of_app = os.path.abspath(relative_path_of_app)
print "absolute_path_of_app: {}".format(absolute_path_of_app)
return absolute_path_of_app
if __name__ == "__main__":
PATH("app.apk")
如果直接使用你的那种写法 PATH = lambda p : os.path.abspath(p) 会存在隐患,例如通过 python tmp/script.py 执行你的脚本,那么获取到的 app 路径就会不对了(此时脚本的 working directory——即你在运行 python 命令时所处在的目录——会不同)。
例如上面的脚本,如果使用 python testPath.py 在它所在目录执行,会输出:
script_folder_path:
relative_path_of_app: app.apk
absolute_path_of_app: /Users/hengjiechen/Develop/tmp/app.apk
如果移到它的父级目录执行(假设它在 tmp 目录下)python tmp/testPath.py,则会输出:
script_folder_path: tmp
relative_path_of_app: tmp/app.apk
absolute_path_of_app: /Users/hengjiechen/Develop/tmp/app.apk
此时如果 PATH 是 lambda p : os.path.abspath(p),那么它的返回值会变成:
/Users/hengjiechen/Develop/app.apk
tmp 这个文件夹会不见了(因为你在这里的 "app.apk" 相对路径是相对你执行 python 时所在的路径)
感谢分享,看来 corsswalk 用的地方还真不少。
另外,发现两处拼写错误:
可以在其 gitgub 网站
需要下载 android SKD:
挺有用的文章,说明了用 AppiumForWindows 也能做 CI,这样大家就不用总是卡在用 node 安装 appium 时的各种网络、编译问题了。
这标题好霸气~~
#2 楼 @mads 额,我指的不仅仅是超链接。。。
发帖的话考虑一下你的帖子是给大家看的,不要写得像随笔那样。
参考一下 浅谈 iOS 版本号 ,有层级的排版读起来舒服很多。
学到好东西了。
排版麻烦调整一下,超链接明显有问题。
我想先问一下,你有把 logcat 的 log 都读一遍吗?
既然提到了 CPU,你要提供一下你的模拟器信息啊,至少说明一下你的真机和模拟器使用什么 CPU 吧。
另外,不要只关注自己觉得有问题的地方(例如第七点,这个问题和是否有源码关系不大,不过有源码可以针对不同 cpu 再编译一次而已。有些 apk 在 x86 和 ARM 上都能跑,有些不能),提供信息的时候尽可能从客观的角度提供所有能获取的信息。
这篇文章很眼熟。。。
据我所知,现在不少主流浏览器都是基于 WebKit 内核做的,如新版的 opera ,文中的 crosswalk(某个角度来说它也算浏览器)。所以他们都会提供自己在 chromedriver 基础上进行更改来适配自己的浏览器的 webdriver 。只是 crosswalk 的 webdriver 有点坑爹,只提供了 linux 的预编译版本(而且我在 docker 中用 ubuntu:14.04 跑还会说需要某些动态库),其他平台需要自己编译。
crosswalk 是界面都用 html 实现(区别于既有原生界面,又有 webview 界面的 hybrid)的 android app 的利器(否则 4.4 以下的界面适配和调试会死人的),用 cordova/phonegap 来做产品的不少都会用它。
之前做过一下使用 cordova/phonegap 的应用,晚些我也搬运一些这方面的文章介绍一下。
#11 楼 @chenhong9991 是的,我有 android wear 。
现在更新到 6.2,目前不会闪退了。
学软件测试同时也要学一些开发的吧。
他自己学一下简单的开发就可以搞个有 bug 的网站啦。
#25 楼 @cpfeng0124 期待你的分享!
#16 楼 @cpfeng0124 大致思路:
在 dump 出来的 xml 文件中使用生成的 xpath 来查找节点,如果找到不止一个节点,就加上更多属性匹配条件(同样按照 text->content-desc->index,例如 android.view.view[@text="a" and @content-desc="b" and @index="1"])。如果都加上后还是不止一个元素,直接给个绝对路径吧。
可以录制脚本这个太赞了!能分享一下思路不?