Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

Sauce OnDemand Plugin error [sessionId not found]


(Aleksey Panashchenko) #1

Привет всем!
Делаем автоматизацию на проэкте с помощью http://nightwatchjs.org/ (JavaScript framework) в качестве CI используем Jenkins, тесты запускает в клауде https://saucelabs.com. Все вроди бі не плохо но вот не можем настроить Sauce OnDemand Plugin не подтягивается репорт с сауслаба. пишет sessionId not found.
Может кто то его настраивал знает какието хитрости?

P.S. никакких читов в коде нету, никаких листернеров, токлько конфигурация плагина на Jenkins


(Dmitry Cheremushkin) #2

Привет. =)


Этот плагин собирает результаты тестов исходя из наличия следующей строки в логе:

SauceOnDemandSessionID=YOUR_SESSION_ID job-name=YOUR_JOB_NAME

То есть для каждого теста нужно добавить вывод в лог. Пример на Java:


private void printSessionId() {

      String message = String.format("SauceOnDemandSessionID=%1$s job-name=%2$s", 
      (((RemoveWebDriver) driver).getSessionId()).toString(), "some job name");
      System.out.println(message);
    }

```


----------

Информация и пример — [**из официальной документации**][1].


  [1]: https://docs.saucelabs.com/ci-integrations/jenkins/#referencing-job-configuration

(Aleksey Panashchenko) #3

ОГРОМНОЕ СПАСИБО))))) Все оказалость просто. Если кто то будет юзать nightwatch js вот пример кода

ВНИМАНИЕ!!! this.client.sessionId - именно эта команда берет sessionId, а не browser.sessionId !!

module.exports = {
 tearDown : function() {    
    console.log('SauceOnDemandSessionID=' +  this.client.sessionId + " " + "job-name=" + "test")
},

'demo test google' : function (browser) {
    browser
    .url('http://google.com')
    .waitForElementPresent('body', 1000)
    .setValue('input[type=text]', ['nightwatch', browser.Keys.ENTER])
    .waitForElementVisible('#main', 1000, false)
    .end();
  }
}