Различие в поведении bddRunner при вызове через runner


#1

Обнаружил различия в работе bddRunner при запуске из командной строки через runner и при выполнении такого же bat-скрипта из Jenkins.
Сценарий прозаичный:
ИНФОРМАЦИЯ - Сценарий: Контроль наличия общей команды Движения документа
ИНФОРМАЦИЯ - Шаг: Дано Я открыл новый сеанс TestClient или подключил уже существующий
ИНФОРМАЦИЯ - Шаг: И Я закрыл все окна клиентского приложения
ИНФОРМАЦИЯ - Шаг: И В командном интерфейсе я выбираю ‘Документы’ ‘Использование ОС’
ИНФОРМАЦИЯ - Шаг: Тогда открылось окно ‘Использование ОС’
ИНФОРМАЦИЯ - Шаг: И я нажимаю на кнопку с именем ‘ФормаСоздать’
ИНФОРМАЦИЯ - Шаг: Тогда открылось окно ‘Использование ОС (создание)’
ИНФОРМАЦИЯ - Шаг: И из выпадающего списка “Вид использования” я выбираю точное значение ‘Передача в аренду’
ИНФОРМАЦИЯ - Шаг: И я нажимаю на кнопку ‘Провести’
ИНФОРМАЦИЯ - Шаг: И я нажимаю на кнопку ‘Движения документа’
ИНФОРМАЦИЯ - Шаг: Тогда открылось окно ‘Движения документа: Использование ОС *’
ИНФОРМАЦИЯ - Шаг (Тогда открылось окно ‘Движения документа: Использование ОС *’) не выполнен. Строка дерева №14
ИНФОРМАЦИЯ - Failed: {ВнешняяОбработка.РаботаСИнтерфейсом.Форма.Форма.Форма(1481)}: Окно с заголовком Движения документа: Использование ОС * не найдено.

При вызове из командной строки через runner тест успешно отрабатывает. При вызове из Jenkins - ругается на ошибку. Причем при этом страдают и нижеследующие сценарии, потому что появляются сообщения об ошибке вида:
ИНФОРМАЦИЯ - Фича: c:\buhcorp30\features\Счета 14.feature
ИНФОРМАЦИЯ - 66%
ИНФОРМАЦИЯ - Сценарий: Контроль признака налоговый учет у группы счетов 14
ИНФОРМАЦИЯ - Шаг: Дано Я открыл новый сеанс TestClient или подключил уже существующий
ИНФОРМАЦИЯ - Шаг: И Я закрыл все окна клиентского приложения
ИНФОРМАЦИЯ - Шаг: И В командном интерфейсе я выбираю ‘Главное’ ‘План счетов’
ИНФОРМАЦИЯ - Шаг (И В командном интерфейсе я выбираю ‘Главное’ ‘План счетов’) не выполнен. Строка дерева №47
ИНФОРМАЦИЯ - Failed: {ВнешняяОбработка.РаботаСИнтерфейсом.Форма.Форма.Форма(4680)}: Не подключен Testclient.
ИНФОРМАЦИЯ - {ВнешняяОбработка.РаботаСИнтерфейсом.Форма.Форма.Форма(4675)}: Ошибка при вызове метода контекста (ПолучитьКомандныйИнтерфейс): Недоступный пользователю элемент управления не может выполнять интерактивные действия. (Тестовая база)
ИНФОРМАЦИЯ - Технические данные:
ИНФОРМАЦИЯ - ИмяФайла: c:\Program Files (x86)\OneScript\lib\add\features\libraries\UITestRunner\step_definitions\РаботаСИнтерфейсом.epf
ИНФОРМАЦИЯ - ИмяПроцедуры: ВКомандномИнтерфейсеЯВыбираю
ИНФОРМАЦИЯ - ВерсияVanessaADD: ver 6.0.0
ИНФОРМАЦИЯ - ВерсияПлатформы: 8.3.12.1714
ИНФОРМАЦИЯ - РежимСовместимостиTestManager: НеИспользовать


#2

Может быть есть временное решение, например запуск через oscript?


#3

Что-то очень знакомая ошибка. @artbear Не помнишь?


#4

Ловил такое когда платформы отличались: где записывал и руками проверял и на хостах для тестов.
А скриншотов нет?


#5

Нет :frowning: Вообще на сервере две платформы установлены - 8.3.12 и 8.3.14, но я ведь в параметрах явно указываю что мне нужна 8.3.12. Плюс при выполнении первой фичи клиент тестирования подключается, но валится на одном и том же шаге проверки наличия формы. Только после этого начинают сыпаться эти ошибки с невозможностью подключения к клиенту тестирования.
Более того, из командной строки на сервере такой же скрипт отрабатывает без ошибок.


#6

А JenkinsSlave и руками - это это один и тот же сеанс пользователя?


#7

Хороший вопрос, я новичок в Jenkins. Есть возможность связать пользователя Jenkins с доменной учеткой или как можно дать аналогичные права пользователю Jenkins? Сейчас проект выполняется от имени пользователя, который запускает сборку.


#8

Так. Тогда пара вопросов:

  1. Jenkins как установлен, под каким пользоватлем?
  2. Используешь JenkinsSlave?
  3. На какой ноде выполняется скрипт?

#9

Теряюсь :slight_smile:

  1. Служба запущена под местным админом
    2-3. Видимо да, потому что в начале скрипта есть строка node { … }

#10

Тогда под кем нода запущена? Должен быть или jar или bat файл


#11

Вот тут я совсем потерялся :slight_smile:
Сейчас попробую через whoami узнать в консоли при сборке проекта


#12

whoami возвращает того же админа, под которым запущен сервис jenkins на машине.
ЦЯДНТ? :slight_smile:


#13

Тогда добавь скриншоты. Все равно потом добавлять - пригодятся


#14

Скриншоты на ошибки сценарного тестирования?


#15

В VBParams можно указать ДелатьСкриншоты при возникновении ошибки - когда сценарий не пройдет, будет видно почему.

Второй вариант. Если у вас слейв в том же сеансе - запускаете сборку и просто глазами можете наблюдать что происходит


#16

Скриншоты содержат черный экран. Делал вроде все по инструкции. Установил x32 IrfanView, в VBParams указал путь к нему.


#17

Ну значит как минимум это другой сеанс


#18

Как это можно исправить? Скриншоты пригодились бы :slight_smile:


#19

Я бы снова попросил Jenkinsfile, ну или как стартует задание


#20

Это тот же самый шаг :slight_smile:
Сейчас выглядит так:

stage('Выполнение сценарных тестов') {
    ws('c:\\buhcorp30\\') {
        fileOperations([fileDeleteOperation(excludes: '', includes: 'stage4log.txt')])
    }
    bat '''chcp 65001
    runner vanessa --path c:\\buhcorp30\\features --ibconnection /S*** --db-user *** --db-pwd *** --v8version 8.3.12  --settings c:\\buhcorp30\\vrunner.json --debuglogfile c:\\buhcorp30\\stage4log.txt'''
    if(result > 0){
		errorDescription = readFile 'c:\\buhcorp30\\stage4log.txt'
		println(errorDescription)
		error "Ошибка выполнения сценарных тестов"
    }

}