使用PhantomJS运行复合测试
Running Composite Tests with PhantomJS
我想在整个域上自动化一些技术测试。这些测试可以是加载速度,慢速等级,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);
}
}
这有点伪代码,但是这样的东西会工作吗?
相关文章:
- 模糊事件的Javascript测试
- 我的单元测试选项是什么
- 测试索引值是否等于某个数字的倍数
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 测试数组中每个项的内容
- 测试Angular Service解决错误回调中的promise
- 使用Jest测试React Native应用程序
- 为函数代码编写测试
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何使用JS/nightwatchjs并行运行多个测试
- 使用量角器的当前url单元测试的getTitle
- 茉莉花宝石-耙茉莉花:ci dons't运行测试
- JavaScript滚动脚本-在测试中激发,而不是在开发站点上
- AngularJS指令单元测试中未定义的函数
- 一个密码测试程序,如果存在空格,它会提醒用户
- 测试角度解析方法
- Protractor:在Iframe中测试非角度应用程序
- 简单类测试未通过
- 如何在Ionic2测试版中包含Ionic.io服务
- 使用PhantomJS运行复合测试