С помощью тестового бота невозможно получить видео на панели инструментов zalenkum

1. Обобщите проблему.


При использовании тестового бота, когда тестирование завершено, видео не может быть получено на панели управления.

В следующем пути контейнера zalenium видео не существует.

/home/seluser/videos

С другой стороны, я использую локальный elgalu / selenium, я могу без проблем получить видео на панели управления.

Могу ли я получить видео с помощью zalenium + testingbot?

2. Я уже пробовал


Похоже, что zalenium получает видео с URL-адреса, показанного в следующем коде в конце теста.

https://api.testingbot.com/v1/tests/<session_id>

В контейнере zalenium я подтвердил, что могу получить доступ к этому API с моим ключом и секретом.

3. некоторые коды и версия компонентов


  • докер: 18.06.1-ce
  • докер-составить: 1.17.1
  • dozel / zalenium id: 150b95a0aa6b создано: 2019-06-17T06: 23: 59.635702925Z
  • elgalu / selenium id: 4afe4ce965ee создано: 2019-06-05T06: 01: 05.71727027Z
  • ОС: ubuntu 18.04.2
  • docker-compose.yml
version: '2'
services:
  selenium-hub:
    container_name: selenium-hub
    env_file:
      - ./env/env.secret
    environment:
      TESTINGBOT_KEY: <my_key>
      TESTINGBOT_SECRET: <my_secret>
      TESTINGBOT_URL: http://hub.testingbot.com:80
    image: dosel/zalenium:latest
    ports:
      - 4444:4444
    volumes:
      - /dev/shm:/dev/shm
      - /var/run/docker.sock:/var/run/docker.sock
      - /tmp/videos:/home/seluser/videos
    privileged: true
    stdin_open: true
    tty: true
    command: >
      start
        --timeZone "Asia/Tokyo"
        --testingBotEnabled true
  • mytest скрипт о драйвере (base.rb)
require 'selenium-webdriver'
require 'test/unit'
require 'common/capabilities'
module TestSets
  class Base < Test::Unit::TestCase
    attr_accessor(:driver, :target_host)
    self.test_order = :defined

    def setup
      set_driver
      @target_host = <target url>
      @accept_next_alert = true
      @verification_errors = []
      set_window_size

      # set timezone
      ENV['TZ'] = "Asia/Tokyo"
    end

    def teardown
      @driver.quit
      assert_equal [], @verification_errors
    end

    def set_window_size
      @driver.manage.window.resize_to(1600, 1024)
    end

    def set_driver
      set_driver_remote(Capabilities.win10_ie11)
    end

    private

    def set_driver_remote(caps)
      @driver = Selenium::WebDriver.for(
        :remote,
        url: remote_url,
        desired_capabilities: caps,
        http_client: http_client,
      )
    end

    def http_client
      client = Selenium::WebDriver::Remote::Http::Default.new
      client.read_timeout = 90
      client
    end

    def remote_url
      testingbot_url
    end

    def testingbot_url
      %(https://#{Settings.testingbot.key}:#{Settings.testingbot.secret}@hub.testingbot.com/wd/hub)
    end
  end
end
  • общий / возможности.rb
module Capabilities
  def self.win10_ie11
    caps = Selenium::WebDriver::Remote::Capabilities.new
    caps["name"] = "win10_ie11"
    caps["browserName"] = "Internet Explorer"
    caps["version"] = "11"
    caps["platform"] = "Windows 10"
    caps["record_video"] = "true"
    caps["timeZone"] = "Tokyo"  # for TestingBot
    caps
  end
end

person minoru.nagasaka    schedule 19.06.2019    source источник
comment
Пожалуйста, не включайте просто ссылки на внешние ссылки на код - включите соответствующий фрагмент в свой вопрос.   -  person Philip Adler    schedule 19.06.2019


Ответы (1)


Спасибо за помощь.

Я понимаю причину.

URL-адрес, указанный при создании драйвера селена, напрямую указывает тестового бота без указания концентратора zalenium.

Справа: http://selenium-hub:4444/wd/hub

Неправильно: https://# {Settings.testingbot.key}: # {Settings.testingbot.secret}@hub.testingbot. com / wd / hub

Проблема была простой.

person minoru.nagasaka    schedule 20.06.2019