![围攻会话 cookie](https://linux22.com/image/698925/%E5%9B%B4%E6%94%BB%E4%BC%9A%E8%AF%9D%20cookie.png)
我正在尝试使用 Siege 对 Magento 网站进行负载测试。但是,Siege 似乎不会使用从上一个请求返回的会话 cookie 发出请求。例如,在我的 urls.txt 文件中:
http://dev.example.com/
http://dev.example.com/catalog/product/view/id/167119
http://dev.example.com/checkout_cart/add POST product=167119&super_attribute[92]=952&super_attribute[196]=186&qty=1
http://dev.example.com/checkout/onepage/
http://dev.example.com/checkout/onepage/saveMethod POST method=guest
如果 Siege 能够使用 Magento 在访问上述第一个 URL(主页)时返回的前端 cookie,并在请求上述第二个 URL(产品页面)时重新发送该 cookie,那就太好了。siege 能做到这一点吗?
答案1
按照围攻常见问题解答它应该支持 cookies
Netscape cookie 支持已添加到 siege-2.00;它不支持 RFC 2965 cookie。此功能是“Microsofted”的,因为它附带了一个已知问题:siege 忽略路径信息并根据服务器和域返回 cookie。所有 cookie 将在运行后被丢弃,它们不会存储在本地磁盘上。根据 Netscape 过期指令,Cookie 将在运行期间过期。关于 cookie 支持的主要关注点是与服务器保持状态。Siege 很好地支持该功能。
因此,我建议检查一下你从 Magento 获取的 cookie,如果它们不兼容 Netscape,恐怕你不得不考虑使用另一种负载测试工具,请查看开源负载测试工具:您应该使用哪一个?文章对最突出的免费和开源负载测试工具进行了列出和比较。
答案2
按照此链接在接受的答案中这个 Stack Overflow文章:
以用户身份登录您的 Magento 网站,搜索 cookie frontend
,并使用其值,如下所示:
siege -f urls.txt --header="Cookie: frontend=<your_cookie_value>"
您可以拥有一个像这样的添加到购物车 GET URL,效果非常好:
https://www.example.com/checkout/cart/add?qty=1&product=1234&form_key=QUJtnTxCYNtsiC0k
请注意,在默认的 Magento (1.x) 设置中,它可能会将用户重定向到购物车页面,在这种情况下,Siege 会将其显示为 302 重定向。尽管如此,产品仍会添加到购物车中。
希望这可以帮助你。