我正在尝试发布到网址以获取用户名和密码,以便我可以登录我的网站进行功能测试。我启动selenium服务器并运行此基本测试,并请求发布服务。
define([
'intern!object',
'runtime/testConfig',
'intern/dojo/node!nconf',
'intern/dojo/node!http'
], function(registerSuite, conf, nconf, http) {
var tests = {
name: 'Login test',
'Test': function() {
return http.request({
host: 'posttestserver.com',
path: '/post.php',
json: true,
method: 'POST',
body: {
"userName": "sgfi98j",
"password": "sgfi98j",
"userEmail": "sgfi98j@it.com",
"sourceCode": "TEST",
"region": "US"
},
headers: {
'Content-Type': 'application/json'
}
}, function(response) {
// Continuously update stream with data
var body = '';
console.log("getting data");
response.on('data', function(d) {
body += d;
console.log(".");
});
response.on('end', function() {
console.log("done");
console.log(body);
});
response.on('error', function(e) {
console.log("ERROR :( ");
console.log(e.message);
});
});
}
};
registerSuite(tests);
});
我尝试了很多这方面的错误,并且没有得到任何错误或
Warning: FATAL ERROR
Error: [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED
Error: connect ECONNREFUSED
at exports._errnoException <util.js:746:11>
at TCPConnectWrap.afterConnect [as oncomplete] <net.js:1000:19> Use --force to continue.
我在selenium / intern配置中遗漏了什么吗?
答案 0 :(得分:1)
ECONNREFUSED错误表示没有Selenium服务器在指定目标上运行。
此处的代码永远不会有效,因为http.request
未返回Promise,它会返回ClientRequest object。如果您正在执行异步操作,则需要返回Promise或使用this.async
。请参阅asynchronous test documentation,其中更详细地介绍了这两个选项。
答案 1 :(得分:0)
我从未真正使用http模块解决错误,因为我确实运行了selenium并且它仍然给我错误。但我尝试使用dojo / request,因为它返回promises并且它立即起作用。
<xsl:output method="html"/>