测试开发全栈之Python自动化 面试官:APP 自动化测试关键点在哪里?(功能测试开始解析)
首先问大家一个问题,做 APP 测试它的关键点在哪里?
APP 测试的关键,如果你去面试的一家公司主要业务是做一个 app 测试,他肯定会问你一个问题:你如何去做 APP 测试?
那我们就从 app 测试的关键去分析。
大家可以想一想 app 测试的关键点有哪些?
脑海中应该马上能想到很多专业的测试技术,首先就是一个 app 功能,这个是毫无疑问的,不管你是做 web 端还是做 app 还是做小程序等等。首先功能你把它全部测试好,这个其实和我们的 web 测试以及其他的测试没有很大的差别,就是测试一些功能。
比如说淘宝,京东,我们去做一些加入购物车,下单等一系列功能测试。
我们还要去做一些 app 的专项测试,这个专项测试就包含了很多的东西。
当然还有我们的 app 自动化测试,我们就会从这几个大的方面考虑去做 app 测试。
功能测试我就不多赘述了,很多伙伴都知道功能测试怎么测,根据我们的需求文档把这个功能测试好就 OK 了。
专项测试里面就包含了很多东西,比如说一些 app 的启动,大家天天都在用手机打开一些应用,那我们的一些 app 的启动,比如说冷启动,然后你打开一个 app 首页以及各类页面的加载时间,这个页面加载时间就是用户体验。如果你一个页面打开要很久,超过好几秒钟了,用户肯定就会吐槽,这个我觉得不行,用得很不爽。冷启动、页面加载时间,我们可以通过一些弱网测试,就比如你在地铁或者地下车库、电梯里面,加载时间是不是符合我们的需求。
当然还有我们平时一直都在使用的 app 它的运行日志分析,这个日志去哪里分析呢?很多伙伴可能了解了我们的 app 是通过 adb 命令去运行,抓取日志。那么一般的我们可以通过抓包,app 测试抓包是一个非常重要的一个手段,获取日志,比如说请求了哪些接口,然后它的一些日志到底是怎么样的,然后我们的一些数据。
其实大家真正做过 app 测试的,肯定还知道有第三方平台,比如说我们的友盟,极光,它是可以直接去获取到 app 的报错日志。当然不仅仅这一个平台,大家可以自行搜索学习。如果你不知道这些平台,面试的时候,一问就知道你没有什么经验。
app 上线到应用市场,比如说我们的 oppo、华为、小米这些应用市场发布之后,某一个用户点击这个 app 报错了,你可以通过这个平台去获取它的报错日志(比如哪个用户闪退了)这可能是大家平时没有去注重的一些点,那其实也是比较关键的。
还有一个,稳定性测试,你通过抓包还有一些第三方平台只能获取到它的报错,那我们想要 app 很稳定的运行,用户体验非常好。app 稳定测试大家可能知道最多的是 Mokey,我觉得 Mokey 它其实更多的是压力测试,就是通过一个 Mokey 去做一些随机点击事件,在一个 app 上面就像一个猴子一样任意到处高速点击,观察 app 是否会报出内存溢出、闪退等这一系列的现象。
稳定性能测试,我们一般是通过什么去做测试呢?是通过我们的接口,app 一般的通过调用后端的服务。比如说我随便打开一个 app
每日推荐到底有什么歌曲?这些数据肯定是从后端去获取到的。这就是通过一些接口,那这些接口,不仅仅是一些简单的测试,你要去考虑的点有很多。
你要去 mock 一些模拟测试数据,比如说这个接口当后端传了一个空值(null),或者很多情况有些字段为空的时候。因为一个后端的开发人员他不会考虑你前端 app 字段为空的时候会是一个什么场景,它只返回这个字段给你,这个时候你这个 app 会不会闪退呢?因为 app 它的一些机制,如果数据没有它就会闪退,所以这些异常场景非常重要。让它至少不会出现闪退,奔溃一些大的问题,加载时间特别慢、乱码切换等,所以稳定性测试非常关键。
app 测试
界面布局测试
如果你通过这些方面去给面试官一说,那肯定就显得我们至少很有经验,先不说我们的技术很牛皮,至少我们在对 app 测试这一块拿捏得比较稳。当然 app 还包括 IOS 和安卓,原理都是差不多的。
这个自动化测试,不管你是做什么类型的测试,自动化都会是一个关键词。怎么去做自动化?
app 自动化测试我们熟悉的、企业常用的框架有哪些?
一个大家最熟悉的框架——Appium
那当然还有其他的,比如说 airtest
然后我们国内的网易或者阿里巴巴开源的一些框架——macaca,uiautomator
还有很多的框架是支持我们去做自动化的
appium, airtest,macaca,uiautomator,rf,
那这就是当下企业主流的第三方开源自动化测试框架,我是通过这些框架去做 app 自动化,这些 app 测试完成之后,自动化从专项、功能后面还有一个兼容性。
app 兼容性:(手机型号,安卓系统版本,分辨率)
兼容性,也分很多种,不仅有手机的型号,系统,现在手机的品牌非常的多,包括了手机屏幕分辨率不一样,有些 bug 它只在某一个品牌某一个型号的手机上才能重现,这个时候你该怎么办?你需要给面试官说的是你如何解决这些问题的方案和思路。
总结:
通过以上测试完之后,一般的在公司里如果你是作为一个有经验的软件测试工程师或者中高级的测试,像这种 app 的打包、发布这些都是应该由我们测试来做的,因为像开发他只管把他的代码打包,(我告诉大家一些经验和方案,那具体怎么做的,每个需要大家去认真的思考)那我们一般通过 Jenkins 构建自动化打包,通过 Jenkins 一个任务,直接把我们 IOS 安卓打包成一个应用程序去发布,因为像这种发布大家更多的是做的 web 端的,比如说后端某一个服务,通过 Jenkins 构建一下,那 app 的也是通过我们 Jenkins 可以自动化打包生成 apk。
比如说你想要打包一个测试环境,你不需要去求助开发了,目前大家更多的,我需要测试一个新版本,就会和某某开发说,你开发完了没有,麻烦你帮我打一个包,像这种东西你不需要去找开发了。
app 测试的关键点
一篇文章给大家简单的总结的一些东西,每一个点怎么具体的实施落地,更多分享可以公众号主页点击领取资料,学习资源免费分享。