Selenium 关于 jenkins 自动运行脚本的问题!

李晔 · 2018年06月18日 · 最后由 李晔 回复于 2018年07月09日 · 3804 次阅读

环境:python3.5.0+selenium2.48+HTMLTestReport

描述:
想在 jenkins 上自动跑脚本并生成测试报告,但在本地 CMD 命令行都运行不了 run_* 脚本文件,用例脚本也运行不了,报错!想请教一下大家!今天是正好是端午节,
╭︿︿︿╮
{/ o o /}

( (oo) )

︶ ︶
祝大家节日快乐!!!!


共收到 24 条回复 时间 点赞

test_dir 修改下 用相对路径 或绝对路径

把项目路径加入到PYTHONPATH

回复

不行,都改成绝对路径了!你在 jenkins 上是用 python 命令运行脚本的吗!

雨夜狂奔 回复

python_home?环境变量吗??问题是我都没配 python 的环境!

链接
链接
参考一下,你的问题是你自定义的模块没在 Python 的搜索路径,所以导入失败,需要你自己加进去。

用 pycharm 开发一定要有项目的概念,别像写脚本一样那么随意,pycharm 都是在项目根目录下执行,并且会把执行脚本目录加入 PYTHONPATH,用命令行在其他目录执行找不到文件或者模块很正常

ThreeClick 回复

嗯嗯!居然一看就知道 pycharm,然后具体是怎样呢?在命令行切换到项目目录再执行脚本吗?还是怎样?

雨夜狂奔 回复

我搞了下午还没没搞懂!这个变量好像不是我添加了,本人可能没那么灵光,能说具体点吗?

李晔 回复

在环境变量有一个这个变量PYTHONPATH,把你的项目路径添加到里面去,然后在 python 命令行看看,是不是添加成功了

λ python
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:19:30) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path

看一下你的路径是不是在这,然后通过命令行执行下你的代码

cd 你的脚本路径
python 你的脚本.py

再试试

李晔 #10 · 2018年06月25日 Author
雨夜狂奔 回复

什么都没发生!

李晔 回复

这不是有结果显示了么。。也没报错啊?

李晔 #12 · 2018年06月25日 Author
雨夜狂奔 回复

是没报错,问题是什么脚本没跑起来啊!0 秒?

李晔 回复

这要看你自己的脚本了,毕竟import报错的问题已经没有啦。。。或者有异常你自己捕获了所以没打出来

李晔 #14 · 2018年06月25日 Author
雨夜狂奔 回复

我这个是 web 自动化脚本,我在 IDE 运行是会驱动浏览器跑起来的,但现在就是什么都没发生!

李晔 回复

那就是没加载到用例吧,你脚本里面是不是有相对路径没处理好,然后导致没加载到。
如果要用相对路径可以这样testdir="./xxx",或者先改成绝对路径试试?

李晔 #14 · 2018年06月25日 Author
雨夜狂奔 回复

嗯,都试过了!我真的是快....但是却有报告生成!

李晔 回复

都还不行,那你在你执行的那个脚本那添加两行代码,我在我本地试过了,应该没问题

import sys
sys.path.append(os.path.normpath("你的项目路径"))

然后删掉文件夹下的.pyc文件,重新执行下试试

python 跟 jenkins 集成后运行 py 文件时要处理一下项目中所有引用的路径,比如测试报告的输出,log 文件的定义,testcase 目录的定义,建议使用 os.getcwd() 获取 run.py 的路径,然后一级一级写下去。因为 run.py 都是放在项目根目录的。

使用 jenkins 运行 run.py 文件时项目是放在 jenkins 的 workpace 空间中的。可以在构建的时候加一行命令,进入 **/jenkins/workspace/项目名称 目录中去运行根目录下的 run.py 文件。

李晔 [该话题已被删除] 中提及了此贴 06月27日 16:17
李晔 #23 · 2018年06月29日 Author
皆非 回复

恩呢!劳烦了...

李晔 回复

回头看了下之前写的不是很明白,刚研究了下,发现使用

print(os.path.abspath(os.path.join(os.path.dirname(__file__))))

即可,详细的结果在 https://testerhome.com/topics/11589😀,题主没解决的话可以看下,互相学习

第一点 d 能拿到吗。。test_dir 迁移位置后路径是否正确
第二点 jenkins 机器上是什么系统环境,二边是否用到命令行了。
ps:为啥 f.close 你不是用了 with 吗

李晔 #26 · 2018年07月09日 Author

已经解决!感谢各位的不吝指教!1、test_case 和 report 路径改为绝对路径或者 CMD 里切到项目根目录执行;2、PYTHONPATH 环境变量只添加了项目根目录 D:\Python Script\mis,而没有把 mis 下的一级(test_case)和二级目录(test_case\model 等)添加进去,因为运行 run*.py 有关联到一、二级目录下的自定义模块!

李晔 关闭了讨论 07月09日 17:39
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册