aft*_*oon 6 protractor browsermob
我想在Protractor测试套件运行期间捕获我的应用程序发出的网络请求.
BrowserMob Proxy看起来像是一个很棒的工具.
我想使用browsermob-node node.js绑定将BrowserMob Proxy集成到Protractor中,如下所示:
onPrepare:创建一个新代理并启动它beforeEach:开始一个新的HARafterEach:将HAR写入文件onComplete:停止代理但是,browsermob-node的API要求我将回调传递给每个方法onPrepare,onComplete并假设它们是同步的.没有done我可以通过的回调.
我的测试在Firefox,iOS和Android上运行(通过Appium).
您需要对回调进行去节点化,即将它们转换为 Promises,以便 Protractor 等待它们。
//...
onPrepare: function() {
var deferred = protractor.promise.defer();
proxy.doHAR('http://yahoo.com', function(err, data) {
if (err) {
deferred.reject('ERROR: ' + err);
} else {
deferred.fulfill(data);
}
});
return deferred.promise;
}
Run Code Online (Sandbox Code Playgroud)
var Q = require('q');
//...
onPrepare: function() {
var proxy_doHAR = Q.nfbind(proxy.doHAR);
return proxy_doHAR('http://yahoo.com');
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2877 次 |
| 最近记录: |