51Testing软件测试论坛

标题: IOS Monkey 扩展了几个小功能 [打印本页]

作者: 巴黎的灯光下    时间: 2017-6-22 09:58
标题: IOS Monkey 扩展了几个小功能
说明在这里要感谢@utopia 分享的工具,原文:https://testerhome.com/topics/8025
我fork之后地址:https://github.com/xiaoluosun/iosMonkey
安装后试运行了下非常棒,扩展了几个小功能,准备每天跑起来
具体的安装部署就不说了,请移步到原文
新增功能:
1.新增了模拟器支持2.支持自定义运行时长3.每一步自动保存截图,并标注事件发生的位置(红色的“这里这里”文字,但保存截图偶尔会失败,正在找原因)1. 支持模拟器亲测了iOS10.3,其他版本未测试。。。。。。
  1. if(UDID.contains("-")) {
  2.     System.out.println("=======启动模拟器的app守护进程=======");
  3.     String catLog = "tail -n 3 -f ~/Library/Logs/CoreSimulator/" + UDID + "/system.log";
  4.     Process pp = Runtime.getRuntime().exec(catLog);
  5.     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(pp.getInputStream()));

  6.     String line = bufferedReader.readLine();
  7.         if(line.contains("testMacdeiMac")){
  8.             String str = line.split(" ")[4];
  9.             String curbundleid = str.split("\\[")[0];
  10.             if(curbundleid.contains("LuoJiFM-IOS")) {

  11.             } else if (curbundleid.contains("CoreSimulatorBridge")) {

  12.             } else {
  13.                 System.out.println("==当前启动的APP bundleid是【"+curbundleid+"】,非测试APP,重新呼起测试APP====");
  14.                 Runtime.getRuntime().exec("xcrun simctl launch booted " + BUNDLEID);
  15.             }
  16.         }

  17.     bufferedReader.close();

  18. }
复制代码
2. 支持自定义运行时长
  1. java -jar iosMonkey-1.0.jar -h
  2. -u:设备的UDID
  3. -t:运行时长(分),可选,默认180分钟
  4. -b:测试App的Bundle
  5. -port:macaca服务的端口,默认3456
  6. -proxyport:usb代理端口,默认8900
  7. 主要是在monkey运行的主方法和守护app的方法里做了限制
  8. long startTime = System.currentTimeMillis();

  9. .......

  10. long endTime = System.currentTimeMillis();
  11. if((endTime - startTime) > (Integer.parseInt(TIMING) * 60 * 1000)) {
  12.     System.out.println("已运行" + (endTime - startTime)/60/1000 + "分钟,任务即将结束");
  13.     break;
  14. }
复制代码
3.每一步自动保存截图,并标注事件位置模拟器截图失败率挺高的,截图会保存成0字节的文件,十次差不多要失败三四次,还没找到原因。
  1. if(UDID.contains("-")) {
  2.     try {
  3.         // 模拟器截图
  4.         Process pp = Runtime.getRuntime().exec("xcrun simctl io booted screenshot --type=jpeg " + screenshotPath);
  5.         pp.waitFor();
  6.     } catch (IOException e) {
  7.         e.printStackTrace();
  8.     } catch (InterruptedException e) {
  9.         e.printStackTrace();
  10.     }
  11. } else {
  12.     try {
  13.         // 真机截图(未测试)
  14.         Runtime.getRuntime().exec("idevicescreenshot -u " + UDID + " " + screenshotPath);
  15.     } catch (IOException e) {
  16.         e.printStackTrace();
  17.     }
  18. }
复制代码
在截图上标注事件的位置,就是在事件发生的坐标加了文字水印“这里这里”,代码不贴了,看截图
左上角,搜索的后面






作者: 乐哈哈yoyo    时间: 2017-6-22 10:06
我也学习下,支持最新版的macaca么,不少反馈新版报错,可能更新适配一下
作者: 巴黎的灯光下    时间: 2017-6-22 10:07
乐哈哈yoyo 发表于 2017-6-22 10:06
我也学习下,支持最新版的macaca么,不少反馈新版报错,可能更新适配一下

我昨天上午第一次安装的macaca,应该是最新版吧,我到公司看下版本




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2