现在的很多业务都需要加签解签的,可以出一个 beanshell 的第二版。
@newber 一般 anr 的话,直接搜 anr 就行了,或者严格点 anr in,这样过滤。如果是 java crash 的话,用 “fatal” 或者 “fatal exception”, 还有一些是 native crash 的和 reboot 的我也不是很确定。
不是,自己封装的。使用这个也是一样的: Runtime.getRuntime().exec("am start -n com.baidu.wallet/com.baidu.wallet.home.MainActivity")
package com.alarm.test;
/**
* Created by yakamoz on 16/10/11.
*/
import android.app.Instrumentation;
import android.support.test.InstrumentationRegistry;
import android.support.test.uiautomator.By;
import android.support.test.uiautomator.UiDevice;
import android.support.test.uiautomator.UiObject2;
import android.support.test.uiautomator.UiWatcher;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.util.regex.Pattern;
public class TestAlarm{
public static Instrumentation instrumentation;
public static UiDevice mDevice;
@Before
public void setUp(){
instrumentation = InstrumentationRegistry.getInstrumentation();
mDevice = UiDevice.getInstance(instrumentation);
mDevice.registerWatcher("alarmWatcher", alarmWatcher);
}
@After
public void tearDown() {
mDevice.removeWatcher("alarmWatcher");}
@Test
public void testAlarm() {
//TODO 打开闹钟
//TODO 判断是否存在闹钟,如果存在,清空闹钟
//TODO 创建一个当前始终后两分钟的闹钟,音量调节可以用mDevice.pressKeyCode(25)实现;
//TODO 你可以等待2分钟,或者做其他操作,不会影响UiWatcher的触发
}
public final UiWatcher alarmWatcher = new UiWatcher() {
public boolean checkForCondition() {
UiObject2 alarmWindows = mDevice.findObject(By.text(Pattern.compile(".*闹钟.*", Pattern.DOTALL)));
if (alarmWindows != null) {
//TODO 根据实际情况关闭闹钟
return true;
} else {
return false;
}
}
};
}
提供另一个比较简单的方案,adb install PATH*.apk
https://github.com/appium/appium/issues/6569 this post may help you.
试试连个 *** 吧。