mou*_*uad 6 javascript selenium-chromedriver protractor
我正在使用量角器进行带有角度的e2e测试,我正在拼命地获取带有标题和正文的HTTP请求日志.我已经配置了这样的量角器:
{
useAllAngular2AppRoots: true,
ignoreUncaughtExceptions: true,
maxSessions: 1,
multiCapabilities: [
{
'name': 'desktop',
'browserName': 'chrome',
loggingPrefs: {"driver": "ALL", "browser": "ALL", 'performance': 'ALL'},
chromeOptions: {
binary: process.env.CHROME_BIN,
args: ["--headless", "--disable-gpu", "--no-sandbox"],
perfLoggingPrefs: {
'traceCategories': 'blink.console,disabled-by-default-devtools.timeline'
}
}
}
],
framework: "custom",
frameworkPath: require.resolve("protractor-cucumber-framework"),
//...
};
Run Code Online (Sandbox Code Playgroud)
在每个场景之后,我正在执行这个钩子:
browser.manage().logs().get("browser").then(logs =>
//...
)
Run Code Online (Sandbox Code Playgroud)
但我得到的只是控制台日志,但没有http请求.有没有办法从量角器中获得chromedriver的那些?
以下是chromedriver doc提及性能日志的链接:https://sites.google.com/a/chromium.org/chromedriver/logging/performance-log
cni*_*ina 13
您需要添加以下chromeOptions内容perfLoggingPrefs,loggingPrefs如https://github.com/angular/protractor-cookbook/blob/master/protractor-javascript/example-network/conf.js所示.
capabilities: {
'browserName': 'chrome',
'chromeOptions': {
'perfLoggingPrefs': {
'enableNetwork': true,
'enablePage': false,
'enableTimeline': false
}
},
loggingPrefs: {
performance: 'ALL',
browser: 'ALL'
}
},
Run Code Online (Sandbox Code Playgroud)
获取日志时,我编写的示例中记录了afterEach每次测试后输出的方法.
afterEach(() => {
browser.manage().logs().get('performance').then((browserLogs) => {
browserLogs.forEach((browserLog) => {
var message = JSON.parse(browserLog.message).message;
if (message.method == 'Network.responseReceived') {
console.log(message);
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
从日志中,您应该能够看到加载javascript文件,资产等时发出的任何get请求.
更新每条评论的答案.如果使用'Network.requestWillBeSent',您可以查看POST.
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |