gpt4 book ai didi

使用 Robotium 进行 Android Studio 黑盒测试

转载 作者:太空宇宙 更新时间:2023-11-03 11:06:42 28 4
gpt4 key购买 nike

我正在尝试使用 Robotium 为我只有 APK(无源代码)的应用程序编写黑盒测试。文档很差并且仅限于 Eclipse。我想弄清楚如何在 Android Studio 上编写此类测试。到目前为止,我已经创建了一个新项目并修改了依赖项的 gradle 文件

apply plugin: 'com.android.application'

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
applicationId "com.crysis.myautomatedtest"
minSdkVersion 18
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:22.2.1'

compile 'com.jayway.android.robotium:robotium:5.4.1'
compile 'com.jayway.android.robotium:robotium-solo:5.4.1'
}

然后我编写测试并将它们放在主文件夹中(因为这是一个测试外部 apk 的仅测试项目)

package com.crysis.myautomatedtest;

import android.test.ActivityInstrumentationTestCase2;
import android.widget.EditText;

import com.robotium.solo.Solo;

public class RobotiumTest extends ActivityInstrumentationTestCase2 {
private static final String LAUNCHER_ACTIVITY_FULL_CLASSNAME = "com.external.apptotest.LoginActivity";
private static Class launcherActivityClass;
static {
try {
launcherActivityClass = Class
.forName(LAUNCHER_ACTIVITY_FULL_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
public RobotiumTest() throws ClassNotFoundException {
super(launcherActivityClass);
}
private Solo mDevice;

@Override
public void setUp() throws Exception {
mDevice = new Solo(getInstrumentation(), getActivity());
}

@Override
public void tearDown() throws Exception {
mDevice.finishOpenedActivities();
}

public void testLogin() {
mDevice.clearEditText((EditText)mDevice.getView("id/username"));
mDevice.enterText((EditText) mDevice.getView("id/username"), "Test");

assertTrue("Problem asserting text", mDevice.searchText("Test"));
}
}

据我了解,为了找到应用程序,我必须修改 list 并指向 targetPackage。我这样试过

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.crysis.myautomatedtest">

<application android:allowBackup="true" android:label="@string/app_name"
android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme">

</application>

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

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

</manifest>

但是那一行有一个错误,指出

Cannot resolve symbol 'com.external.apptotest' (that is the package of the app to test installed on the device) Validates resource references inside Android XML file

显然我遗漏了什么。如何处理要在黑盒测试中测试的 APK?如何给 Robotium 测试什么提供引用?

最佳答案

您需要在build.gradle 文件中指定测试应用。在 defaultConfig 部分,添加

testApplicationId "com.external.apptotest"

关于使用 Robotium 进行 Android Studio 黑盒测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32121487/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com