软件测试中的移动端的埋点测试(干货)

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: 软件测试中的移动端的埋点测试(干货)

什么是 埋点测试?

一、测试流程

每一个app的完成,都少不了各方人员的共同努力,各司其职。如:产品经理符合提供需求以及确认app最后展示效果,研发人员负责编码开发app,测试人员负责测试app是否满足需求。为了更好的解释,我画了一个流程图:

图片.png

二、测试技巧

了解开发针对不同模块分别用什么语言编写。若使用RN语言,则只需要测试一端即可。

现在普遍app开发是使用原生编程语言Android端使用Java。而RN是开源的跨平台移动应用开发框架,完整封装了各种js内置的方法,则rn编码时是调用js处理逻辑层处理事件,而js会被转译成object-c和java。其实简单来说,我们在最上层编码开发app就能在Android和ios端使用。因为同一套代码,针对埋点测试只需要测试一端即可,这样就提高效率。不过因为RN组件不全,某些特殊功能就无法解决,则还是需要各自的原生语言去编码。关于rn使用的一个大致图提供参考:

图片.png

三、测试方法

其实我们有一个数据采集系统能统计埋点数据,数据经过分析汇总的,展示非常直观。但是,平台并不能区分是Android端或者ios端的触发,并且数据往往不是时时更新的,所以对于测试工作来说,无法保证埋点是否完成,数据不具有考核性。所以目前大部分公司是通过手机端连接电脑,通过查看日志方式去定位埋点情况。下面我们就Android端和ios端的测试方式讲述下:

埋点的目的:实现app的数据收集和分析。

而数据收集和分析的意义是什么呢?

不同的人对于埋点有不同的目标。

比如对于版本的某个功能,产品可能只是想埋点以了解:

1、新功能是否得到用户的认可和使用?

2、用户使用的场景和路径是怎样的?顺畅吗?

3、是否需要针对反馈回来的数据,进行分析改进功能?

四、而对于某个广告和运营活动的投放,关注的可能是:

广告的展示率、用户的点击率、转化率、甚至是商业盈利等

总而言之,埋点本身其实是对于自己所设计的产品的有一个可视化健康检查,通过逻辑和数据,贯穿产品的整个生命周期,使产品逐步达到最佳状态从而实现硅谷最近所谓的“Growth Hacker”的效果。

另外,一般的app都会有一些核心指标和一般性指标,核心指标诸如下载量、用户数、活跃用户数、留存等等,一般性指标比如用户访问频率、停留时长、页面数等。

于是就衍生出了各种各样的埋点工具。市面上常见的埋点工具,谷歌的Google Analytics,国内比较普遍的第三方统计工具是友盟和talking data,现在小米和百度也有开放的统计sdk。

埋点的逻辑是:界面——事件——事件参数

每一个界面的每个事件都有唯一的标示ID

此外,每个界面中都会有公共参数统计,比如:userId、timestamp、taskId等

讲了这么多,那么埋点是怎么测试的呢?

通用的一种方式是直接第三方统计平台去定时查看自己的appid对应的数据。之前有测过Google和友盟的统计。

优点是,第三方平台的数据往往是经过分析汇总的,展示非常直观。但缺点,是这些平台数据往往不是时时更新的。

再加上第三方统计平台自己的稳定性也有待考量。所以没办法及时确认数据的准确性。

于是另一种方式是从客户端下手,查看开发的埋点日志。

工具:Android平台用androidsdk,iOS平台用xcode

五、Android平台

1.环境和资料准备

1、搭建ddms环境,可以使用androidstudio,或者直接使用android sdk里带的monitor

2、想尽一切办法拿到埋点字段表,这是开发埋点的依据,以及产品分析的标准

3、取已埋点的安装包并且输出app埋点的日志

2.测试步骤:

1、在Android手机端安装带有埋点的安装包

2、在电脑端打开Android studio,同时通过usb连接手机

3、查看埋点字段表,执行对应有埋点的操作,比如:若app登录处埋点。则若在app上点击登录button,正常情况下能通过查找日志找到对应的埋点。

图片.png

4、检查埋点是否正确,出错的情况有:

a.漏埋点。比如,若执行a步骤找到埋点a;执行b步骤,却找不到埋点b。大概率是埋点b没有被埋。

b.多埋点。比如,若只是操作一次,却找到多个埋点。

c.埋点和操作类型不对应,比如,点击的是“确认”,却上报了“返回”

测试方法

1、调起monitor之后,连接移动设备

2、设置logcat的filter,填写包名即可
图片.png

3、查看埋点字段表,执行对应有埋点的操作

比如
图片.png

进入手机上的app,点击 下一步

4、查看ddms的logcat,即可看到操作的日志,如图所示:
图片.png

5、检查埋点是否正确,出现错误的情况一般是:

a.漏埋点

b.埋点和操作类型不对应,比如点击的是“下一步”,却上报了“返回”

c.埋点和操作频率不对应,比如只操作了一次,却上报了两次

iOS平台

环境和资料准备

1、安装xcode,从appstore直接下载即可

2、找产品/开发拿到埋点字段表

3、找开发要已经埋点的安装包

测试方法

1、在Android手机端安装带有埋点的安装包

2、在电脑端打开xcode,同时通过usb连接手机

3、点击xcode的window —>devices(调起xcode之后,连接移动设备--选择Debug-Devices)

图片.png

图片.png

4、查看埋点字段表,执行对应有埋点的操作

5、检查埋点准确性

总结:

尽管埋点测试在整个测试流程中操作相对简单,耗时较少,但是仍然是软件测试中不可或缺的一部分,保证埋点正常运作。通过埋点汇总后反馈的报表,可以科学有效的规划出一款APP的未来走向,更满足用户体验需求。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
人工智能 搜索推荐 数据管理
探索软件测试中的自动化测试框架选择与优化策略
本文深入探讨了在现代软件开发流程中,如何根据项目特性、团队技能和长期维护需求,精准选择合适的自动化测试框架。
98 8
|
1月前
|
测试技术 持续交付
探索软件测试中的自动化测试策略
随着软件开发周期的加速和市场需求的不断增长,传统的手动软件测试方法已难以满足现代软件开发的高效性和准确性要求。本文旨在探讨自动化测试在软件测试中的重要性、实施策略及其对提高软件质量的影响。通过分析自动化测试的优势与挑战,以及提供实用的自动化测试工具和框架选择指南,旨在帮助读者理解并应用自动化测试以提升软件开发效率和产品质量。
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
62 1
|
1月前
|
Java 测试技术 API
探索软件测试中的自动化测试框架
本文深入探讨了自动化测试在软件开发中的重要性,并详细介绍了几种流行的自动化测试框架。通过比较它们的优缺点和适用场景,旨在为读者提供选择合适自动化测试工具的参考依据。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
70 4
|
1月前
|
监控 测试技术 定位技术
探索软件测试中的自动化测试框架选择与实施###
本文不概述传统意义上的摘要内容,而是直接以一段对话形式引入,旨在激发读者兴趣。想象一下,你是一名勇敢的探险家,面前摆满了各式各样的自动化测试工具地图,每张地图都指向未知的宝藏——高效、精准的软件测试领域。我们将一起踏上这段旅程,探讨如何根据项目特性选择合适的自动化测试框架,并分享实施过程中的关键步骤与避坑指南。 ###
49 4
|
1月前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
在软件开发的世界中,测试是确保产品质量的关键环节。本文将深入探讨自动化测试框架的重要性和实现方法,旨在为读者揭示如何通过自动化测试提升软件测试效率和准确性。我们将从测试的基本概念出发,逐步引导读者了解自动化测试框架的设计和实施过程,以及如何选择合适的工具来支持测试活动。文章不仅提供理论知识,还将分享实用的代码示例,帮助读者将理论应用于实践。无论你是测试新手还是经验丰富的开发者,这篇文章都将为你打开一扇通往更高效、更可靠软件测试的大门。
38 1
|
2月前
|
数据可视化 测试技术 API
软件测试中的自动化测试框架选择与实践
在当今快节奏的软件开发环境中,自动化测试成为了确保软件质量和加速交付的关键。本文将探讨自动化测试的重要性,并比较几种流行的自动化测试框架,包括Selenium、Appium和TestComplete。文章还将提供一些最佳实践和案例研究,以帮助读者更好地理解和实施自动化测试策略。
|
2月前
|
敏捷开发 前端开发 Java
软件测试中的自动化测试框架选择与实践
在当今软件开发生命周期中,自动化测试已成为提升软件质量和开发效率的关键手段。本文旨在探讨自动化测试框架的选择标准及其在实际项目中的应用实践。通过对主流自动化测试框架的分析比较,结合具体案例,本文将阐述如何根据项目需求和团队特点选择合适的自动化测试工具,并分享实施过程中的经验教训。
42 1
|
2月前
|
Java 测试技术 API
软件测试中的自动化测试框架选择与应用##
在快速迭代的软件开发周期中,选择合适的自动化测试框架对于提高软件质量和开发效率至关重要。本文探讨了当前流行的几种自动化测试框架的特点和适用场景,旨在为软件开发团队提供决策依据。 ##