- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为一名对 java 没有任何深入了解的技术测试人员,我有一个关于 robotium 和 ActivityInstrumentationTestCase2 的问题。我已经使用 eclipse 和 robotium 创建了一个测试用例。它有效,我可以将其作为 junit 测试执行,也可以从真实设备上的命令行执行。
我现在想将这个 robotium/solo 测试用例移动到我们现有的测试框架中,其中每个类/tescase 都由“abstractchecker”扩展。下面是我们的一个网络测试用例的示例
package ipoMonitor.checkers;
import ipoMonitor.CheckInfo;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import java.sql.Connection;
import static org.junit.Assert.assertTrue;
public class EmConsoleChecker extends AbstractChecker {
public EmConsoleChecker(CheckInfo curCheck, Connection con, WebDriver driver) {
super(curCheck, con, driver);
}
@Override
public void runCheck() {
curCheck.subCheckName = "Homepage";
driver.get(curCheck.baseUrl);
assertTrue(driver.findElement(By.cssSelector("BODY")).getText()
.matches("^[\\s\\S]*Login[\\s\\S]*$"));
WriteLog(curCheck, con, " OK");
}
是否有可能以某种方式保持此标准并让 robotium 测试类作为方法而不是类运行?如果是这样,代码会是什么样子?
我原来用extsolo记录的robotium测试用例是这样的
public class Test extends ActivityInstrumentationTestCase2<Activity> {
final String[] proj = {"*"};
private static final String LAUNCHER_ACTIVITY_CLASSNAME = "com.somecompany.androidsmsapp.MainActivity";
private static Class<?> launchActivityClass;
static {
try {
launchActivityClass = Class.forName(LAUNCHER_ACTIVITY_CLASSNAME);
} catch (ClassNotFoundException e) {
throw new RuntimeException(e);
}
}
private Solo solo;
@SuppressWarnings("unchecked")
public Test() {
super((Class<Activity>) launchActivityClass);
}
@Override
public void setUp() throws Exception {
solo = new Solo(getInstrumentation(), getActivity());
}
@Override
public void tearDown() throws Exception {
solo.finishOpenedActivities();
super.tearDown();
}
public void testRecorded() throws Exception {
try {
Log.i("assert", "---------------NEW RUN-------------------");
Log.i("assert", "Starting SendSMS");
solo.waitForActivity("MainActivity");
// Loads of solo commands executed here
.....
.....
} catch (AssertionFailedError e) {
throw e;
} catch (Exception e) {
throw e;
}
}
我注意到当你在eclipse中创建一个robotium测试用例时,会自动添加库和类路径容器。有没有人有一个他们可以分享的工作示例或一个链接?我已经在网上搜索了很长时间,但没有找到任何解决方案。感谢您的帮助。
最好的问候,马蒂亚斯
最佳答案
您的 AbstractChecker
正在执行 Selenium test ,您的 ActivityInstrumentationTestCase2
执行 Android Instrument Test .
根据您提供的信息,实际上不可能将两者结合起来,即使是我也不认为您会得到预期的结果。
您应该查看 AbstractChecker
框架,看看您需要什么功能。抽象并将其提取到一个类中,您可以将其用作 ActivityInstrumentationTestCase2
的组合。
Java does not support multiple inheritance所以你不能做
测试扩展了 AbstractChecker 和 ActivityInstrumentationTestCase2 {
一个好的编程方法是prefer composition over inheritance , 这样你就不会陷入这种情况,你可以编写 Checker
和 TestCase
的 Test
。
ActivityInstrumentationTestCase2
为您做了什么已经不是什么 secret 了 here is the source看一看。
如果你想考虑这样的组合:
public class Test extends ActivityInstrumentationTestCase2 { // Forced extension due to library
private final Checker checker;
public Test(){
super((Class<Activity>) launchActivityClass);
checker = SomeFactory.getChecker();
}
// do your tests and use your checker
}
所以很抱歉,我认为您的问题的答案是否定的,但希望上面有一些关键字可以帮助您进行更多研究。
关于java - Robotium 测试用例作为一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21406751/
我想知道是否可以运行我用 Robotium 编写的脚本,以便在任何地方的设备云(如 Perfectomobile 或 Device)中工作。 提前致谢。 最佳答案 testdoid允许您在云中运行ro
我正在尝试使用 Robotium 验证 View 中的一些数据。 我为此编写了以下代码: NegativeExpected=false; solo.clickOnButton(0);
我正在尝试使用 Robotium 验证 View 中的一些数据。 我写了下面的代码: NegativeExpected=false; solo.clickOnButton(0);
我有一个日期选择器字段,我想在其中设置日期(月、日和年的选择器每个字段都带有 + 和 -),但不知道如何在 Robotium 中执行此操作。我尝试使用 solo.setDatePicker(int,
我正在尝试在 Android 上测试日期选择器场景。我有一个日期选择器,当我单击一个 TextView (id 为 v)时,它会出现,上面有一个标签以及提示“输入日期”。 问题是我试图模拟点击 Tex
我只是想用 Robotium 测试一个安卓应用程序。我遇到的问题是我无法重新签署应用程序以在 Eclipse 中启动测试项目。我已按照 http://code.google.com/p/robotiu
如何使Robotium单击页面中的特定链接? 最佳答案 您应该尝试单击链接中的 anchor 文本。 例如,如果链接显示www.google.com,则可以执行以下操作: this.solo.clic
我在 Robotium 中编写了一个脚本,它工作得很好,但是我们的应用程序的设计方式是它必须与无法辞职的 native android 应用程序进行交互。我必须单击 native 应用程序上的一个按钮
每次使用 Robotium 测试应用程序时,我都需要导航到测试项目属性并将其添加到项目中,每当我配置新的测试项目时,我每次都需要添加它 还有其他方法可以安装 Robotium 并在我的测试项目中使用默
我需要有关 Robotium 脚本的帮助。我的情况类似于“在我的 AUT 中,当前日期可用“2014 年 1 月 30 日”。因此我需要验证其是否为当前日期。 最佳答案 您可以将该字符串解析为日期并将
我使用 robotium 3.5.1 在我的 android 程序中创建了简单测试,代码如下: protected void setUp() throws Exception { solo =
我正在尝试在演示应用程序上运行 Robotium 测试套件,但在将测试应用程序推送到设备后,android maven 插件在 mvn install 失败,因为它找不到目标应用程序。 错误是 Tes
我正在尝试使用 Robotium 在 Linux 服务器上测试我的 Android 应用。 lt.socialheat.android.tests.SocialHeatTest: Failure in
作为一名对 java 没有任何深入了解的技术测试人员,我有一个关于 robotium 和 ActivityInstrumentationTestCase2 的问题。我已经使用 eclipse 和 ro
我正在使用适用于 Android 的 Robotuim。有谁知道如何设置具体测试用例的运行次数? 最佳答案 只需在测试用例定义上方添加以下行: @FlakyTest(tolerance=3) 你的测试
所以我上周对我的 Android 应用程序进行了更改,无意中将一些按钮绘制到了屏幕之外。 我可以在 Eclipse 中看到屏幕外的对象,并且没有抛出任何错误,但是当应用程序运行时,按钮不可见(屏幕外)
我是 Robotium 测试的新手,我想测试以下场景: 1.) 启动应用程序做一些事情。2.) 按主页按钮。(关闭应用程序)3.) 恢复应用程序并测试是否一切正常。 我的问题是如何实现第 2 步和第
我是 robotium 的新手,我正在尝试编写一个快速但粗略的脚本来运行应用程序中的所有屏幕。 我的问题主要与应用程序中的“主页按钮”有关。我已经尝试了很多选项,但我似乎无法让它点击那里,除了索引,这
我的应用程序测试类很少。如果它持续超过 4 秒,我想测试失败。我的代码破坏了测试,但在某些情况下它不执行下一个测试类。 我写的时候(跟timeout无关,只是fail()的一个例子): public
当我尝试与蓝牙设备配对时,出现带有 PIN 的系统确认对话框。有按钮“取消”和“确定”。但是我不能用 Robotium 点击它们。如何在 Robotium 中使用 Android 操作系统对话框?谢谢
我是一名优秀的程序员,十分优秀!