(#3379) - add attachment perf test
diff --git a/tests/performance/index.js b/tests/performance/index.js
index 9e7b9ad..84abf2f 100644
--- a/tests/performance/index.js
+++ b/tests/performance/index.js
@@ -11,6 +11,7 @@
 
   require('./perf.basics')(PouchDB, opts);
   require('./perf.views')(PouchDB, opts);
+  require('./perf.attachments')(PouchDB, opts);
 }
 var startNow = true;
 if (global.window && global.window.location && global.window.location.search) {
diff --git a/tests/performance/perf.attachments.js b/tests/performance/perf.attachments.js
new file mode 100644
index 0000000..51a284a
--- /dev/null
+++ b/tests/performance/perf.attachments.js
@@ -0,0 +1,60 @@
+'use strict';
+
+function randomBrowserBlob(size) {
+  var buff = new ArrayBuffer(size);
+  var arr = new Uint8Array(buff);
+  for (var i = 0; i < size; i++) {
+    arr[i] = Math.floor(65535 * Math.random());
+  }
+  return new Blob([buff], {type: 'application/octet-stream'});
+}
+
+function randomBuffer(size) {
+  var buff = new Buffer(size);
+  for (var i = 0; i < size; i++) {
+    buff.write(
+      String.fromCharCode(Math.floor(65535 * Math.random())),
+      i, 1, 'binary');
+  }
+  return buff;
+}
+
+
+function randomBlob(size) {
+  if (process.browser) {
+    return randomBrowserBlob(size);
+  } else { // node
+    return randomBuffer(size);
+  }
+}
+
+module.exports = function (PouchDB, opts) {
+
+  // need to use bluebird for promises everywhere, so we're comparing
+  // apples to apples
+  require('bluebird'); // var Promise = require('bluebird');
+  var utils = require('./utils');
+
+  var testCases = [
+    {
+      name: 'basic-attachments',
+      assertions: 1,
+      iterations: 1000,
+      setup: function (db, callback) {
+
+        var blob = randomBlob(50000);
+        db._blob = blob;
+        callback();
+      },
+      test: function (db, itr, doc, done) {
+        db.putAttachment(Math.random().toString(), 'foo.txt', db._blob,
+          'application/octet-stream').then(function () {
+          done();
+        }, done);
+      }
+    }
+  ];
+
+  utils.runTests(PouchDB, 'views', testCases, opts);
+
+};