protractor - 在 SauceLabs 上运行量角器测试
问题描述
我正在尝试使用量角器去 SauceLabs 进行一些测试。我的 SauceConnect 已启动并正在运行。我相信我的 protractor.config.js 设置正确,但是当我在我的机器上运行测试时ng e2e --suite smoke
,它只是在我的本地机器上运行,而不是通过隧道。有什么建议么?我一直在关注这个“教程”并且进展顺利,但我只是没有看到任何东西通过隧道。
这是我的protractor.config.js
文件:
const baseUrl = '<BASEURL>';
const maxNumberOfInstances = process.env.NUMBER_OF_INSTANCES ? process.env.NUMBER_OF_INSTANCES : 1;
const reportPath = 'protractor/report';
const HtmlScreenshotReporter = require('protractor-jasmine2-screenshot-reporter');
const screenShotReporter = new HtmlScreenshotReporter({
dest: reportPath,
filename: 'artemis-e2e-report.html'
});
const SAUCELABS_USERNAME = '<SAUCEUSERNAME';
const SAUCELABS_AUTHKEY = '<SAUCEKEY>';
const chromeArgs = process.env.IS_LOCAL ? ['--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'] : ['--disable-gpu', '--no-sandbox', '--test-type=browser', '--lang=en', '--window-size=1680,1050'];
const browserCapabilities = [{
sauceUser: SAUCELABS_USERNAME,
sauceKey: SAUCELABS_AUTHKEY,
browserName: 'chrome',
tunnelIdentifier: '<SAUCETUNNEL>',
shardTestFiles: true,
maxInstances: maxNumberOfInstances,
platform: 'Windows 10',
version: '73.0',
screenResolution: '1280x1024',
chromeOptions: {
args: chromeArgs,
prefs: {
'credentials_enable_service': false,
'profile': {
'password_manager_enabled': false
},
download: {
prompt_for_download: false,
directory_upgrade: true,
default_directory: 'C:\\downloads\\'
},
},
},
loggingPrefs: {
browser: 'SEVERE'
},
}, ];
// Protractor config
exports.config = {
baseUrl: baseUrl,
directConnect: true,
allScriptsTimeout: 2 * 60 * 1000,
jasmineNodeOpts: {
defaultTimeoutInterval: 3 * 60 * 1000
},
getPageTimeout: 2 * 60 * 1000,
suites: {
smoke: 'protractor/smokeTests/*.scenario.ts',
},
multiCapabilities: browserCapabilities,
framework: 'jasmine2',
onPrepare: function () {
browser.waitForAngularEnabled(true);
require('ts-node').register({
project: 'protractor/tsconfig.json',
});
const jasmineReporters = require('jasmine-reporters');
const jUnitXMLReporter = new jasmineReporters.JUnitXmlReporter({
consolidateAll: false,
savePath: reportPath,
filePrefix: 'xmloutput'
});
const JasmineConsoleReporter = require('jasmine-console-reporter');
const consoleReporter = new JasmineConsoleReporter({
colors: 1,
cleanStack: 1,
verbosity: 4,
listStyle: 'indent',
activity: true,
emoji: true,
beep: true,
timeThreshold: {
ok: 10000,
warn: 15000,
ouch: 30000,
}
});
jasmine.getEnv().addReporter(jUnitXMLReporter);
jasmine.getEnv().addReporter(screenShotReporter);
jasmine.getEnv().addReporter(consoleReporter);
browser.get(browser.baseUrl);
},
beforeLaunch: function () {
return new Promise(function (resolve) {
screenShotReporter.beforeLaunch(resolve);
});
},
afterLaunch: function (exitCode) {
return new Promise(function (resolve) {
screenShotReporter.afterLaunch(resolve.bind(this, exitCode));
});
},
};
解决方案
首先你提到这个
它只是在我的本地机器上运行,而不是通过隧道。有什么建议么
这与隧道无关,但与:
- 你还有
directConnect: true,
,从你的配置中删除它 - 您已将 Sauce Labs 凭据添加到您的功能中,但您应该在根级别的配置文件中使用它们。这是和示例(它是为 TypeScript 编写的,但它应该让您了解如何设置配置文件)。隧道标识符是正确的,你只需要确保你得到了@fijiaaron提到的正确的隧道ID
希望这可以帮助
推荐阅读
- html - 无法在 HTML 中显示 pdf。它从 Firefox 和 chrome 下载,适用于 Safari
- azure - 成功登录后在 Azure AD B2C SAML 中指定返回/重定向 URL
- apache-spark - Spark SQL 无法使用 org.apache.hadoop.hive.contrib.serde2.MultiDelimitSerDe serde 读取 HIVE 表
- mysql - 带有表达式的Mysql复合索引不起作用
- javascript - 如何从本地存储反应中获取价值
- java - 如何在两个数据集选项(如 DB)之间使用类似的减法来设计 Redis 搜索/扫描算法
- r - R创建笔记本时出错:剪贴板模式
- kotlin - 版本控制插件。插件的BOM?
- javascript - 在 react-widgets 组合框中过滤:完全匹配显示整个列表而不是匹配项
- php - 有没有办法在主页内容中显示使用 php curl 检索到的图像