我有运行测试的盒子.看起来Jenkins会ssh并执行正在运行的特定作业中描述的命令.
在这里,我试图运行我的Selenium Webdriver测试,但它告诉我在启动firefox时出错.最终的想法是完全在这个盒子上运行网络测试,并拍摄一些错误的截图.
我正在使用selenium-java-2.25.jar,firefox 10,linux OS.
有趣的是,我可以手动ssh到框中,临时从盒子上的另一个用户复制魔术cookie(获得X隧道),做一个export DISPLAY=mydisplay:1.0,然后使用ant启动我的硒测试.这将带来firefox和测试就好了.
这里有各种各样的线程似乎有完全相同的问题,我想我已经尝试了大部分.这就是我所做的:
重新启动该框,使用VNC重新登录.
在运行selenium测试之前,在Jenkins中放置一个bash脚本来运行.bash脚本基本上只是做了一个export DISPLAY=mydisplay:1.0.它也执行xclock.这可以工作,因为我可以看到在VNC中显示xclock.
iptables已被关闭
firefox正确位于/ usr/bin/firefox中
sshd_config显示X11Forwarding为true.
据称降级firefox帮助了一些人,但我不想这样做.无论如何,Webdriver应该支持FF 10.
但是,上述都没有解决问题.
它似乎不存在localhost上的端口7055甚至存在:
netstat -an | grep 7055 - 什么都没打印
这是我的/ etc/hosts所说的:
1 127.0.0.1 localhost.localdomain localhost
2 ::1 localhost6.localdomain6 localhost6
Run Code Online (Sandbox Code Playgroud)
也许它与localhost有关:7055不存在?我不确定从哪里开始.仍然,为什么错误输出说它display: :0.0在我指定时正在寻找mydisplay:1.0?
最后我得到的错误输出:
[testng] org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
[testng] Xlib: connection to ":0.0" refused by server
[testng] Xlib: No protocol specified …Run Code Online (Sandbox Code Playgroud) 我的python脚本没有在我的crontab下运行.
我把它放在顶部的python脚本中:
crontab -e
我试过这样做:
myscript.py
添加到我的crontab -e:
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
我的/ var/log/cron文件说:
/usr/bin/python
但是我的脚本没有运行,因为当我检查我的sql数据库时,没有任何改变.如果我直接在终端中运行它,如下所示:
/home/me/project/myscript.py
我得到了正确的结果.
这是myscript.py:
chmod a+x myscript.py
Run Code Online (Sandbox Code Playgroud)
编辑:每条评论:是的,/usr/bin/python /home/me/project/myscript.py存在.我也可以使用just直接运行python脚本crontab -e.myscript.py作品.所以我不相信这是原因?
我正在使用CentOS 5和Jenkins 1.430.当我尝试构建时,我收到一个错误:
hudson.util.IOException2: remote file operation failed: /home/build/jenkins/workspace/tests at hudson.remoting.Channel@6c89db9a:build-test
at hudson.FilePath.act(FilePath.java:754)
at hudson.FilePath.act(FilePath.java:740)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:705)
at hudson.scm.SubversionSCM.checkout(SubversionSCM.java:654)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1193)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:566)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:454)
at hudson.model.Run.run(Run.java:1376)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:230)
Caused by: java.io.IOException: Remote call on build-test failed
at hudson.remoting.Channel.call(Channel.java:690)
at hudson.FilePath.act(FilePath.java:747)
... 10 more
Caused by: java.lang.NoClassDefFoundError: Could not initialize class hudson.model.Hudson
at hudson.scm.SubversionWorkspaceSelector.syncWorkspaceFormatFromMaster(SubversionWorkspaceSelector.java:85)
at hudson.scm.SubversionSCM.createSvnClientManager(SubversionSCM.java:782)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:725)
at hudson.scm.SubversionSCM$CheckOutTask.invoke(SubversionSCM.java:712)
at hudson.FilePath$FileCallableWrapper.call(FilePath.java:1995)
at hudson.remoting.UserRequest.perform(UserRequest.java:118)
at hudson.remoting.UserRequest.perform(UserRequest.java:48)
at hudson.remoting.Request$2.run(Request.java:287)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) …Run Code Online (Sandbox Code Playgroud) 我正在传递一个List <c:forEach>,但是我收到错误声明它不知道如何迭代它.
@RequestMapping("/viewall")
public String viewAll(Model model) {
// productService.findAllProducts() returns List<Product>
model.addAttribute("everything", productService.findAllProducts());
// Also tried using iterator, but I get same error
//model.addAtrribute("everything", productService.findAllProducts().iterator());
....
}
Run Code Online (Sandbox Code Playgroud)
jsp页面:
<c:forEach items="${everything}" var="prod">
<p> ${prod.name} </p>
</c:forEach>
Run Code Online (Sandbox Code Playgroud)
错误:
javax.servlet.ServletException: javax.servlet.jsp.JspTagException: Don't know how to iterate over supplied "items" in <forEach>
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.WEB_002dINF.jsp.allprod_jsp._jspService(allprod_jsp.java:158)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:238)
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:262)
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1180)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:950)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) …Run Code Online (Sandbox Code Playgroud) 我想编写一个简单的 python 脚本,它会检查它是否在给定的小时/分钟之前 2 分钟,然后每天或在给定时间的给定日期调用我的函数。
该脚本将在 cronjob 中每分钟运行一次。
所以执行myfunction()的两种情况:
2012/9/28 每天
10:55 10:55
但是我无法使用 datetime 确定给定小时/分钟之前 2 分钟的时间。另外,如何确定每天与仅在给定的一天?
mydate = datetime(2012, 09,28, 10,55)
check = mydate - datetime.now() # gives you a timedelta
if check < datetime.timedelta(minutes=2):
run_myfunction()
Run Code Online (Sandbox Code Playgroud)
上面查看是否在 2 分钟内,如果是,则运行 myfunction()。上面代码的问题是如果 mydate 已经过去了,myfunction() 仍然会运行。此外,这需要指定特定日期。如何允许每天而不是 9/28/2012 进行检查?
如果我有这样的陈述:
cursor.execute("INSERT INTO MYTABLE(name, age, hair_color) VALUES (?, ?, ?)" , ("Alice", 24, None))
cursor.execute("SELECT * FROM MYTABLE WHERE Id=?", (1,))
print cursor.fetchone()[2] is None # This is false! I want this to be true.
Run Code Online (Sandbox Code Playgroud)
检索hair_color将u'None'不是一个NoneType.
我知道我可以做一个简单的检查,看看它是否等于unicode"None",而不是指定这个条件,有没有办法告诉python我想要将具有"None"的字段替换为NoneType时我做一个fetchone()或fetchall()?
MYTABLE是 (Id INTEGER PRIMARY KEY, name TEXT, age INTEGER, hair_color TEXT)