- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要模拟很长的响应时间。我的 Moockjax 正在运行——它提供了正确的模拟数据。但是我的 ajax 调用是在我加载页面的那一刻完成的,即使我将 responseTime 设置为 20 秒也是如此。
你有想法吗?
我将我的测试页面减少到最少,以排除其他潜在的错误来源:
<!DOCTYPE HTML>
<html>
<head>
<script src="jquery.js"></script>
<script src="../jquery.mockjax.js"></script>
<title>MockJax Tests</title>
</head>
<body>
<h1>A MockJax test.</h1>
<p>Take a look into the console.</p>
<script>
$.mockjax({
url: "foo.html",
responseTime: 20000,
responseText: "Hi! I am mockjax."
});
$.ajax({
async: false,
url: 'foo.html',
success:function(data){
console.log(data);
},
error:function(data){
console.log('It doesn’t work that way :(');
}
});
</script>
</body>
</html>
我还使用 CasperJS 和 Mockjax(在 casper.evaluate 内部)编写了一个测试。那里也一样。
这是我的 CasperJS 代码
var casper = require("casper").create({
verbose: true,
logLevel: 'error',
clientScripts: ["node_modules/jquery-mockjax/jquery.mockjax.js"]
});
casper.on('remote.message', function(msg) {
this.echo('remote message caught: ' + msg);
})
casper.start('http://der-zyklop.de/', function() {
this.evaluate(function () {
$.mockjax({
url: "/blog/feed",
responseTime: 20000,
responseText: "Hi! I am mockjax!"
});
$.ajax({
async: false,
url: '/blog/feed',
success:function(data){
console.log(data);
},
error:function(data){
console.log('It doesn’t work that way :(');
}
});
});
});
casper.run();
如果您安装了 CasperJS,您应该能够通过 npm install jquery-mockjax
然后 casperjs test.js
运行它。它在 20 秒内给我这个输出:
我还写了一篇关于它的博客文章here .
最佳答案
Mockjax 目前无法进行阻塞延迟。查看current code :
if ( requestSettings.async === false ) {
// TODO: Blocking delay
process();
} else {
this.responseTimer = setTimeout(process, parseResponseTimeOpt(mockHandler.responseTime) || 50);
}
您需要指定 async: true
才能正常工作。当您这样做时,您将需要在 casper 上下文中等待,因为控制流将继续而无需等待结果。
casper.start(url, yourEvaluateFunction).wait(25000).run();
我认为,除了以某种方式执行忙等待之外,JavaScript 甚至可能出现阻塞延迟。但在此期间,其他所有内容也将保持不变(JavaScript 是单线程的),您不会从 busywait 中获得任何好处。
关于javascript - responseTime 在 Mockjax 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124056/
我需要模拟很长的响应时间。我的 Moockjax 正在运行——它提供了正确的模拟数据。但是我的 ajax 调用是在我加载页面的那一刻完成的,即使我将 responseTime 设置为 20 秒也是如此
我是一名优秀的程序员,十分优秀!