public function testCanSetCustomParallelAdapter() { $this->_closure_testCanSetCustomParallelAdapter_called = false; $pa = new puzzle_adapter_FakeParallelAdapter(new puzzle_adapter_MockAdapter(array($this, '__callback_testCanSetCustomParallelAdapter'))); $client = new puzzle_Client(array('parallel_adapter' => $pa)); $client->sendAll(array($client->createRequest('GET', 'http://www.foo.com'))); $this->assertTrue($this->_closure_testCanSetCustomParallelAdapter_called); }
* * # Basic usage * make perf * # With custom options * REQUESTS=100 PARALLEL=5000 make perf */ require dirname(__FILE__) . '/bootstrap.php'; // Wait until the server is responding puzzle_test_Server::wait(); // Get custom make variables $total = isset($_SERVER['REQUESTS']) ? $_SERVER['REQUESTS'] : 1000; $parallel = isset($_SERVER['PARALLEL']) ? $_SERVER['PARALLEL'] : 25; $client = new puzzle_Client(array('base_url' => puzzle_test_Server::$url)); $t = microtime(true); for ($i = 0; $i < $total; $i++) { $client->get('/guzzle-server/perf'); } $totalTime = microtime(true) - $t; $perRequest = $totalTime / $total * 1000; printf("Serial: %f (%f ms / request) %d total\n", $totalTime, $perRequest, $total); // Create a generator used to yield batches of requests to sendAll $reqs = function () use($client, $total) { for ($i = 0; $i < $total; $i++) { (yield $client->createRequest('GET', '/guzzle-server/perf')); } }; $t = microtime(true); $client->sendAll($reqs(), array('parallel' => $parallel)); $totalTime = microtime(true) - $t; $perRequest = $totalTime / $total * 1000; printf("Parallel: %f (%f ms / request) %d total with %d in parallel\n", $totalTime, $perRequest, $total, $parallel);