zoukankan      html  css  js  c++  java
  • android渠道包自动化验证 .

     前言: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
    )

  • 相关阅读:
    MyGame--java语言编写的打飞机游戏(附源码下载)
    调用MyFocus库,简单实现二十几种轮播效果
    aBowman >>可以运用到自己博客上的小插件
    css通用小笔记03——浏览器窗口变小 div错位的问题
    css通用小笔记02——浮动、清除(三个例子)
    css通用小笔记01——导航背景
    PHP强制转换类型
    数据库---查询语句(三):高级查询
    数据库---T-SQL语句:查询语句(二)
    数据库---T-SQL语句(一)
  • 原文地址:https://www.cnblogs.com/nan325/p/3296014.html
Copyright © 2011-2022 走看看