已经很久没有使用这个框架了,所以你的问题我没法直接回答。不过,有几个问题定位思路你可以参考下:1、换个模拟器试试,相对而言模拟器的权限开放更加彻底;2、单独将 hook 失败的 apk 拿出来验证下,不用配置文件的方式;3、确认下 hook 失败的 apk 权限设置和其它 apk 有什么区别。
任何一个在大学里学过编程语言的,基本上一个月就可以上手了,真的没有啥难度。
——上手难易程度和技术深度没有直接关系,不是难以上手的技术才叫技术。自动化测试的核心竞争力之一就是尽量降低上手难度,让尽可能多的测试人员能够无障碍使用,为了达成这一点本身就需要很深的技术
编程能力或者技术能力很容易到天花板,很多人学了一身的开发技能,在公司中根本用不上,大多数还是以手工测试为主
——天花板有,但看你愿不愿意伸手去推它。你看到的天花板往往受限于你所处的环境、你们的产品性质、你们的流程管理等等,有客观的因素,但最主要的还是你们团队和个人对于产品的质量追求,自动化测试往往只有在主动改进的团队能发挥用处,而且一旦你们积极去做,就会发现没有什么开发技能在自动化测试中是用不上的,懂得开发才能更好的做测试。
我看了很多外面自动化培训班也就 app 自动化测试,web 自动化测试,接口自动化测试反复在滚概念,这本身对这行业没啥发展,招聘也是千篇一律的上述这些
——测试是围绕产品的,如果产品的对外呈现方式就这些,自动化测试的范围也就只能是这些,总不能凭空测莫须有的东西。而且这些只是基础,在这些基本技能上衍生的如契约、性能、可靠性、兼容性、UI 体验、安全等自动化测试,你真的都了解过吗?
真的技术强的早转开发做架构师了
——自动化测试技术强的人不仅仅对产品架构很熟悉,更重要的是他对产品质量和如何保障产品质量的理解很深,这样的人不一定要转开发做架构师,还有很多领域是他完全能胜任的。
其实测试现在这个局面还是以手工测试为主,如果你说 app web 接口跑完出个报告也算技术的话,我真是没话说了。知道很多人不服气,但是自动化测试真的没啥技术含量,其他技能很少或者根本用不上。自动化测试技能对测试人员来说真的很鸡肋!!!
——如上,你可以认为自动化测试没啥技术含量,但做好自动化测试从来都是一件很有技术含量的事。
appium 客户端中 webdriver 管理的部分实际上就是 selenium,上面这个命令也是 selenium 中默认就有的参考
以python
的appium
客户端为例:
在webdriver
初始化的地方添加reconnect
参数
如果reconnect
为true
的情况下,直接获取server
端的session
信息,并直接将这些信息保存至客户端脚本上下文中
调试时,脚本代码中只要将reconnect
值设为true
就行了
有点复杂,介绍下我们之前用 appium 调试的简单思路:
因为 appium 是 C/S 架构,每次测试执行的上下文信息都保存在 appium server 端,其中最主要的就是会话 session,所以,只要重写或者添加个 driver 初始化的方法,先去 server 端获取下已存在的 session 信息,就能实现无需重启的单步调试了
可以参考ApiMatic,能实现各种借口定义之间的转化,我们项目使用了 Postman collection -> Swagger 的方式,配合 chrome 到 postman 中的导流功能,接口定义生成本身的成本不高。
2、接口文档标准化,很多时候真的是可遇而不可求,特别是在中途接手一个质量不是很高的项目的时候,接口文档滞后或甚至是没有。实现自动生成测试用例这块儿,不知道你们有没有成功实践经验,可否分享下?
—— 看下 swagger 吧,一种标准的接口定义规范,可通过代码注解或者 postman collection 自动转化生成(当然也可手写),而且也是 yaml 格式,挺适合你这框架的
从个人经验看,接口测试的最佳工程实践应该包含从开发的接口定义到测试脚本(至少是单接口的参数遍历脚本)全自动化生成,这样才能保证接口测试的准确性、覆盖率和运作效率。
1、如果用 xposed 的话,你要知道请求最终是调用系统的什么接口接受响应内容的,然后 hook 对应方法就行
2、但个人不推荐上述方式,因为你要自己构造各种响应结果,这个工作量很大,建议直接使用 peach,有非常强大的 fuzz 测试能力
WebElement 监听的不一定是 click 事件,还有 tap、touch,这几个是不一样的,你可以都试试