Транспортир и Saucelabs отправляют имя теста

У меня успешно запущены тесты Protractor в SauceLabs, хотя я хотел бы иметь возможность отправлять имена своих тестов в службу, например, все мои тесты группируются по имени браузера.

Есть ли способ передать имена тестов в SauceLabs?


person joshuahornby10    schedule 06.11.2014    source источник


Ответы (4)


Я сделал это, используя Selenium для Python. Однако я понимаю, что с Protractor вы отредактируете свой файл conf.js, чтобы опция capabilities содержала поле name с названием вашего теста. Я также предлагаю использовать поле build, чтобы узнать, какую сборку вашего кода вы используете:

capabilities: {
    name: 'whatever name',
    build: 'whatever build',
    // Anything else you need
}

name и build являются кросс-платформенными.

person Louis    schedule 06.11.2014
comment
Я видел поля имени и сборки, но проблема в том, что они устанавливаются до запуска кода, поэтому я не могу передать имя теста в файл. Я могу получить имя каждого теста, запустив this.description на beforeEach, но я изо всех сил пытаюсь внедрить его в конфигурацию. - person joshuahornby10; 06.11.2014
comment
name и build можно установить только при запуске экземпляра Selenium. Сколько экземпляров вы запускаете в своем наборе тестов? - person Louis; 07.11.2014

Если во время теста у вас есть идентификатор сеанса SauceLabs, то это так же просто, как отправить пакет JSON на REST API.

curl https://saucelabs.com/rest/v1/users/USERNAME -u YOUR_USERNAME:ACCESS_KEY

Вы, вероятно, можете проверить это, запустив сеанс SauceLabs вручную, получив от него идентификатор сеанса, а затем вручную отправив запрос API в клиенте REST JSON браузера, таком как 'Postman'.

person djangofan    schedule 22.12.2014

Возможно, вам нужно будет добавить что-то вроде этого:

var testName = 'Testing'; //Change Project's name here in order to be identified in BrowserStack




// An example configuration file.
exports.config = {
    // The address of a running selenium server.
    seleniumAddress: 'http://xxxxx:[email protected]:80/wd/hub',
    //seleniumAddress: 'http://hub.browserstack.com/wd/hub',
    //seleniumAddress: 'http://127.0.0.1:4723/wd/hub',//Local Appium
    // Capabilities to be passed to the webdriver instance.
    multiCapabilities: [
        {
            name: testName,
            platformName: 'iOS',
            platformVersion: '7.1',
            browserName: '',
            app: 'safari',
            deviceName: 'iPhone Simulator',
            'appium-version': "1.4.0",
            username: 'xxxxxx',
            accessKey: 'xxxxx'

        }
        ,
        {
            name: testName,
            platformName: 'Android',
            platformVersion: '4.4',
            browserName: 'Browser',
            deviceName: 'Android Emulator',
            'appium-version': "1.4.0",
            username: 'xxxxx',
            accessKey: 'xxxxx'
        }


        ],
person Bruno Soko    schedule 16.06.2015

Вы можете запустить этот небольшой скрипт:

browser.executeScript("sauce:job-name=" + name )

Обычно это полезно, если вы хотите динамически установить имя во время или непосредственно перед началом тестов.

person Mohammed Saqib    schedule 21.03.2018