lsekfe 发表于 2016-7-19 14:22:03

国内哪些移动 app 开发团队做了自动化测试?能否介绍一下具体的实现方案?

作者:萧三刀
来源:知乎

自动化测试是没有技术含量没有前途的;

支付宝的框架安全模块是基于spring mvc的,前面是策略引擎,然后对接风险识别模板,然后对接的是各种框架,kmi平台,加解密平台,然后是缓存等。

整个思路就是先起一个基类,里面加载各种启动引擎,然后到集成子模块,然后分本地远端模式,集成到sonnar平台看测试的覆盖率什么的。

总体而言,用到了spring框架的mock技术,也用到了appinuim还有selenium的东西,其它外没什么东西。

如果单纯的自动化测试框架只是对ui识别的话,各种工具都有,selenium,qtp,这些都很简单,无非是启动一个webdriver,然后去调用xpath和findbyid or findbyname,findbycss等识别引擎去获取页面元素,好一点的框架可能会包一层,然后将其作为一个识别模块子函数用以调用或者作为模拟qtp的对象层,然后再将db操作通过jdbc或者mybatis提供的xml配置或者map里面的方法来操作数据库层,再写引擎代码,来操作db和页面元素,用断言来处理页面元素的识别结果和数据库实际查询到的值——基本上是所有基于ui的自动化测试主流办法。

然后,高级一点的直接通过接口层调用,譬如通过httpclient直接发http请求去调用controller,然后解析controller的处理结果,断言可以直接通过解析出的接口返回值,或者是通过数据库匹对,基本上这些都是可以提高代码覆盖率,但是根本上技术含量也比较低。

自己写的话,比较好的框架就是基于springmvc框架结合本地测试和远端测试,结合selenium,testng,appium,采用三层框架来处理ui和接口比较好。

主要现在web的开发难度在于多线程处理和并发,还有就是大数据上,自动化测试还是难度偏低,但是可以通过自动化测试提升自己的技能,然后转作spring 开发。

testng主要是可以帮忙做兼容性测试,其他的话不好评论


lsekfe 发表于 2016-7-19 14:22:48

听 leader(以前阿里巴巴职员)说,业界大点儿的公司一般都有自己的自动化测试框架。至于自动化测试的话我感觉现在越来越火了。尤其是android自动化这块开源免费的自动化框架也非常多。比如:monkeyrunner、robotium等等。有这些好运的东西以及一些类似 Hierarchy Viewer、pixel perfect 等辅助工具。很容易在开源的基础上做二次开发。所以自动化框架会很多。也有很多公司在做。

Testin 云测试只是简单试用过,不知道是怎么实现的。整个云测试的想法很好。可以说和 device anywhere 很相似。但是我个人认为Testin云测试没有提供一个很好的测试可视化,测试数据的可信度也无法直接评判。对需要实时验证测试结果的场景不能满足,而且一旦程序遇到 blocked 级别的问题也无法第一时间做出处理。

另外还有一些自动化的测试解决方案厂商。比如宁波普天的机械手,通过机械手做手机的自动化测试,没有任何软连接和硬连接干扰测试终端本身,一定程度上这种测试解决方法更具纯粹性和说服力。
此外康凯特(ComCat)也有自动化解决方案。不过这家公司有两种方案,第一种是通过硬连接的方式 Server + Runner + Agent 的模式控制手机自动化测试的整个过程。测试本身的纯粹性、专业性都非常高。有专用的 IDE 软件去编辑测试用例。Runner 负责跑脚本。Server 去集中管理多个 Runner 并不断产生脚本的一个当前执行进度以及测试结果状态。测试完成后会给出包括错误截图以及时间点和问题发生过程这样一种详细的测试运行报告。使用者可以很方便的复现出错场景。另外一种就是机械手的解决方案,听说也结合了 ComCat 其他产品的中用到的一整套的思想,结合图片比对技术很方便的去模拟使用场景以及生成详细的运行日志。

以上只是我个人的一点粗浅认识,如果有不对的地方。还请及时指正。
页: [1]
查看完整版本: 国内哪些移动 app 开发团队做了自动化测试?能否介绍一下具体的实现方案?