使用PhantomJS运行复合测试

Running Composite Tests with PhantomJS

本文关键字:测试 复合 运行 PhantomJS 使用      更新时间:2023-09-26

我想在整个域上自动化一些技术测试。这些测试可以是加载速度,慢速等级,Js错误,响应状态代码检查…我成功地创建了一个抓取给定域的所有url的蜘蛛脚本,但是今天我在实现这些测试时遇到了一些问题。

基本上,假设您想从未知的url列表中获取已知的指标列表。你将如何做到这一点?

从我的角度来看,我有两个选择:

  • 为每个测试创建一个模块,并为父脚本中的每个url调用它们

    这可能是正确的,但有些脚本是开源的,如ysslow .js:不确定我将能够转换它们,它们将不再可运行(因为模块)

  • 用新的子进程模块(execFile或spawn)重新调用phantomjs

    我将失去对执行的控制,并且肯定会出现性能问题。

也许我的理解不正确。脚本是否仅限于对唯一url的单个操作?我在网上看到的每一个例子都是一个(或一个静态列表)的url。

我知道PhantomJS不是一个测试框架,它只用于通过一个合适的测试运行器启动测试。也许我想用幻影做很多事情,我应该尽量保持脚本尽可能简单。

如有任何帮助,不胜感激

首先-你可能想看看CasperJS。它运行在Phantom之上,使得将事件链接在一起变得容易得多。

第二-似乎你可以设置你所有的度量脚本顺序运行,然后包装在一个for循环,并传递一个url列表到该循环。

urls = ['www.google.com', 'www.yahoo.com', 'www.bing.com'];
for each(url in urls) {
    phantom.load(url, function(page) {
        runMetrics(page);
    }
}

这有点伪代码,但是这样的东西会工作吗?