0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gauge + Selenoid で自動テストを行うときに任意の階層を切って証跡動画を保存する

Last updated at Posted at 2024-09-26

上記の記事を参考にして構築してみた際に以下の点で詰まったのでメモ書きです。

  • enableLog, enableVNC, enableVideo の設定場所が変わった
  • ログファイルと録画ファイルを /Specification名/Scenario名/ブラウザ名.[log|mp4] として保存したかった
Setup.kt
class Setup {

    @BeforeSuite
    fun beforeSuite() {
        // この時点では specification / scenario が決まっていないので取得できない
    }

    @BeforeScenario
    fun beforeScenario(context: ExecutionContext) {
        // specification 名, scenario 名を取得する
        val specName = context.currentSpecification.name
        val testName = context.currentScenario.name

        // ログファイルと実行動画の出力先ディレクトリ階層
        val fileDir = "$specName/$testName/".replace(" ", "_")
        // それぞれディレクトリが存在しなければエラーになるので事前に作成しておく
        val logPath: Path = Paths.get("selenoid/logs/$fileDir/")
        if (Files.notExists(logPath)) {
            Files.createDirectories(logPath)
        }
        val videoPath: Path = Paths.get("selenoid/video/$fileDir/")
        if (Files.notExists(videoPath)) {
            Files.createDirectories(videoPath)
        }

        val capabilities = DesiredCapabilities()
        val browserName = System.getenv("browser.name")
        capabilities.setCapability("browserName", browserName)
        capabilities.setCapability("browserVersion", System.getenv("browser.version"))

        // enable* などの設定は "selenoid:options" として設定する
        val selenoidOptions = mapOf(
            "enableLog" to true,
            // ログファイル名を指定
            "logName" to "$fileDir/$browserName.log",

            "enableVNC" to true,

            "enableVideo" to true,
            // 動画ファイル名を指定
            "videoName" to "$fileDir/$browserName.mp4",
        )
        capabilities.setCapability("selenoid:options", selenoidOptions)

        val driver = RemoteWebDriver(
            URI.create("http://localhost:4445/wd/hub").toURL(),
            capabilities,
        )
        WebDriverRunner.setWebDriver(driver)
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?