#10 楼 @honeybadger 同时运行 5 个 robotframework 。你可以试试。
额, unittest 的官方文档里是有提到 setUpClass() 这些的,而且 unittest 可以用到的方法远不止 setUp,tearDown 这些。
学习 unittest 最快的路还是去把官方文档都看一遍,不求都会用,但至少需要知道有哪些方法可以用,直接实战 +google 的方法是流沙上建房子,埋的坑只会越来越多。
#6 楼 @honeybadger 那就在 case 里通过 start_activity 来切换应用,通过多个 appium server(1 个对应一台手机)来运行测试。
robotframework 并发的话多开不行吗?它规定了同一时间只能有一个 robotframework 在运行?
日志及代码麻烦用代码块:
代码块
麻烦附上 appium log 。client 端的错误信息太少了,不足以判断问题出在哪。
请附上 appium log 。。。
解决了吧?
麻烦把解决方法贴上来一下吧。
插头拔了。。。无解。。。
我们测试机上面 xx 管家、xx 自动升级全部干掉
锁屏问题用 appium 的 unlock.apk 可以搞定
wifi ip 被抢。。。你在路由器里面设固定 ip 给手机啊。。。
首先想问清楚以下几点:
好快!回去试试。
#5 楼 @tobecrazy 嗯。这样也行。
方法有很多。
xpath 错了,你用 get source 看看 xml 里面节点的名称吧。
未找到不就是 failed 了吗。。。
find element
的方法如果没找到元素都会抛出 NoSuchElement 异常的。
#6 楼 @lihuazhang 行啊,你完整目录结构怎样的?我看下哪方面我比较熟悉可以写下。
appium/lib/devices/android/android-common.js
if (this.adb.udid) { if (!_.contains(_.pluck(devices, 'udid'), this.adb.udid)) { return cb(new Error("Device " + this.adb.udid + " was not in the list " + "of connected devices")); } deviceId = this.adb.udid; }
android 上 deviceName 确实没啥用,要指定设备需要用 udid 。
这个文档也有说明:
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/caps.md
selendroid 的东西建议还是去看 selendroid 官方的文档,appium 在这方面只是把 selendroid 包了进来,然后所有请求都直接转发给 selendroid server 。
Selendroid 自己的文档还是不少的,只是坑略多。
我觉得有点像是给开发擦屁股。。。
这些是比较锻炼能力,但如果每次发版都要做这些就太浪费时间了。这些东西要不就让开发搞,要不就做个程序自动搞。而且这么搞下去部署很容易出各种问题。
个人对应上面那几个问题的建议:
问题 1:拿到开发的代码打开的页面缺少样式,导致数据排列混乱
不能添加样式是什么情况?我表示不能理解。。。如果是没办法改,那就做个脚本来干这活。
问题 2:图片资源加载无法显示
这个完全是开发的问题,把这个目录和代码一起放代码库就可以了。如果实在不能放到代码库(例如线上环境数据和测试环境数据不一样),那就在测试环境搞一份就好了。
问题 3:真正测试的才刚刚开始,需要替换资源的行、列数,多种不同组合进行测试
这部分是接口还是配置文件?如果文件格式比较固定,建议写个小程序来自动替换不同组合对应的 xml(自己预先准备好就行)+ 屏幕截图,然后每次检查屏幕截图就好了。手动改实在是吃力不讨好,还容易出错。
问题 4:还需要对比实际返回的 XML 数据是否和开发的 API 格式一致以及数据正确性
有一种日志级别叫做 debug (console.debug("debug message")
),遇到没有加 log 的就加上去并设为 debug 级别的就好了,生产环境把日志级别调高就不会输出这些 log 了。首次添加可能有点累,但好处是一劳永逸,以后就不用加了。至于具体数据格式验证,开发那边应该有对应的解析模块,可以直接取过来做解析看能否正确解析。 xml 如果由人来看速度慢还容易出错。
问题 5:真实的环境需要在 PC Web 和 Web App 上一起测试,有时候在 web 端可以跑通,但在 Web App 上跑不同
这个你没有给具体例子,所以我也不知道具体是什么情况了。如果 web 和 web app 使用同一套代码(特指逻辑处理部分),有可能是前台事件响应的问题,如果不是,那就要看具体情况了。
我觉得要通过改代码解决的问题都可以通过程序来做,毕竟改代码是个技术活,改错了说不定后面就白测了,而且纯文本处理用编程来做也比较简单,说不定以后就可以变成一套部署脚本呢。
而且从上面你提到的这些问题猜测,开发本地会有不少 work copy,说不定某一天 commit 了一个不该 commit 的。。。你懂的。。。