zoukankan      html  css  js  c++  java
  • Robotuim自动化步骤梳理

    一、简介 

    robotium自动化测试过程 测试case以apk的形式在运行在安装待测应用的设备上,以instrument注入的方式调用待测apk

     待测apk包名(com.calculator)  测试case apk中 AndroidMainFest.xml

    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.calculator" />

    二、附上一份case

      

    /**
    * @author BlackStone
    *
    */
    public class MainTest extends ActivityInstrumentationTestCase2{

    /**
    * @param activityClass
    */


    public Solo solo;
    public Activity activity;
    private static Class launchActivityClass;

    private static String mainActivity="com.calculator.Main";
    //private static String packageName="com.calculator";

    static{
    try {
    launchActivityClass=Class.forName(mainActivity);
    } catch (ClassNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }


    @SuppressWarnings("unchecked")
    public MainTest(){
    super(launchActivityClass);
    // TODO Auto-generated constructor stub
    }


    /**
    * @ClassName: MainTest
    * @Description: TODO(这里用一句话描述这个类的作用)
    * @date 2017年8月9日 下午12:49:00
    *
    */

    /* (non-Javadoc)
    * @see android.test.ActivityInstrumentationTestCase2#setUp()
    */
    @Before
    protected void setUp() throws Exception {
    super.setUp();
    this.activity=this.getActivity();
    this.solo = new Solo(getInstrumentation(), getActivity());
    }

    /* (non-Javadoc)
    * @see android.test.ActivityInstrumentationTestCase2#tearDown()
    */

    @Test
    public void testDisplayWhiteBox() {

    float vFirstNumber = 10;

    float vSecondNumber = 10;

    float vResult = vFirstNumber * vSecondNumber;

    EditText vFirstEditText = (EditText) solo.getView("com.calculator:id/EditText01");
    solo.clearEditText(vFirstEditText);

    solo.enterText(vFirstEditText, String.valueOf(vFirstNumber));

    // AccessSecondvalue(edit-filed)andputtingSecondNumbervalueinit

    EditText vSecondEditText = (EditText) solo.getView("com.calculator:id/EditText02");

    solo.clearEditText(vSecondEditText);

    solo.enterText(vSecondEditText, String.valueOf(vSecondNumber));

    // ClickonMultiplybutton

    solo.clickOnButton("Multiply");

    assertTrue(solo.searchText(String.valueOf(vResult)));

    TextView outputField = (TextView) solo.getView("com.calculator:id/TextView01");

    // Assert to verify result with visible value

    assertEquals(String.valueOf(vResult), outputField.getText().toString());

    }

    @After
    protected void tearDown() throws Exception {
    solo.finishOpenedActivities();
    super.tearDown();

    }


    }

    三、打包用例工程步骤

     

    一、打包资源文件 生成R.java

    D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/aapt.exe p -m -J C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen -M C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar


    D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/aapt.exe p -m -J C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen -MC:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar


    二、处理AIDL文件

    javac -encoding utf-8 -target 1.7 -bootclasspath D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar;D:/apache-maven-3.2.3/repo/junit/junit/4.12/junit-4.12.jar;D:/workspace/AndroidCalculatorTest/libs/robotium-solo-5.6.3.jar -d C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/src/com/calculator/test/*.java C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/gen/com/calculator/test/R.java

    三、编译java文件生成 .class

    D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/build-tools/19.0.1/dx.bat --dex --output C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/classes.dex C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin


    四 。打包

    aapt package -f -A
    C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/assets -S C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/res -I D:/ADT/adt-bundle-windows-x86_64-20140702/sdk/platforms/android-19/android.jar C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/AndroidManifest.xml -F bin/test


    jarsigner -verbose -keystore C:/Users/ThinkPad/Desktop/HHH/me.keystore -storepass 123456 -keypass 123456 -signedjar C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-signed-me.apk C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator.apk me.keystore

    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore C:/Users/ThinkPad/Desktop/HHH/debug.keystore -storepass android -keypass android -signedjar C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/AndroidCalculatorTest-signed.apk C:/Users/ThinkPad/Desktop/AndroidCalculatorTest/bin/AndroidCalculatorTest.apk androiddebugkey

    jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -keystore C:/Users/ThinkPad/Desktop/HHH/debug.keystore -storepass android -keypass android -signedjar C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-resigned.apk C:/Users/ThinkPad/Desktop/HHH/AndroidCalculator-signed-me.apk androiddebugkey

    1.去除签名
    其实很简单,用WinRAR打开apk,找到META-INF文件夹,删除MANIFEST.MF之外的所有其他文件即可


    adb shell pm list instrumentation
    adb shell am instrument -w com.calculator.test/android.test.InstrumentationTestRunner

  • 相关阅读:
    asp.net ajax传递Json给aspx.cs后台 webmethod方法传递json
    新手 Redis 配置笔记(windows),附下载地址
    在 LINQ to Entities 查询中无法构造实体或复杂类型
    WebApi 4.0 默认方式不支持HttpGet 请求
    jQuery .Ajax Error Handling Function
    My97DatePicker 与 某个CSS冲突 ,导致无法显示
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系
    使用Autofac部署IIS6.0时未能加载文件或程序集“System.Core, Version=2.0.5.0...“
    Could not load file or assembly 'System.Core, Version=2.0.5.0 和autofac冲突的问题
    线程间操作无效: 从不是创建控件“textBox2”的线程访问它
  • 原文地址:https://www.cnblogs.com/heishi/p/8205134.html
Copyright © 2011-2022 走看看