APPUI自动化测试平台&埋点测试海拍客技术博客

埋点是在应用中特定的流程收集一些信息,用来跟踪应用使用的情况,后续用来进一步优化产品或是提供运营的数据支撑。

埋点重要,但埋点是否有效及正确与否,通过人工测试的方式是效率很低的,常用的方式就是人工操作APP,再通过抓包工具查看是否有埋点接口和参数上报,或者通过查询日志来查看数据是否被保存成功。如果能有一套自动化测试工具,就能极大提升效率,解放人力。

埋点主要有页面曝光和点击等几种类型。通过接口测试的方式基本是没办法测试的,于是考虑到使用APPUI自动化测试方法。

APPUI自动化测试的成本很高,测试环境搭建复杂,且因页面经常变化导致用例失败率较高也是个头疼的问题,很多公司都是中途就放弃开发了。不过考虑到我们只做核心点位的测试,用例数不会太多,主站APP的核心点位在100个以内,这样写用例和维护用例的代价还可以接受。

当前市面上比较流行的APP测试工具是Appium,且同时支持Android和iOS,所以做为首选。二期海拍客APP内置了录制和回放功能,上手容易且效率高,不足之处是复杂场景无法通过写代码做逻辑判断,适合写一些页面相对稳定,逻辑简单的用例。两者可互为补充。

海拍客有埋点数据管理平台redpill,点位经常会有增删改,通过人工去及时检查这些有改动的埋点是不可接受的。于是在redpill应用中额外增加了获取核心埋点的接口,UI测试平台中添加定时任务,每天自动把核心埋点同步过来。

Web端和Server端是部署在容器中的,无法直连和操作手机,于是新增了Client端,部署在连接了手机的物理机上,一边可与Server端通过restapi通信,一边可直接通过命令行的方式操作手机。

除了基本的增删改查功能外,主要介绍其他几个特性。

平台二期对接了使用海拍客APP内置的录制回放功能。平台需要能接收保存APP录制后传上来的脚本。

录制的脚本,本身没有功能描述信息,可以自行添加描述信息说明脚本对应的功能,便于关联用例。

除了用例可以关联脚本外,脚本管理界面也可以反向关联用例,并即时展示关联关系。

一个APP有上千个埋点,每天都有可能变化,人工维护基本是不可能的。平台添加了定时任务功能,每天自动从埋点数据平台同步海拍客APP的核心点位。

如果有些特殊的点位不属于核心,但根据需要仍需要覆盖用例的,平台也支持手动添加,且添加时只需要填写埋点字段,其他字段如模块、点位名、点位类型、是否核心等信息会帮你自动获取并保存。

iOS手机:因为iOSrelease版本只能通过AppStore下载安装,如果需要完全自动化测试,只能安装test版本。需要在连接的物理机上安装ideviceinstaller工具,使用“ideviceinstaller-i$filePath”安装下载的ipa文件。

设备Host:对应物理机的ip,平台支持部署多套物理机环境,每台物理机都可以连接若干台Android和iOS手机

设备选择:支持使用指定的手机执行测试。后续会添加设备管理模块,可支持自动选择可用的空闲手机执行测试

执行设备:手机序列号,主要用途是用adb连接手机进行版本安装,及appium需要用其执行测试

UI自动化测试,经常会因为网络问题导致预期的页面还未加载完成,或者获取页面元素时失败,为了增强整个测试任务的稳定性,对每条用例都添加了失败重试功能。默认设置3次,只有该用例连续三次都执行失败时才标记为失败。

若某个场景配置的手机是空闲状态,该场景显示执行按钮,点击可开始测试。测试完成后,会显示用例数统计。

真机测试和虚拟机比,相对不太稳定,可能因为物理机ip变化、误碰了数据线导致连接断开、手机系统原因导致连接不上等原因,无法测试。此时就需要有个能监控设备在线状态的功能。

对于Android设备来说,使用adbdevices能方便的知道设备连接状态,但iOS手机就没这么直接能通过命令行的方式去检查。而且还有个问题,真机测试需要在物理机上部署Appium、xCode等多个程序,这些程序如果有问题,也会导致无法测试。

想到Appium本身有连接真机的功能,能否利用这个特性来开发一个自动监控的工具呢?

利用目前的场景执行功能,稍加改造就能达到。

Appium框架支持用Java或Python语言编写和执行用例,用例代码以文件的形式保存在代码所在工程中,测试时编译运行是可以的。但如果需要能让测试平台保存和维护这些用例代码,同时通过平台能触发这些用例执行呢?我们引入了Groovy。

用到的工具类:UIUtil(封装了Appium对APP的操作方法),LogUtil(封装了日志操作),PointUtil(封装了埋点验证方法)

//获取GroovyShell对象的contextBindingbinding=context.getGroovyShell().getContext();//封装用例用到的变量Mapself=(Map)binding.getVariable(GroovyEnv.VK_SELF);self.put(GroovyEnv.VK_SELF_SCENE_ID,context.getSceneId());self.put(GroovyEnv.VK_SELF_CASE_ID,context.getCaseId());self.put(GroovyEnv.VK_SELF_EXEC_ID,context.getExecId());self.put(GroovyEnv.VK_SELF_CASE_EXEC_ID,context.getCaseExecId());//封装用例用到的工具类UIUtiluiUtil=newUIUtil(context.getDriver());binding.setVariable(GroovyEnv.VK_UI,uiUtil);binding.setVariable(GroovyEnv.VK_LOG,newLogUtil(self,testExecLogAO));binding.setVariable(GroovyEnv.VK_POINT,newPointUtil(context,loghubFacade));执行脚本通过Groovy提供的InvokerHelper.createScript执行用例对应的脚本script

privatevoidexeGroovyShell(GroovyShellgroovyShell,Stringscript){Classclazz=testScriptAO.parseScriptClass(script,groovyShell.getClassLoader());ObjectvalidResult=InvokerHelper.createScript(clazz,groovyShell.getContext()).run();AssertUtil.isTrue(validResult==null||((Boolean)validResult),"校验失败,结果为false");}用例示例执行Groovy脚本时就可以通过绑定的Java对象做各种操作,并把结果返回给测试平台。

iOS使用APP自带的录制工具录制脚本后,通过命令ios-deploy-L-b./Payload/*.app--args"taskId=$1"可以回放成功。但是发现每条用例执行都需要一分钟以上。

一次任务包含许多用例,是不需要每条用例都重新安装app的。于是首先考虑到的就是安装步骤和执行用例步骤分离开。

于是沟通后由开发在安装命令和执行用例命令上,均添加exit=1参数,这样重新安装版本后app自动退出,每次执行用例后app也自动退出,不会影响下条用例的执行。

因平台现在是支持通过Appium执行用例和回放由APP录制的用例两种方式的,把两种用例放到一个任务中执行时,会偶现执行失败。后发现一种情况,当先回放用例后,再执行Appium的用例,就会提示session创建失败。

目前为止,埋点测试用例已完成了130+条,覆盖核心埋点90+个,有效的保证了埋点上报功能的有效性。

APPUI测试平台除了验证埋点是否正常上报外,还可以模拟真实用户针对其他的主要场景进行测试,是单元测试、接口测试的有效补充。平台支持的Appium脚本编写及录制回放两种方式互为补充,有效保证了用例编写的效率及执行的稳定性。

web端和APP端UI自动化测试是现在很多公司使用较多的UI测试类型,随着海拍客在小程序端的发力,接下来小程序端UI自动化测试平台也已规划并在开发中。

THE END
1.海拍客销售版电脑版下载2024海拍客销售版PC端最新版「含模拟海拍客销售版电脑版「含模拟器」 类型:办公更新:2024-07-05 电脑系统:Winxp/Win7/Win10/Win11文件大小:84.3MB 开发商:杭州洋驼网络科技有限公司 一键安装包含安卓模拟器 仅下载APK文件 温馨提醒:一键安装文件将为您同时安装安卓模拟器和对应APK文件,安装完成即可在电脑上玩安卓游戏/应用。https://www.liqucn.com/pc/831486.shtml
2.海拍客安卓版下载海拍客app下载v4.36.0[网络购物]电脑版下载(通过360助手获取资源) 猜您喜欢 梅苗苗 81.13 MB 手机淘宝最新版 73.5 MB 淘宝 73.5 MB 京东 97.53 MB 苏宁易购 151.18 MB 基本简介 海拍客安卓版是一款专为母婴打造的网络购物平台,海拍客app官方版主要提供质量好,正品母婴产品,每天都有超值优惠券提供,让用户在购买品质商品时更加的实惠,海拍客app特设https://mip.onlinedown.net/soft/1233757.htm
3.海拍客app官方免费下载授权方式:免费版软件语言:简体中文软件类型:国产软件 推荐星级: 应用包名:com.ytmallapp 相关信息下载地址网友评论 分享到: 软件介绍 海拍客是一款专为国内中小母婴实体店而打造的线上母婴B2B购物服务平台。该平台利用移动互联网和智能终端的特点,结合官方的资源和渠道优势,汇集来自全球各地的优质母婴用品资源。该软件提http://www.winwin7.com/azapp/90420.html
4.海拍客海拍客 - 做母婴,就用海拍客!Ezeket is kedvelheti 海带-采购全球母婴货源 购物 一起牛母婴平台 购物 国际妈咪-香港国妈母婴 购物 乐友-专业孕婴童亲子家庭一站购 购物 呆萌价-傲娇好物,呆萌价格 购物https://apps.apple.com/cn/app/inkonote-ocr-reading-notes/id1155766361?l=hu&see-all=customers-also-bought-apps
5.购物平台app电脑版下载购物平台应用电脑版下载下载之家提供国内外最新的购物平台app电脑版下载,以及移动应用电脑版下载的安装和使用教程,更多手机购物平台应用电脑版尽在下载之家https://www.downza.cn/soft/gwpt-1450-138.html
6.c7app官网版c7app官网版最新版下载V.2.3.3c7官网app下载安装APP下载支持:64/128bit系统类型:c7官网app下载安装App官方下载(全站)最新版本IOS/安卓通用版v6.2.3官方入口|登录(?安全平台)玩家首先需要找到啵咕藏身的地方,这些动物大多出没在丛林、山脉、洞窟、湖边等地方,而有些稀有的啵咕则会出现在特定http://www.zhengfuxinfang.com/
7.海拍客CRMapp下载海拍客CRM最新版下载v3.21.3扫二维码下载 游戏简介游戏截图 海拍客CRM APP是移动版的办公软件。海拍客CRM APP功能齐全,可以随时添加、删除、更改,无论是文档、表格还是ppt。海拍客CRM APP可以让用户时不时通过手机在线工作。 软件介绍 海拍客内部员工所用CRM,旨在帮助海拍客销售人员高效便捷管理客户,实现销售过程中的精细化控制,提升线下销售效率。产品http://www.1666.com/soft/v358719.html
8.医博士app官方版下载医博士app官方最新版下载v5.2.16安卓版手机扫描下载 医博士app官方版是一款医学教育类的学习服务平台,里面所涵盖的功能非常丰富,有医师定考、大咖课堂、规培系统、职称考试、执考练吧等功能,适合职业医生、医学生、医学实习生使用,软件内的教学资源非常丰富,不管你是需要基础的医学理论知识,还是想找各种疑难杂症的治疗案例,这里都应有尽有,软件内还会不定期https://www.91rjz.com/pcsoft/188386.html
9.万达贷App官方版下载万达贷App正版下载安装v2.8.26同类推荐 更多> 小米有品ios版 电商购物 查看 万表网app 电商购物 查看 蜂助手app 电商购物 查看 极果苹果版 电商购物 查看 全球购骑士特权ios版 电商购物 查看 顺电网上商城app 电商购物 查看 闲鱼游戏交易平台app 电商购物 查看 东方甄选苹果版 电商购物 查看 海拍客app 电商购物 查看 https://m.hbdfst.com/dsgw/2727.html
10.顺丰同城急送APP下载顺丰同城急送APP v4.8.1安卓版运行环境:Android 软件语言:简体中文 软件分类:安卓软件/生活应用 授权方式:免费软件 软件大小:32.61MB 更新时间:2022-10-26 tag标签:顺丰同城急送APP软件简介 【软件介绍】 顺丰同城急送APP是国内顺丰公司研发打造的一款同城极速配送服务平台(易速软件园提供),用户可以在这里一键下单,http://www.yisusoft.com/down/2368.htm