1

私は6つのテクノロジーを使用しています

easyB Selenium Gradle Ant Java Jenkins

easyBを使用してシナリオを記述します。これらのシナリオはSelenium
を呼び出します。 最後に、Gradleを使用してすべてのストーリーを開始します。また、easyB 用の gradle プラグインがないため、gradle は実際にはantを使用して easyB を実行します。

この Gradle スクリプトは最終的にJenkinsジョブを介して実行されます

完全な実行には約3 ~ 4 時間かかります。途中でperm-gen エラーが発生する

PermGenの増加が必要なプロセスがわからない

イージーB? 蟻?グラドル?


エラーメッセージ
[ant:easyb] retry value is now: 2
[ant:easyb] objectID is set to: 60868
[ant:easyb] break after creating subjectID 60868
[ant:easyb] Making visit>>>>>>Pre Treatment
[ ant:easyb] イメージ グループの作成>>>>>>auto-gp1
[ant:easyb] easyb ストーリーまたは仕様の実行中にエラーが発生しました
[ant:easyb] java.lang.OutOfMemoryError: PermGen space
[ant:easyb] easyb実行に失敗しました

FAILURE: ビルドは例外で失敗しました。


Gradle スクリプト

check << {
    def script = new GroovyShell()
    script.run(new File('InitializeReport.groovy'))

    ant.taskdef(name: "easyb", classname:"org.easyb.ant.BehaviorRunnerTask", classpath: sourceSets.test.runtimeClasspath.asPath)

    ant.easyb( classpath: sourceSets.test.runtimeClasspath.asPath, failureProperty:'easyb_failed' ,tags:tags) {
        report( location:"${project.testResultsDir}/story."+format, format:format )
        behaviors( dir: storiesHome ) {
            include( name:storyToBeExecuted )
        }
   }

    ant.fail( if:'easyb_failed', message: 'Failures in easyb stories' )
}

これは私が Jenkins コンソールに表示するものです 注 - どのようにメモリ オプションが Gradle コマンドに渡されていますが、easyB スクリプトを実行している Java コマンドには渡されていませんか? そこが問題だと思います...

[jenkins@bil-dev-006v bin]$ ps -ef|grep gradle

ジェンキンス 18420 4714 9 23:04 ? 00:00:16 /usr/java/jdk1.6.0_20/bin/java -XX:MaxPermSize=700m -Xmx512m -XX:MaxPermSize=800m -Xmx512m -classpath /opt/jenkins/gradle-1.0-milestone-1/lib /gradle-launcher-1.0-milestone-1.jar -Dorg.gradle.appname=gradle org.gradle.launcher.GradleMain -PstoryName= -PstoriesHome= check -info

ジェンキンス 18579 18420 13 23:04 ? 00:00:21 /usr/java/jdk1.6.0_20/jre/bin/java -classpath /jenkins/jobs/helium-complete-run/workspace/trunk/build/classes/main:/jenkins/jobs/helium-完全実行/workspace/trunk/lib/commons-lang-2.4.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/httpclient-4.1.1.jar:/jenkins/jobs/helium-完全実行/workspace/trunk/lib/xml-apis.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/activation.jar:/jenkins/jobs/helium-complete-run/workspace/トランク/lib/xercesSamples.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/safe-client.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/security. jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/json-lib-2.4-jdk15.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/http-builder- 0.5.1.jar:

4

2 に答える 2

0

あなたが実装した方法では、easyB テストは「メイン」の Gradle JVM で実行されます (easyB Ant タスクが新しい JVM をフォークしない限り、私は疑っています)。JVM オプションをそのプロセスに渡す 1 つの方法は、GRADLE_OPTS環境変数を使用することです。 :

export GRADLE_OPTS="-XX:MaxPermSize=128m"

このオプションを設定する他の方法はproperties.gradle(詳細についてはGradle ユーザー ガイドを参照)、またはスクリプトを微調整するgradlewことです (Gradle ラッパーを使用する場合)。

于 2012-01-20T17:44:45.163 に答える
0

perm gen スペースを増やす必要があります。これは、VM 設定で max パラメータを設定することで実行できます。コマンド ラインで、次のオプションを使用して Java を起動します。

-XX:MaxPermSize=128m

参照: http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space

于 2012-01-20T17:02:06.690 に答える