smart_monkey 0.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 654c78960662ad050551e259c70eb156943f1a5b
4
- data.tar.gz: e9d4cd8bf1d0352594231fd885cb869877ad534d
3
+ metadata.gz: 1a388af57aa441c073b1f2f719f430d9f0bd68b3
4
+ data.tar.gz: a3c437b1dc27134339ce87084fe7a5a8adcbfdbc
5
5
  SHA512:
6
- metadata.gz: a1cf9150d136402f4381625ad51370f46dc0b8d958b5a2f9bfbf025f370e22805a9a53eb0a7de9d61b3490470e30e6df01a6be37870ac2f52d087e014a7e6362
7
- data.tar.gz: 566dc5f0252c36409c7dbcc88278f59b3501e74232c75daafae59e6d571902303309ffcd75a28ed9c53519971f75afd8a9ab959ccbc44478ea9e398d71680152
6
+ metadata.gz: f98e149fbf8e43947fbb20b8eb084fedb03e76259a1df34cd35bdf7f6887bf2efa29dde77a322e9b8b6f093bdcf3aeb1f72b9cbf31fd9fb084a53dac9b4f441d
7
+ data.tar.gz: 64269835c8a2b79cdd25c443549103dcbc2e7e0195d19561c57d8ae8abdbaf33e0c7c5e37481989bba9f0e29832bbde1b0eefbb094873e7bb2144f5b5c8f6812
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2
1
+ 0.2.1
@@ -424,7 +424,8 @@ module UIAutoMonkey
424
424
  # if extend_javascript_flag
425
425
  # js = File.read(extend_javascript_path) + "\n" + js
426
426
  # end
427
- # File.open(ui_custom_path, 'w') {|f| f.write(js)}
427
+ envs_str="UniqueDeviceID=\"#{device}\";"
428
+ File.open(File.join(result_base_dir,"Env.js"), 'w') {|f| f.write(envs_str)}
428
429
  FileUtils.copy(config_custom_path, result_base_dir)
429
430
  FileUtils.copy(ui_auto_monkey_original_path, result_base_dir)
430
431
  FileUtils.cp_r(ui_hole_handler_original_path, result_base_dir)
@@ -527,7 +528,7 @@ module UIAutoMonkey
527
528
 
528
529
  def rm_unused_imgs(used_imgs, dir)
529
530
  used_strs = used_imgs.join("\\|")
530
- `cd "#{dir}";find . -type 'f' -name '*.png' | grep -v "#{used_strs}" | xargs rm`
531
+ `cd "#{dir}";find . -type 'f' -name '*.png' | grep -v "#{used_strs}" | xargs -I{} rm {}`
531
532
  end
532
533
 
533
534
  def decode_latest(num=10, drop_useless_img, drop_dir)
@@ -19,10 +19,10 @@
19
19
  // THE SOFTWARE.
20
20
 
21
21
  "use strict";
22
+ #import "Env.js"
22
23
 
23
24
  function UIAutoMonkey() {
24
25
 
25
-
26
26
  this.config = {
27
27
  //run either by minutesToRun or numberOfEvents. Only one of these can set. (To use minutes you can use config.numberOfEvents = 0)
28
28
  //minutesToRun = 60 * 8; //sample to run for 8 hours.
@@ -101,7 +101,10 @@ function UIAutoMonkey() {
101
101
  multipleTaps: 0.05,
102
102
  multipleTouches: 0.05,
103
103
  longPress: 0.05
104
- }
104
+ },
105
+
106
+ targetBundleId: UIATarget.localTarget().frontMostApp().bundleID(),
107
+
105
108
 
106
109
 
107
110
  // Uncomment the following to restrict events to a rectangluar area of
@@ -255,6 +258,9 @@ UIAutoMonkey.prototype.RELEASE_THE_MONKEY = function() {
255
258
  UIALogger.logDebug(this.config.minutesToRun - elapsedMinutes + " minutes left to run.")
256
259
  }
257
260
  }
261
+
262
+ if (this.target().frontMostApp().bundleID() !== this.config.targetBundleId) this.reLaunchApp();
263
+
258
264
  this.triggerRandomEvent();
259
265
  if (anrFingerprintFunction && (i % anrEventsBetweenSnapshots == 0)) this.anrCheck(i, anrFingerprintFunction, anrDebug);
260
266
  // if (this.config.screenshotInterval) this.takeScreenShotIfItIsTime();
@@ -297,7 +303,9 @@ UIAutoMonkey.prototype.anrCheck = function(i, fingerprintFunction, debugFlag){
297
303
  this.anrMaxElapsedCount = Math.max(this.anrMaxElapsedCount, elapsedCount);
298
304
  UIALogger.logDebug("UIAutoMonkey:anrCheck(): snapshot == with elapsed count=" + elapsedCount);
299
305
  if (elapsedCount > this.config.anrSettings.eventsBeforeANRDeclared) {
300
- UIALogger.logDebug("duplicate snapshot detected" + this.anrSnapshot);
306
+ if (this.config.anrSettings.debug){
307
+ UIALogger.logDebug("duplicate snapshot detected" + this.anrSnapshot);
308
+ }
301
309
  throw "anr exception-identical after " + elapsedCount + " events";
302
310
  };
303
311
  };
@@ -459,6 +467,14 @@ UIAutoMonkey.prototype.takeScreenShotIfItIsTime = function() {
459
467
  // }
460
468
  var filename = "monkey-" + (new Date()).toISOString().replace(/[:\.]+/g, "-");
461
469
  this.target().captureScreenWithName(filename);
470
+ if (this.target().frontMostApp().bundleID() !== this.config.targetBundleId) this.reLaunchApp();
471
+ };
472
+
473
+ UIAutoMonkey.prototype.reLaunchApp = function() {
474
+ UIALogger.logWarning("Target app go outside, Re-launch tested app via UIAutoMonkey.");
475
+ var result = this.target().host().performTaskWithPathArgumentsTimeout("/usr/bin/which", ["idevicedebug"], 5);
476
+ var idevicedebug_original_path = result.stdout.trim();
477
+ this.target().host().performTaskWithPathArgumentsTimeout(idevicedebug_original_path, ["-u", UniqueDeviceID, "run", this.config.targetBundleId, ">/dev/null", "2>&1", "&"], 5);
462
478
  };
463
479
 
464
480
  // Commodity function to call RELEASE_THE_MONKEY directly on UIAutoMonkey
@@ -67,7 +67,7 @@ var aFingerprintFunction = function() {
67
67
  monkey.config.anrSettings.fingerprintFunction = false;//false | aFingerprintFunction
68
68
  monkey.config.anrSettings.eventsBeforeANRDeclared = 18; //throw exception if the fingerprint hasn't changed within this number of events
69
69
  monkey.config.anrSettings.eventsBetweenSnapshots = 8; //how often (in events) to take a snapshot using the fingerprintFunction
70
- monkey.config.anrSettings.debug = true; //log extra info on ANR state changes
70
+ monkey.config.anrSettings.debug = false; //log extra info on ANR state changes
71
71
 
72
72
  // Release the monkey!
73
73
  monkey.RELEASE_THE_MONKEY();
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_monkey
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - vigossjjj