Android渠道包自动化验证

 随着产品发布越来越快,渠道包越来越多,渠道包自动化验证重要性逐渐凸显出来,需要将大把的人力从中解放出来,且避免人工失误造成的验证不完全;
  最近客户端产品尝试使用渠道包自动化测试的方法,这里说说我们目前的做法;
  需求:验证渠道包的 渠道号、使用到的URL地址,以及简单冒烟;
  一、验证渠道号
  三个方法,根据产品自身的情况而定;
  1. 通过反编译apk包获得 渠道号
  说明:apk的 res/xml下存放渠道号信息,如存放在 channel.xml文件里
  (1)使用apktool工具,反编译apk,从 channel.xml中取出 该包的渠道号;
  (2)从apk文件名称截取出渠道号;
  两两进行对比;
  2. 从logcat获取渠道号信息
  说明:客户端启动时,打印渠道号信息
  (1)启动客户端,从logcat日志中,截取出渠道号;
  (2)从apk文件名截取出渠道号;
  两两进行对比;
  具体渠道号信息如何存放,可以同项目组进行讨论商定。
  3.(1)编写单元测试用例(可以用athrun框架),读取出渠道号;启动客户端,通过命令执行该测试用例,即可获得渠道号
    (2)从apk文件名截取出渠道号;两两进行对比;
  二、URL地址验证
  两个方法,类似签名的渠道号验证:通过反编译获得URL,或者通过启动客户端时,截取logcat日志获得;
  当然事先要准备期望的URL地址列表;
  验证URL的目的,是因为,发布apk使用的现网地址与测试环境地址是不同的,要确保打出的各渠道包的URL地址使用是否正确。
  三、简单冒烟
  目的:验证各渠道包基本功能是否可用,根据实际情况写脚本;
  下面介绍2个方法:
  1. 使用monkeyrunner验证简单功能;
  2. 通过athrun编写的测试用例执行,但该方法不一定对所有产品试用,如果渠道包的代码经过混淆,那么无法使用;
  其实如果项目组里的自动化做得比较好的话,这里的冒烟脚本可以直接使用日常使用的冒烟脚本   

最新内容请见作者的GitHub页:http://qaseven.github.io/

   

时间: 2024-10-22 09:21:27

Android渠道包自动化验证的相关文章

为Android应用增加渠道信息 自动化不同渠道的打包过程的使用详解_Android

为什么需要在应用程序中增加渠道信息? Android应用的发布需要面对各种各样的市场,我们称之为渠道.有的时候,我们需要知道应用是从哪个渠道下载的.比如,我们可能需要统计哪些市场带来的用户量比较大.再比如,我们可能有一些盈利需要和具体的渠道进行分成.这些都是统计渠道的信息. 一般如何在应用中加入渠道信息? 为了统计渠道信息,就不得不在程序的某个地方加入渠道的信息,然后针对不同的渠道打不同的包.一般可以在Manifest文件中加入渠道编号,而不直接写在代码中.这样做的好处是,可以针对不同渠道,自动

[Android]中文API(三)android.account包下的那些类

账户管理 Android2.0中加入了一个新的包android.accounts,该包主要包括了集中式的账户管理API,用以安全地存储和访问认证的令牌和密码,比如,我们的手机存在多个账户,每个账户下面都有不同的信息,甚至每个账户都可以与不同的服务器之间进行数据同步(例如,手机账户中的联系人可以是一个Gmail账户中的通讯录,可联网进行同步更新).下面首先来看看android.accounts包提供了哪些功能,如表9-3所示. 表9-3  android.accounts包的功能描述 光看这些介绍

Android渠道打包技术小结

导读 本文对比了渠道4种渠道打包方式: 与iOS的单一渠道(AppStore)不同,Android平台在国内的渠道多入牛毛.以我们的App为例,就有27个普通渠道(应用宝,百度,360这种)和更多的推广专用渠道.我们打包技术也经过了若干次的改进. 1.利用Gradle Product Favor打包 android {      productFlavors {          base {              manifestPlaceholders = [ CHANNEL:"0&qu

Android实现短信验证功能的代码_Android

在我们现在开发APP过程中,当用户注册时,短信验证是必不可少的操作,这里我们就是用一个免费的第三方短信验证SDK-MOP 首先看下效果图 获取AppKey和AppSecret 首先进入官网,登录(没有帐号的自己去注册一个).鼠标移动到右侧头像处,点击进入后台. 官网首页 选择SecurityCodeSDK. 选择短信SDK 进入后台页面后,点击添加按钮.填写应用名称(这个可以随便写).选择Android后,点击添加即可.   添加应用 添加成功后,就会进入以下界面,在这里就可以看到刚刚申请成功的

android开发-Android导入包出错 import com.googlecode.

问题描述 Android导入包出错 import com.googlecode. ![![图片说明](http://img.ask.csdn.net/upload/201503/17/1426569272_675412.png )图片说明](http://img.ask.csdn.net/upload/201503/17/1426569264_816547.png)怎么解决这个 解决方案 右键点击 Project ---> Properties ---> Android ---> 选择

在Eclipse添加Android兼容包( v4、v7 appcompat )

昨天添加Android兼容包,碰到了很多问题,在这里记录一下,让后面的路好走. 如何选择兼容包, 请参考Android Support Library Features(二) 一.下载Support Library 方法1:右击项目→选择Android Tools→Add Support Library- 方法2: 通过SDK Manager获取Support Library: 1.打开Android SDK Manager 2.在SDK Manager窗口,滚动到Package List的末尾

android jar包会不安全吗

问题描述 android jar包会不安全吗 会不会jar包里的源码可以获取你应用的数据,或者获取你的源代码? 解决方案 这分为两个层面说,一个是在没有利用任何潜在的系统漏洞的情况下,那么你可以通过权限控制使得程序只能访问授权的数据. 但是任何系统都可能有漏洞,最坏的情况下,恶意程序可以访问你的机器上的一切数据,并且在攻破你密码的情况下访问在线的数据.

api-安卓官方最新的API里为何只能找到Intent类,却找不到android.intent.*包?

问题描述 安卓官方最新的API里为何只能找到Intent类,却找不到android.intent.*包? 安卓官方最新的API里(链接http://developer.android.com/reference/packages.html)为何只能找到Intent类,却找不到android.intent.*包?可在AndroidManifest.xml里面总是有: 这样的过滤语句. 这里面的intent从何而来,而Intent类是在android.content下的,这之间到底有何关联及区别?

混淆 空指针-Android混淆 包空指针的错误

问题描述 Android混淆 包空指针的错误 解决方案 如果是混淆了就报,不混淆不报, 可用jd-gui查看相应jar包下的代码哪些已混淆过,在proguard.cfg里将其屏蔽即可(-keep) 解决方案二: 这个报错是说你在运行AsyncTask的方法中有NULL