从入门到放弃的机器人大战3.基于APK的自动测试

电脑杂谈  发布时间:2020-04-27 01:02:18  来源:网络整理

体质测试 源码_robotium无源码测试_网站源码测试

在基于APK的自动化测试过程中,要确保的一件事是要测试的APK必须具有与测试项目相同的签名. 如何确保两者具有相同的签名?具体的实现方法将在下面给出.

首先删除经过测试的APK的签名,然后使用调试密钥库对其重新签名. Eclipse还使用调试密钥库作为默认密钥库来对应用程序进行签名,以确保被测试和测试的应用程序具有相同的签名.

Eclipse的默认调试密钥库可以在此处设置,窗口->首选项-> Android->构建

clipboard

删除APK的签名,然后重新签名. 您可以通过re-sign.jar jar来完成. 下载地址:

robotium无源码测试_体质测试 源码_网站源码测试

链接: 密码​​: itjs

安装包的下载地址: 链接: 密码​​: rrya

双击以打开re-sign.jar,将要测试的apk拖动到界面中

clipboard[1]

clipboard[2]

网站源码测试_robotium无源码测试_体质测试 源码

点击“保存”按钮

clipboard[3]

过一会儿,您将获得该软件包的Package.name和Main活动

创建一个新的Android测试项目

clipboard[4]

robotium无源码测试_体质测试 源码_网站源码测试

该项目名为YrhxTest

clipboard[5]

选择此项目

clipboard[6]

创建一个新的libs目录,添加robotium的jar,然后将jar包添加到构建路径

robotium无源码测试_网站源码测试_体质测试 源码

创建一个新包com.yrhx.test,创建第一个测试类FirstYrhxTest,继承ActivityInstrumentationTestCase2,具体代码如下:

package com.yrhx.yrhxClient.test;
import com.robotium.solo.*;
import android.test.ActivityInstrumentationTestCase2;
@SuppressWarnings("rawtypes")
public class login_1 extends ActivityInstrumentationTestCase2 {
      private Solo solo;
      private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.yrhx.yrhxClient.activity.WelcomeActivity";
    private static Class<?> launcherActivityClass;
    static{
        try {
            launcherActivityClass = Class.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
        } catch (ClassNotFoundException e) {
           throw new RuntimeException(e);
        }
    }
      @SuppressWarnings("unchecked")
    public login_1() throws ClassNotFoundException {
        super(launcherActivityClass);
    }
      public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation());
        getActivity();
      }
       @Override
       public void tearDown() throws Exception {
        solo.finishOpenedActivities();
        super.tearDown();
      }
    public void testRun() {
        // Wait for activity: 'com.yrhx.yrhxClient.activity.WelcomeActivity'

        solo.waitForActivity("WelcomeActivity", 2000);
        // Wait for activity: 'com.yrhx.yrhxClient.activity.MainActivity'

        assertTrue("MainActivity is not found!", solo.waitForActivity("MainActivity"));
        // Click on 账户

        solo.clickOnView(solo.getView("rb_tab_user"));
        // Wait for activity: 'com.yrhx.yrhxClient.activity.NewLoginActivity'

        assertTrue("NewLoginActivity is not found!", solo.waitForActivity("NewLoginActivity"));
        // Scroll View to the right side

        solo.scrollViewToSide(solo.getView("vp_login"), Solo.RIGHT);
        // Click on 15629171568

        solo.clickOnView(solo.getView("et_user_mobile", 1));
        // Enter the text: '1562917xxxx'

        solo.clearEditText((android.widget.EditText) solo.getView("et_user_mobile", 1));
        solo.enterText((android.widget.EditText) solo.getView("et_user_mobile", 1), "1562917xxxx");
        // Click on Empty Text View

        solo.clickOnView(solo.getView("et_user_password"));
        // Enter the text: 'xxxxxx' ,input yours password

        solo.clearEditText((android.widget.EditText) solo.getView("et_user_password"));
        solo.enterText((android.widget.EditText) solo.getView("et_user_password"), "xxxxxx");
        // Click on 登 录

        solo.clickOnView(solo.getView("bt_login", 1));
        // Click on ImageView

        solo.clickOnView(solo.getView("ib_exit"));
    }
}

通过adb install安装重新签名的APK

将AndroidMainfest.xml中的targetToolage工具修改为从上面的re-sign.jar获得的包名称,即com.yrhx.yrhxClient

clipboard[7]

用鼠标右键单击FirstQunarTest,选择Run As-> Android JUnit Testrobotium无源码测试,注意屏幕,然后将启动被测应用程序.

Robotium支持基于源的测试和基于APK的测试. 实际上,原理是相同的,只要被测应用程序与被测应用程序具有相同的签名即可. 如果有源代码,建议进行基于源的测试,因为您可以直接轻松地在源代码中引用一些现成的方法来帮助进行自动化测试robotium无源码测试,控件定位也更加方便,您可以直接引用源R文件的ID如果控件的显示文本已更改,但其ID保持不变,如果按ID定位,则此时无需修改测试代码. 如果要替换一些手动测试而不使用源代码,仍然可以使用基于APK的测试,但是灵活性可能不如基于源代码的方法好.


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-190143-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...