我在Ubuntu平台上运行一个基于php的web应用程序。我想为登录过程执行1000个并发用户的负载测试。(当提供正确的用户名和密码时,它将被引导到主页)。
我使用Apache基准(ab)做负载测试。我使用这个命令单独加载登录页面。
ab -n 1000 -c 1000 http://localhost/etsp/
如何扩展此命令以测试登录过程?我的意思是,有没有办法提供用户名和密码?
任何提示将非常感激。
查看Apache Benchmark的手册页,找到对您的应用程序最有意义的选项:
-
HTTP基本认证
您希望-A
选项提供基本的身份验证凭据。 -
基于cookie验证
您希望-C
选项提供cookie名称和值。 -
基于表单的身份验证触发器
您希望-T
和-p
选项指定POST文件和该文件的内容类型。如果它是一个标准的HTML表单,那么内容类型可能是application/x-www-form-urlencoded
。该文件将包含为表单提交编码的登录表单字段名/值对。堆栈溢出答案application/x- ww-form-urlencoded或multipart/form-data? 有关于如何做到这一点的信息。
您应该使用基于cookie的身份验证。使用浏览器登录您的网站并获取cookie名称和值。
从linux控制台执行如下命令:
ab -C PHPSESSID= h9so0r2hbpuf91vt7ulvnurp300 -l -r -n 100 -C 10 -k -H "Accept-Encoding: gzip, deflate" http://localhost/some_path/your_page.php
从文档- c cookie-name =值向请求中添加Cookie:行。参数通常采用名称=值对的形式。