首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行easyb\selenium时获取permgen错误

运行easyb\selenium时获取permgen错误
EN

Stack Overflow用户
提问于 2012-01-20 16:56:41
回答 2查看 869关注 0票数 1

我有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脚本

代码语言:javascript
复制
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

EN

回答 2

Stack Overflow用户

发布于 2012-01-20 17:02:06

您需要增加perm空间,可以通过VM设置设置max参数来实现这一点。在命令行上,使用以下选项启动Java:

-XX:MaxPermSize=128m

另见:http://www.freshblurbs.com/explaining-java-lang-outofmemoryerror-permgen-space

票数 0
EN

Stack Overflow用户

发布于 2012-01-20 17:44:45

按照您实现它的方式,easyB测试将在“主”Gradle JVM中运行(除非easyB Ant任务分叉一个新JVM,我对此表示怀疑)。将JVM选项传递给该进程的一种方法是通过GRADLE_OPTS环境变量:

代码语言:javascript
复制
export GRADLE_OPTS="-XX:MaxPermSize=128m"

设置此选项的其他方法是properties.gradle (详见分级用户指南 )或调整gradlew脚本(如果您碰巧使用了Gradle包装器)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8945011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档