我有6种技术在玩
easyB硒级
我们使用easyB编写方案。
这些场景反过来调用Selenium
最后,我们使用Gradle来启动所有的故事。而且,由于我们没有用于easyB的gradle插件,gradle实际上使用ant来运行easyB。
这个Gradle脚本最终通过Jenkins作业执行
整个执行大约需要3到4个小时的。半程,我们得到一个烫发错误。
我不确定哪个进程需要在PermGen中增加
EasyB?蚂蚁?格拉德尔?
错误消息
ant:easyb重试值现在是:2
ant:easyb objectID设置为: 60868
ant:创建subjectID 60868后的易趣中断
ant:easyb创建visit>>>>>>Pre治疗
ant:easyb创建图像组>自动GP1
ant:easyb运行您的easyb故事或规范时出错。
ant:easyb java.lang.OutOfMemoryError: PermGen空间
ant:easyb easyb执行失败
失败:生成失败,出现异常。
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脚本的命令的--我认为问题是.
jenkins@bil-dev-006v bin$ ps -ef|grep gradle
詹金斯18420 4714 9 23:04 ? 00:00:16 /usr/java/java 1.6.0_20/bin/java -XX:MaxPermSize=800m -XX:MaxPermSize=700m -Xmx512m -Xmx512m -classpath -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 -classpath-run/workspace/trunk/lib/xml-apis.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/activation.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/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:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/safe-import.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/mail.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/ojdbc14.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/httpcore-4.1.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/xercesImpl.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/cacher.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/serializer.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/resolver.jar:/jenkins/jobs/helium-complete-run/workspace/trunk/lib/cache-verifier.jar:/opt/jenkins/.gradle/cache/org.easyb/easyb/jars/easyb-0.9.7.jar:/opt/jenkins/.gradle/cache/commons-cli/commons-cli/jars/commons-cli-1.1.jar:/opt/jenkins/.gradle/cache/org.codehaus.groovy/groovy-all/jars/groovy-all-1.7.2.jar:/opt/jenkins/.gradle/cache/org.seleniumhq.selenium.client-drivers/selenium-java-client-driver/jars/selenium-java-client-driver-1.0.1.jar:/opt/jenkins/.gradle/cache/log4j/log4j/bundles/log4j-1.2.16.jar:/opt/jenkins/.gradle/cache/org.codehaus.groovy/groovy/jars/groovy-1.8.2.jar:/opt/jenkins/.gradle/cache/antlr/antlr/jars/antlr-2.7.7.jar:/opt/jenkins/.gradle/cache/asm/asm/jars/asm-3.2.jar:/opt/jenkins/.gradle/cache/asm/asm-commons/jars/asm-commons-3.2.jar:/opt/jenkins/.gradle/cache/asm/asm-tree/jars/asm-tree-3.2.jar:/opt/jenkins/.gradle/cache/asm/asm-util/jars/asm-util-3.2.jar:/opt/jenkins/.gradle/cache/asm/asm-analysis/jars/asm-analysis-3.2.jar org.easyb.BehaviorRunner -outfail失败。txt /jenkins/jobs/helium-complete-run/workspace/trunk/build/test-results/storycaseassigment_inter-intra.html /jenkins/jobs/helium-complete-run/workspace/trunk/src/test/stories/caseassigment/inter-intra/ca_interintra.story -html
发布于 2012-01-20 17:02:06
您需要增加perm空间,可以通过VM设置设置max参数来实现这一点。在命令行上,使用以下选项启动Java:
-XX:MaxPermSize=128m
另见:http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space
发布于 2012-01-20 17:44:45
按照您实现它的方式,easyB测试将在“主”Gradle JVM中运行(除非easyB Ant任务分叉一个新JVM,我对此表示怀疑)。将JVM选项传递给该进程的一种方法是通过GRADLE_OPTS环境变量:
export GRADLE_OPTS="-XX:MaxPermSize=128m"设置此选项的其他方法是properties.gradle (详见分级用户指南 )或调整gradlew脚本(如果您碰巧使用了Gradle包装器)。
https://stackoverflow.com/questions/8945011
复制相似问题