Jenkins設定後にテストレポートが正常に表示できない、または空白で表示される問題の解決方法(問題集)

現象1:インターフェーススタイルの乱れ

  • レポートを開くと、次のようにインターフェイスのスタイルが崩れます。
    ここに画像の説明を挿入します

原因分析

  • この現象の原因はJenkins構成にありますCSP(Content Security Policy)
  • これは、ユーザーが悪意のあるファイルによる攻撃をJenkins防ぐために、デフォルトで非常に厳格な権限セットに設定されているセキュリティ ポリシーです。Jenkinsworkspace、/userContent、archived artifactsHTML/JS
  • デフォルトでは、この権限セットは次のように設定されています。
sandbox; default-src 'none'; img-src 'self'; style-src 'self';
  • デフォルトでは、ロードのみが許可されます。
Jenkins服务器上托管的CSS文件
Jenkins服务器上托管的图片文件
  • 現時点では、以下のコンテンツは禁止されます。
JavaScript
plugins (object/embed)
HTML中的内联样式表(Inline style sheets),以及引用的外站CSS文件
HTML中的内联图片(Inline image definitions),以及外站引用的图片文件
frames
web fonts
XHR/AJAX
etc.

一時的な戦略

  • と入力しManage Jenkins->Script console、次のコマンドを入力して実行します。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
  • 次のように:
    ここに画像の説明を挿入します
  • コマンドを入力して実行した後、コマンドが空の場合は、次のように構成が完了したことを意味します。
    ここに画像の説明を挿入します
  • 再度ビルドすると、次のようにインターフェイス スタイルに [OK] が表示されます。
    ここに画像の説明を挿入します
  • 上記の操作は以前のビルドで生成されたレポートに対して有効でありHTML、一時的にのみ有効であり、再起動するJenkinsContent Security Policyデフォルト値に戻り、HTMLスタイルは表示されなくなります。

恒久的な戦略

  • Groovy次のようにプラグインをインストールします。
    ここに画像の説明を挿入します
  • プロジェクト - 構成 - に移動しますExecute Groovy script
    ここに画像の説明を挿入します
  • 次の内容を入力して保存します。
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

ここに画像の説明を挿入します

現象2:レポートパスが存在しない

  • たとえば、ビルド時に、レポート パスが存在しないため手動で作成する必要があるというメッセージが表示され、次のようなエラー メッセージが表示されます。
Jenkins - HTML Publisher Plugin build fails with report directory doesnot exist

原因分析

  • 設定したレポート ディレクトリがリモート ウェアハウスのプロジェクト ディレクトリに存在しません。
  • 設定したレポート ディレクトリが、ウェアハウスに保存されているレポート パスと矛盾しています。

ソリューション戦略

  • Jenkins 上でレポートを保存するディレクトリを設定します。プロジェクトのルート ディレクトリ下のディレクトリは次のとおりですreports
    ここに画像の説明を挿入します
  • 次に、ウェアハウス内のプロジェクトのディレクトリの下に同じディレクトリがあるかどうかを確認します。
    ここに画像の説明を挿入します
  • 上記のように、私の倉庫にはレポートがあるため、この 2 つは、「はい」reportまたは「両方」のいずれかで一貫している必要がありますreports
  • 最後に、jenkinsコンテナ内のプロジェクト ディレクトリが正常にダウンロードまたは同期されたかどうかを確認します。jenkins次のコマンドを使用して、コンテナーに入って表示できます。
sudo docker exec -it jenkins bash
 ls /var/jenkins_home/workspace/test_autoui -ls
# /var/jenkins_home/workspace/:这是jenkins容器上项目的工作空间
# test_autoui:这是我的项目名称,改为自己的即可

ここに画像の説明を挿入します

  • 上記から、reportディレクトリが存在し、その中にあるレポートが表示されることがわかります。
    ここに画像の説明を挿入します
  • コンソール情報はビルド中にすでにプロンプ​​トを表示しているため、上記の点に一貫性があることを確認することによってのみ、レポートが正常に表示されます。コンソール情報は、特定のディレクトリからゼロワン ディレクトリにコピーされます。
    ここに画像の説明を挿入します

現象 3: Docker とオペレーティング システムのバージョンが一致しない

  • 上記 2 つの現象は解決されましたが、依然としてレポートが表示されず、レポート ページのデータが直接空白で表示されます。

原因分析

  • ビルド中にコンソールに出力されるエラー メッセージを表示します。
    ここに画像の説明を挿入します
  • つまり、エラー メッセージは次のとおりです。
lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by docker)
  • これは、docker のバージョンとオペレーティング システムのバージョンが一致していないためです。
docker:最新版本
Ubuntu:22.04
  • 磁気情報を参照の上、Ubuntu:22.04問題により必要に応じて使用することが可能ですUbuntu18.04、Ubuntu20.04

ソリューション戦略

  • を使用するなどして、システムを再インストールしますUbuntu18.04、Ubuntu20.04

おすすめ

転載: blog.csdn.net/NoamaNelson/article/details/132081388