博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android渠道包自动化验证 .
阅读量:5256 次
发布时间:2019-06-14

本文共 1782 字,大约阅读时间需要 5 分钟。

 前言:android应用每当发布一个版本时,往往需要打许多的渠道包,用于不同渠道的运营推广,传统的渠道包验证往往是安装某个apk包,然后打开eclipse,运行应用,查看其中的运行日志,看发送的请求中是否带有该渠道信息。

        如此这般,若有上百个渠道包,是没可能每个包都去验证的,且若后期新增的渠道,亦还需抽空去验证下apk渠道包,虽然并不是很耗时间,但常常被这样的事打断日常工作还是会让人烦恼的,而自动化验证渠道包就显得方便很多。

思路:点击android应用,然后查看日志,这样的过程完全可以利用robotium实现,编写用例实现点击操作,通过solo.waitForLogMessage()方法可以判断应用运行过程中是否出现了相应日志。

解决方案:

1.用ant打包过程中,命令apk包名时,使包名中带有渠道号

2.想办法将包名中的渠道号取出,并传递至android模拟器或android手机

3.robotium测试工程完成读取当前apk包的渠道号,并完成渠道号验证

4.与jenkins集成,完成自动化构建、上传至FTP、发送邮件等

 

具体步骤:

1.编写robotium测试用例,读取SD卡中带有渠道号的文件

2.Jenkins中执行以下shell命令

(

#进入测试工程目录

cd test_Robotium

#定义相关变量,其中某些变量为在jenkins中的参数化
APKPATH="$SRC_COID_APK_PATH"
ROBOAPKPATH="/usr/jenkins/jobs/Test/robotiumapk/RobotiumTest.apk"
CHANNELFILE="channel.txt"
APKFILE="apkfile.txt"
PREFIX="*_"
SUFFIX=".*"
#卸载测试工程包
adb uninstall com.company.package.test
#安装测试工程包
adb install $ROBOAPKPATH
#清空文件
: > $CHANNELFILE
: > $APKFILE
#for循环,取目录中的所有apk安装包
for FILEPATH in $APKPATH/*;do
echo $FILEPATH
echo $FILEPATH >> $APKFILE
apkname=$FILEPATH
#echo $apkname
#卸载、安装单个的android应用安装包
adb uninstall com.company.package
adb install "$apkname"
#获取路径下的apk包名、并截取渠道号
coidnameapk=${apkname##$PREFIX}
#echo $coidnameapk
coidname=${coidnameapk%$SUFFIX}
echo $coidname
: > $CHANNELFILE
#将渠道号保存到文件
echo $coidname >> $CHANNELFILE
#将带有渠道号内容的文件传至android模拟器或手机
adb push $CHANNELFILE /mnt/sdcard
#运行测试用例,自动验证渠道号
adb -s emulator-5554 shell am instrument -w -e class com.company.package.test.ChannelTest#test01_coidTest com.company.package.test/android.test.InstrumentationTestRunner
#copy原apk包,并删除原来apk包
cp "$apkname" $TEMP_COID_APK_PATH
rm -rf "$apkname"
#循环结束
done
#将所有验证过的apk包压缩打包,用于自动上传至FTP
cd $TEMP_COID_APK_PATH
zip $BUILD_ID.zip $TEMP_COID_APK_PATH/*.apk
mv $TEMP_COID_APK_PATH/*.apk $DEST_COID_APK_PATH
)

转载于:https://www.cnblogs.com/nan325/p/3296014.html

你可能感兴趣的文章
类和结构
查看>>
CSS3选择器(二)之属性选择器
查看>>
adidas crazylight 2018 performance analysis review
查看>>
typeset shell 用法
查看>>
python 之 循环语句
查看>>
心得25--JDK新特性9-泛型1-加深介绍
查看>>
[转]ceph网络通信模块_以monitor模块为例
查看>>
HDOJ 1754 I Hate It(线段树基本操作)
查看>>
latex tree
查看>>
安装NVIDIA驱动时禁用自带nouveau驱动
查看>>
HDU-1255 覆盖的面积 (扫描线)
查看>>
css3学习01
查看>>
【USACO】 奶牛会展
查看>>
ActiveMQ笔记之点对点队列(Point-to-Point)
查看>>
继承和多态
查看>>
Dijkstra+计算几何 POJ 2502 Subway
查看>>
修复IE不能执行JS的方法
查看>>
程序员究竟该如何提高效率zt
查看>>
Java虚拟机的功能
查看>>
希尔排序法(缩小增量法)
查看>>