gpt4 book ai didi

java - Android -- 如何检测 Monkey Tool 是否已完成工作?

转载 作者:行者123 更新时间:2023-11-28 21:28:50 24 4
gpt4 key购买 nike

我正在开发一个应用程序,主要是对正在生产的设备执行压力/功能测试。

应用程序应该等到 Monkey Tool 完成工作,以便它可以生成一个 .log 文件并通知 UI 测试。我一般没有问题,但我需要知道 Monkey Tool 是否已完成测试。

我在这里查看了主要文档:Monkey Android Documentation .

我也有时间查看 Monkey 源代码。一个例子是:Monkey.java

不幸的是,我真的找不到任何关于检测 Monkey 完成工作的时刻的线索。

所以真正的问题是:

当 Monkey Tool 完成 UI 测试时,是否有检测或获取信息的方法?

---[编辑]---

我尝试了一种业余解决方案,方法是使用 shell 检查正在运行的 Monkey 进程并读取 BufferedReader 的输出。它有效,但由于它不是最佳解决方案,我仍在等待更专业的答案(如果存在)。提前致谢。

这是我试过的代码:

boolean is_monkey_running = true;
while(is_monkey_running) {
try {
//checking process state
Process process = Runtime.getRuntime().exec("ps");
BufferedReader buffered_reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));

StringBuilder log = new StringBuilder();
String line = "";

while ((line = buffered_reader.readLine()) != null) {
log.append(line);
}

if (log.indexOf("com.android.commands.monkey") == -1) {
//Monkey process has been finished.
Log.i("AATS", GET_DATE_AND_TIME() + "Monkey has finished testing.");
is_monkey_running = false;
}

else {
//Monkey is still running.
WAIT_N_MILISECONDS(1000);
}
}
catch (IOException e) {
}
}

最佳答案

好的。我想这是迄今为止我尝试过的最好的解决方案。发布它以便它可以帮助任何感兴趣的人。仍然开放任何更清晰的答案。

代码如下:

    //example String monkey_options = "--ignore-crashes --throttle 500 -v 500"; 
try {
Process monkey_process = new ProcessBuilder().command("monkey", monkey_options).start();
monkey_process.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}

编辑:您的应用程序必须作为系统 apk 运行才能在应用程序内调用猴子进程

关于java - Android -- 如何检测 Monkey Tool 是否已完成工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30979893/

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