IOS Monkey 扩展了几个小功能
新增功能:1.新增了模拟器支持
2.支持自定义运行时长
3.每一步自动保存截图,并标注事件发生的位置(红色的“这里这里”文字,但保存截图偶尔会失败,正在找原因)
1. 支持模拟器
亲测了iOS10.3,其他版本未测试。。。。。。
if(UDID.contains("-")) {
System.out.println("=======启动模拟器的app守护进程=======");
String catLog = "tail -n 3 -f ~/Library/Logs/CoreSimulator/" + UDID + "/system.log";
Process pp = Runtime.getRuntime().exec(catLog);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pp.getInputStream()));
String line = bufferedReader.readLine();
if(line.contains("testMacdeiMac")){
String str = line.split(" ");
String curbundleid = str.split("\\[");
if(curbundleid.contains("LuoJiFM-IOS")) {
} else if (curbundleid.contains("CoreSimulatorBridge")) {
} else {
System.out.println("==当前启动的APP bundleid是【"+curbundleid+"】,非测试APP,重新呼起测试APP====");
Runtime.getRuntime().exec("xcrun simctl launch booted " + BUNDLEID);
}
}
bufferedReader.close();
}2. 支持自定义运行时长
java -jar iosMonkey-1.0.jar -h
-u:设备的UDID
-t:运行时长(分),可选,默认180分钟
-b:测试App的Bundle
-port:macaca服务的端口,默认3456
-proxyport:usb代理端口,默认8900主要是在monkey运行的主方法和守护app的方法里做了限制
long startTime = System.currentTimeMillis();
.......
long endTime = System.currentTimeMillis();
if((endTime - startTime) > (Integer.parseInt(TIMING) * 60 * 1000)) {
System.out.println("已运行" + (endTime - startTime)/60/1000 + "分钟,任务即将结束");
break;
}3.每一步自动保存截图,并标注事件位置
模拟器截图失败率挺高的,截图会保存成0字节的文件,十次差不多要失败三四次,还没找到原因。
if(UDID.contains("-")) {
try {
// 模拟器截图
Process pp = Runtime.getRuntime().exec("xcrun simctl io booted screenshot --type=jpeg " + screenshotPath);
pp.waitFor();
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
} else {
try {
// 真机截图(未测试)
Runtime.getRuntime().exec("idevicescreenshot -u " + UDID + " " + screenshotPath);
} catch (IOException e) {
e.printStackTrace();
}
}在截图上标注事件的位置,就是在事件发生的坐标加了文字水印“这里这里”,代码不贴了,看截图
左上角,搜索的后面
https://testerhome.com/uploads/photo/2017/36905220-8516-4f68-95e9-d3fe81f3b853.jpeg!large
我也学习下,支持最新版的macaca么,不少反馈新版报错,可能更新适配一下 我昨天上午第一次安装的macaca,应该是最新版吧,我到公司看下版本
页:
[1]