Для стороны транспортира проверьте эту страницу
В соответствии с ее содержанием, имея это в своем conf.js
:
module.exports = {
params: {
login: {
email: 'default',
password: 'default'
}
},
// * other config options *
}
, вы можете передать ему любой параметрв CMD следующим образом:
protractor --baseUrl='http://some.server.com' conf.js --parameters.login.email=example@gmail.com
--parameters.login.password=foobar
, так что в итоге вы получите это в своих спецификациях:
describe('describe some test', function() {
it('describe some step', function() {
browser.get(browser.baseUrl);
$('.email').sendKeys(browser.params.login.email);
$('.password').sendKeys(browser.params.login.password);
});
});
Для Дженкинса просто создайте команду следующим образом:
protractor --baseUrl=${url} conf.js --parameters.login.email=${email}
--parameters.login.password=${password}
Другой способ, если вы хотите просто передать один параметр, это иметь объект в вашем config.js
с отображением всех связанных параметров следующим образом:
let param_mapping = {
prod: {
url: "https://prod.app.com",
email: "prod@gmail.com",
password: "Test1234"
},
dev: {
url: "https://dev.app.com",
email: "dev@gmail.com",
password: "Test1234"
},
stage: {
url: "https://stage.app.com",
email: "stage@gmail.com",
password: "Test1234"
}
};
let parameters = param_mapping[process.ENV.CUSTOM_ENV];
exports.config = {
baseUrl: parameters.url,
params: parameters,
// ...
};
и затем запустить ваш процесс с переменной среды:
CUSTOM_ENV=dev protractor protractor.conf.js
Обратите внимание, я не тестировал этот конкретный код сейчас, но я тестировал логику некоторое время назад, так что это может быть ваш подход