Fazendo o cerco funcionar com HTTPS no OS X Mavericks

Se você está planejando construir sites ou aplicativos da web altamente responsivos, é provável que em algum ponto você queira fazer alguns testes de estresse usando o siege , um excelente “utilitário de teste de carga e benchmarking de http”.

cerco com HTTPS no OS X Mavericks

Se você está usando o OS X, provavelmente está familiarizado com (e usando) homebrew para “instalar os pacotes Unix / Linux ausentes que a Apple não fez”.

Portanto, para instalar siege, você normalmente faria um brew install siege.


EDIT: O “hack” abaixo não é mais necessário, agora que a Apple atualizou o XCode & XCode CLT para 5.0.1 e o homebrew recebeu algumas atualizações. Além disso, a preparação do cerco foi atualizada para 3.0.5.


No entanto, agora, com o Mavericks recém-lançado e algumas mudanças importantes no XCode 5, nem todas as fórmulas homebrew por aí funcionam como deveriam. Por exemplo, siegenão funciona mais com HTTPS .

Isso funciona conforme o esperado:

siege -c 50 http://www.google.com

…enquanto:

siege -c 50 https://www.google.com

… está gerando um erro estranho:

siege: [error] descriptor table full sock.c:108: Too many open files`.

Olhando para o erro, você normalmente ficaria tentado a mexer ulimit, mas não funcionou para mim …

Depois de pesquisar um pouco, cheguei à conclusão de que algo deve ter mudado no OS X OpenSSL nativo, então eu encontrei a seguinte solução – longe de ser perfeita, mas funcionando :

brew uninstall siege
brew install openssl

brew link
--force openssl
brew install siege

Observe que isso sobrescreverá a implementação padrão do OS X OpenSSL , o que pode interromper algumas coisas em seu sistema, há até uma mensagem de aviso sobre isso, portanto, fazer um backup anterior do sistema seria altamente recomendado.brew link --force openssl

Fiz um backup, claro, mas para mim tudo parece funcionar muito bem …

Espero que poupe algumas horas: -) …