浅谈移动互联网App测试

简介: 该篇从各维度介绍了常见的移动互联网测试方法,测试思路可以借鉴。

前言

在移动互联网高速发展的今天,测试作为技术研发流程中最重要的环节之一,其地位是不言而喻的。一个测试人员需要具备什么样的技术能力,怎么样快速对移动互联网测试有一个全面的认识和学习,是测试人员必须面对和考虑的,也给测试人员提出了新的挑战。

功能自动化测试

如果仅仅依靠纯手工的测试,很快就会面临瓶颈,因为每个功能几乎都要经过 bug修复、验证和回归的过程。另外针对接口协议的验证,也必须依赖自动化才能验证。

移动互联网的产品和Web互联网产品类似,后台都有大量的接口提供相应的服务,很多的业务逻辑都是放在后台来处理的,所以可以针对这部分逻辑做轻量级的接口自动化测试。技术方案上,从界面发起相关请求的做法效率不高且不够稳定,所以我们一般采用直接从接口层面发起请求来验证。

除了接口的自动化,App UI 自动化也可以帮助快速地进行App功能的回归。考虑到UI自动化用例建设和维护成本,可以针对相对稳定的功能进行App UI 自动化用例建设,这些用例除了UI的自动化验证之外,持续集成和兼容性测试中也能发挥他们的价值。目前业界用的比较多的App UI自动化测试框架有Robotium和Appium,Robotium相对原生的UI自动化测试框架,提供了更友好的定位控件的方法,在写自动化脚本的时候建议使用Robotium类库来提高测试效率。Appium框架是一个开源的重量级的自动化测试框架,支持iOS和Android等平台的自动化测试,支持跨平台,支持真机和模拟器,也支持多种语言编写测试脚本。每种测试框架都有其优缺点,可以根据实际的项目来挑选适合自己的。

性能测试

产品经过了功能层面的验证,还达不到发布的要求,还有很多影响用户体验的问题需要重点关注,比如App使用时不流畅,操作时服务端响应慢,高峰期使用应用频繁报错,莫名闪退,App使用一段时间后占用内存过高,界面打开速度变慢等等。这些问题虽然不关乎功能,但很有可能造成用户的流失,影响产品的口碑。所以我们需要做充分的性能测试来规避相关风险。

性能测试是一个非常综合的测试技术,涉及面广,测试人员需要有一定的积累才能发现隐藏较深的问题,对于移动App的性能测试,分为Web前端的性能测试、App端的性能测试,后台服务的性能测试。Web前端的性能测试已经较为成熟,Fiddler、FireBug等工具都能辅助测试。App端的性能测试在这三项中是最重要的,页面渲染的时间,CPU的使用情况、内存泄露,都会直接影响到App的运行性能,甚至导致程序崩溃。测试的时候可以借助一些工具帮助分析内存使用情况。基于后台服务的性能测试主要是从负载、压力、持久性等方面量化地评估系统的响应时间和容量等指标。

专项测试

针对某个特殊问题进行的测试,我们称为专项测试,它是移动互联网产品中重要的测试类型,可以从不同的维度发现更多深层次的问题,必不可少。主要有以下几类:

兼容性测试

随着终端设备的型号多样化,用户多了以后自然而然就会遇到兼容性问题,因此需要覆盖不同的软硬件环境来进行兼容性测试。操作系统的版本、屏幕分辨率、网络类型、浏览器类型都是需要考虑的。执行方案上,一般会借助UI自动化和云测试平台来进一步提升兼容性测试的效率和覆盖面。

流量测试

App 使用过程中,很多用户会关心流量用了多少,特别是非宽带的流量需要付费时。如果App设计有缺陷,频繁联网去服务端获取信息,会导致流量消耗较快,最终结果是导致用户卸载App。所以流量测试从两个方面入手,前台用户的操作和后台的流量消耗情况。对于Android系统,可以通过系统提供的API接口来获取流量数据,而对于iOS系统,可以通过Instrument自带的Network来查看网络流量。当然还有其他方法,比如可以通过手机抓包、Wifi代理的方式来获取流量数据进行分析。控制流量的策略也有很多,数据压缩、访问控制、缓存、不同访问策略和不同的数据格式等等,在App设计之初最好能提前考虑到这些方面,避免后续架构改动较多带来一定的风险。

电量测试

电量和流量一样,也是用户较为关心的一个方面。耗电太快,也会导致用户流失。Android系统上,可以借助第三方App来评估手机上各个App的耗电情况。针对iOS系统,还是依赖Instrument提供的Energy工具,从多个维度来查看App的耗电情况,同时苹果提供了类库也可以获取当前设备电量信息。

弱网路测试

很多时候,问题总是在环境比较复杂的情况下才会暴露出来,弱网络就是其中之一。与其让用户遇到带来不好的体验,不如在测试阶段模拟弱网络环境,及早解决。iOS系统中自带的开发者选项可以对网络状态进行设置。另外目前还有好多弱网络模拟工具比如Charles可以帮助测试,还可以采用真机模拟弱网络的方式。

稳定性测试

说起移动App稳定性测试,第一个想到的肯定是Monkey测试,Monkey工具使用起来也比较简单,通过命令就可以执行。当应用程序崩溃或者产生了ANR(Application not responding),Monkey就会停止并报错。

安全测试

移动App产品的安全测试主要有以下几个方面:安装包的安全测试,能否反编译、是否签名、权限检查、完整性校验;敏感信息测试,包括数据库、日志、配置文件中的信息;账户安全和数据通信安全;服务端接口的安全测试,常用的SQL注入,XSS跨站脚本攻击、CSRF跨站请求伪造,越权访问。

以上各项测试可以独立执行,也可以交叉结合,构造更加复杂的测试场景。

写在最后

也许这里的技术/工具方案并不是最好的,但是各维度领域的测试思路,希望能对你有所帮助。

相关实践学习
通过性能测试PTS对云服务器ECS进行规格选择与性能压测
本文为您介绍如何利用性能测试PTS对云服务器ECS进行规格选择与性能压测。
目录
相关文章
|
9天前
|
Java Android开发
Rockchip系列之CAN APP测试应用实现(4)
Rockchip系列之CAN APP测试应用实现(4)
19 1
|
1月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
29 5
|
14天前
|
XML 数据格式 Python
App测试中,强制等待和隐式等待谁更强?
本文介绍了在自动化脚本中添加等待以确保与应用程序同步的重要性。由于应用响应时间的不确定性,适当等待能防止脚本在操作未完成前继续执行,提高测试稳定性。等待包括强制等待(如`time.sleep()`)、隐式等待(全局设置查找元素的等待时间)和显式等待(根据预期条件等待)。示例代码展示了如何在Python的Appium测试中应用这些等待策略,以优化脚本的可靠性和与应用的同步。
24 0
|
15天前
|
测试技术 Python
App自动化测试中,如何更好地处理弹窗?
在App自动化测试中,处理弹窗异常是保证测试稳定性和可靠性的重要环节。当遇到广告弹窗、升级提示等不定时出现的UI元素时,可以采用黑名单处理方法,如上述Python代码示例,通过尝试点击黑名单中的元素来避免干扰。同时,利用异常处理装饰器可以增强函数功能,保持代码整洁,当异常发生时记录日志、截图并保存页面源代码,便于问题排查。这两种策略能有效提升测试的效率和质量。
7 0
|
2月前
|
XML 测试技术 数据格式
解决 App 自动化测试的常见痛点
在App自动化测试中,常见挑战包括启动加载慢和弹框干扰。为处理弹框,可以创建一个黑名单列表,遍历并点击消除。使用`handleAlertByPageSource()`方法结合`getPageSource()`判断弹框元素在当前页面的存在性,提高效率。对于首页加载延迟,使用显示等待特定元素如`user_profile_container`,但需注意弹框可能阻止元素定位。因此,结合PageSource判断首页元素和弹框,确保加载完成判断的准确性。通过这样的优化,能更有效地处理自动化测试中的中断问题。
23 1
|
2月前
|
测试技术 Android开发 索引
XPath定位如何在App自动化测试中大显神威
本文介绍了如何在Appium中使用XPath进行自动化App测试。通过淘宝App实例,展示了XPath在定位元素上的应用,包括基础定位(如通过text、resource-id、class和content-desc属性),contains模糊定位,组合定位以及层级定位(如父、子、兄弟和祖元素定位)。XPath的灵活性和强大功能使得在Appium中高效地定位元素成为可能,从而提升移动应用的测试效率。
16 0
|
2月前
|
监控 安全 Shell
深入探究App压力测试的关键要点:从零开始学习Monkey
Monkey是Google的自动化测试工具,用于模拟用户随机事件以测试应用的稳定性和压力。它可以在模拟器或设备上运行,通过随机点击发现潜在问题。
29 1
|
2月前
|
测试技术 Android开发
快速上手App自动化测试利器,Toast原理解析及操作实例
`Toast`是Android中的轻量级通知,短暂显示在屏幕任意位置,1-2秒后自动消失,不获取焦点且不可点击。Appium通过uiautomator2在控件树中处理Toast。在测试中,可设置隐式等待,利用XPath或Accessibility ID定位Toast元素进行检测和验证。示例代码展示了如何初始化driver,点击触发Toast,以及如何定位并读取Toast文本。
25 3
|
3月前
|
测试技术 UED
APP交互性如何测试?
APP交互性如何测试?
|
3月前
|
监控 测试技术 Shell
APP的CPU,内存和流量如何测试?
APP的CPU,内存和流量如何测试?