summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/test/benchmark/TransportTest.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/test/benchmark/TransportTest.php')
-rw-r--r--vendor/ruflin/elastica/test/benchmark/TransportTest.php252
1 files changed, 0 insertions, 252 deletions
diff --git a/vendor/ruflin/elastica/test/benchmark/TransportTest.php b/vendor/ruflin/elastica/test/benchmark/TransportTest.php
deleted file mode 100644
index 42d6ac0c..00000000
--- a/vendor/ruflin/elastica/test/benchmark/TransportTest.php
+++ /dev/null
@@ -1,252 +0,0 @@
-<?php
-
-use Elastica\Client;
-use Elastica\Request;
-use Elastica\Document;
-use Elastica\Query;
-use Elastica\Type\Mapping;
-use Elastica\Query\MatchAll as MatchAllQuery;
-use Elastica\Filter\Term as TermFilter;
-
-class TransportTest extends \PHPUnit_Framework_TestCase
-{
- protected $_max = 1000;
-
- protected $_maxData = 20;
-
- static protected $_results = array();
-
- public static function setUpBeforeClass()
- {
- if (!defined('DEBUG')) {
- define('DEBUG', true);
- } else if (false == DEBUG) {
- self::markTestIncomplete('DEBUG const is set to false, it prevents query time measuring.');
- }
- }
-
- public static function tearDownAfterClass()
- {
- self::printResults();
- }
-
- /**
- * @param array $config
- * @return \Elastica\Type
- */
- protected function getType(array $config)
- {
- $client = new Client($config);
- $index = $client->getIndex('test');
- return $index->getType('test');
- }
-
- /**
- * @dataProvider providerTransport
- */
- public function testAddDocument(array $config, $transport)
- {
- $type = $this->getType($config);
- $index = $type->getIndex();
- $index->create(array(), true);
-
- $times = array();
- for ($i = 0; $i < $this->_max; $i++) {
- $data = $this->getData($i);
- $doc = new Document($i, $data);
- $result = $type->addDocument($doc);
- $times[] = $result->getQueryTime();
- $this->assertTrue($result->isOk());
- }
-
- $index->refresh();
-
- self::logResults('insert', $transport, $times);
- }
-
- /**
- * @depends testAddDocument
- * @dataProvider providerTransport
- */
- public function testRandomRead(array $config, $transport)
- {
- $type = $this->getType($config);
-
- $type->search('test');
-
- $times = array();
- for ($i = 0; $i < $this->_max; $i++) {
- $test = rand(1, $this->_max);
- $query = new Query();
- $query->setQuery(new MatchAllQuery());
- $query->setFilter(new TermFilter(array('test' => $test)));
- $result = $type->search($query);
- $times[] = $result->getResponse()->getQueryTime();
- }
-
- self::logResults('random read', $transport, $times);
- }
-
- /**
- * @depends testAddDocument
- * @dataProvider providerTransport
- */
- public function testBulk(array $config, $transport)
- {
- $type = $this->getType($config);
-
- $times = array();
- for ($i = 0; $i < $this->_max; $i++) {
- $docs = array();
- for ($j = 0; $j < 10; $j++) {
- $data = $this->getData($i . $j);
- $docs[] = new Document($i, $data);
- }
-
- $result = $type->addDocuments($docs);
- $times[] = $result->getQueryTime();
- }
-
- self::logResults('bulk', $transport, $times);
- }
-
- /**
- * @dataProvider providerTransport
- */
- public function testGetMapping(array $config, $transport)
- {
- $client = new Client($config);
- $index = $client->getIndex('test');
- $index->create(array(), true);
- $type = $index->getType('mappingTest');
-
- // Define mapping
- $mapping = new Mapping();
- $mapping->setParam('_boost', array('name' => '_boost', 'null_value' => 1.0));
- $mapping->setProperties(array(
- 'id' => array('type' => 'integer', 'include_in_all' => FALSE),
- 'user' => array(
- 'type' => 'object',
- 'properties' => array(
- 'name' => array('type' => 'string', 'include_in_all' => TRUE),
- 'fullName' => array('type' => 'string', 'include_in_all' => TRUE)
- ),
- ),
- 'msg' => array('type' => 'string', 'include_in_all' => TRUE),
- 'tstamp' => array('type' => 'date', 'include_in_all' => FALSE),
- 'location'=> array('type' => 'geo_point', 'include_in_all' => FALSE),
- '_boost' => array('type' => 'float', 'include_in_all' => FALSE)
- ));
-
- $type->setMapping($mapping);
- $index->refresh();
-
- $times = array();
- for ($i = 0; $i < $this->_max; $i++) {
- $response = $type->request('_mapping', Request::GET);
- $times[] = $response->getQueryTime();
- }
- self::logResults('get mapping', $transport, $times);
- }
-
- public function providerTransport()
- {
- return array(
- array(
- array(
- 'transport' => 'Http',
- 'host' => 'localhost',
- 'port' => 9200,
- 'persistent' => false,
- ),
- 'Http:NotPersistent'
- ),
- array(
- array(
- 'transport' => 'Http',
- 'host' => 'localhost',
- 'port' => 9200,
- 'persistent' => true,
- ),
- 'Http:Persistent'
- ),
- array(
- array(
- 'transport' => 'Thrift',
- 'host' => 'localhost',
- 'port' => 9500,
- 'config' => array(
- 'framedTransport' => false,
- ),
- ),
- 'Thrift:Buffered'
- ),
- );
- }
-
- /**
- * @param string $test
- * @return array
- */
- protected function getData($test)
- {
- $data = array(
- 'test' => $test,
- 'name' => array(),
- );
- for ($i = 0; $i < $this->_maxData; $i++) {
- $data['name'][] = uniqid();
- }
- return $data;
- }
-
- /**
- * @param $name
- * @param $transport
- * @param array $times
- */
- protected static function logResults($name, $transport, array $times)
- {
- self::$_results[$name][$transport] = array(
- 'count' => count($times),
- 'max' => max($times) * 1000,
- 'min' => min($times) * 1000,
- 'mean' => (array_sum($times) / count($times)) * 1000,
- );
- }
-
- protected static function printResults()
- {
- echo sprintf(
- "\n%-12s | %-20s | %-12s | %-12s | %-12s | %-12s\n\n",
- 'NAME',
- 'TRANSPORT',
- 'COUNT',
- 'MAX',
- 'MIN',
- 'MEAN',
- '%'
- );
- foreach (self::$_results as $name => $values) {
- $means = array();
- foreach ($values as $times) {
- $means[] = $times['mean'];
- }
- $minMean = min($means);
- foreach ($values as $transport => $times) {
- $perc = (($times['mean'] - $minMean) / $minMean) * 100;
- echo sprintf(
- "%-12s | %-20s | %-12d | %-12.2f | %-12.2f | %-12.2f | %+03.2f\n",
- $name,
- $transport,
- $times['count'],
- $times['max'],
- $times['min'],
- $times['mean'],
- $perc
- );
- }
- echo "\n";
- }
- }
-}