【发布时间】:2023-03-14 00:03:02
【问题描述】:
我目前正在使用带有 node.js 和 phantom.js 的 Windows 上的 JavaScript 进行自动化 UI 测试研究,不出所料,我发现了许多可以在这方面提供帮助的框架(casper.js、Buster.js 等)。
到目前为止,我所看到的框架中似乎缺少的一件事是停止和启动 Web 服务器来为网页提供服务,以便测试框架可以执行其测试。一个例外是WebDriver.js,它使用Selenium standalone server,但这依赖于服务器编写的Java,目前我希望尽可能找到基于节点的解决方案。
从节点的角度来看,我查看了 Connect.js 和 Http-Server(我特别喜欢),但问题是从 JavaScript 测试开始和停止这些。
我尝试创建一个 casper.js 测试,该测试将与服务器交互,运行测试然后停止服务器,但我无法让它工作,这是一个示例脚本
var childProcess = require('child_process').spawn('http-server', '/TestSite');
casper.test.begin("Load-page", 1, function suite(test){
casper.start('http://localhost:8080/',function(){
test.assertTitle("test page");
});
casper.run(function(){
test.done();
childProcess.kill();
});
});
我使用以下命令从命令行调用它(casper 在我的 Path 变量中):
casperjs Load-page testFile.js
我希望会发生的是 http-server 会启动,casper 会启动测试,然后在测试运行后 http-server 会被杀死。
我也尝试过使用 Connect:
var server= connect.createServer(connect.static('/TestSite')).listen(8080)
casper.test.begin("Load-page", 1, function suite(test){
casper.start('http://localhost:8080/',function(){
test.assertTitle("test page");
});
casper.run(function(){
test.done();
server.stop();
});
});
但又一次没有运气。
我可以运行有效的 Casper 示例测试,并且我的路径中也有 Node,并且可以从命令提示符调用 REPL。
目录结构为:
代码
/测试站点
/node_modules
然后我从 Code 文件夹运行测试。
我只是无法做到这一点,还是我只是不知道它应该如何工作?
【问题讨论】:
标签: javascript windows node.js phantomjs ui-automation