【问题标题】:How can I expose my CasperJS tests as their own REST API?如何将我的 CasperJS 测试公开为他们自己的 REST API?
【发布时间】:2015-11-23 04:12:53
【问题描述】:

我使用简单的正常运行时间监视器(如 statuscake、uptimerobot 等)来验证我的网站是否正常运行。问题是一些站点是 ASP.NET 应用程序,具有复杂的__doPostback 交互——基本上,用户填写表单,单击提交,然后 ASP.NET 生成的 javascript 将它们带到下一页。

我的想法是编写一个 CasperJS(基本上是 PhantomJS 的一个更简单的 API)脚本来模拟这种用户交互并进行测试以确保其正常工作。

我有在 CasperJS 中运行的测试,现在我想将测试公开为它自己的 REST API,这样我就可以让我的正常运行时间监视器每隔几分钟就点击一次。如果测试成功,REST API 将返回200;如果不是,一些错误代码。

我通常会围绕逻辑抛出restify 或express,但是您需要通过casperjs file.js 而不是node 运行CasperJS,这意味着我不能在其中运行restify。我看过 PhantomJS、Nightmare 和 Zombie。如果您确定这些会为此工作,请告诉我;否则我的 API 出现问题,导致我回到 CasperJS。

这感觉有点像将测试套件公开为 API,如果这能提供任何想法的话。

有什么建议吗?

【问题讨论】:

    标签: node.js phantomjs casperjs headless-browser


    【解决方案1】:

    PhantomJS 有一个内置的服务器,您可以使用 CasperJS,如下所示:CasperJS passing data back to PHP

    【讨论】:

    • 感谢@Vaviloff,这似乎有效,但它下面的评论表明存在内存泄漏,我想我明白了原因。 casper.run() 之后默认将 .exit() (这会杀死服务器)。如果您通过传递回调函数来覆盖其功能,则您应该自己调用.exit(),而示例中没有。因此,casper 会继续运行,但内存会累积。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多