我们正在编写一个自动化测试套件来测试我们实时网站上的表单。但似乎 - 随机地 - 有时这些测试会在表格仍在工作时失败。表单使用 AJAX 提交,我使用 waitForResource
函数等待 AJAX 响应。
深入研究问题我发现 CasperJS 正在发送 POST 请求(我通过分析 resource.requested
事件来做到这一点,但有时这会导致以下错误( resource.error
):
errorCode: 205
errorString: Unknown error
深入研究问题,当我查看相关网站的 apache 访问日志时,我注意到当测试成功时,POST 请求被很好地记录(如预期的那样)。但是......当我收到上述错误时,我找不到这样的条目。看起来我的请求根本没有收到服务器!尽管 CasperJS 的 resource.requested
事件明确表示已发送 POST。
有没有其他人遇到过这个问题或者可能知道这里发生了什么?或者更好:如何解决这个问题?
最佳答案
您能否使用某种网络嗅探器来真正查明请求是否正在离开 Casper/Phantom? (我同意 Artjom 的建议,也尝试使用 Slimer,但如果它适用于 Slimer,则不一定意味着问题出在 Phantom 中。)
还有(或曾经是 - 在 Apache 2.2 和 2.4 之间更改日志记录)一种在 Apache 中获取更详细日志记录的方法,应该显示服务器端崩溃。
Casper 自己生成 205 错误似乎很奇怪。它似乎更有可能是服务器端的东西。 (或者,如果 Apache 前面有一个反向代理,那将是您的首选。)
如果您使用的是 Linux,有几个链接可以帮助您入门:
关于ajax - CasperJS 似乎没有发送我所有的 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24784350/